Skip to content

Commit f3863e4

Browse files
committed
updates to my firmware_mod.ida; small fix to the interrupts in the cfg generator; reversing notes add some links
1 parent bc05924 commit f3863e4

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

atxmega128a4u/scripts/avr2idacfg.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def info(type, value, tb):
104104
group_name = interrupt_group.attrib['name-in-module']
105105
for interrupt in root.findall(".//interrupt-group[@name='%s']/interrupt" % group_name):
106106
name = "%s_%s" % (interrupt_group.attrib['module-instance'], interrupt.attrib['name'])
107-
offset = int(interrupt.attrib['index'], 0)
107+
offset = int(interrupt.attrib['index'], 0) * 2
108108
caption = interrupt.attrib['caption']
109109

110110
hdr.write("entry\t%s_\t0x%04x\t%s\n" % (name, base + offset, caption))

ransom/firmware_mod.idb

0 Bytes
Binary file not shown.

reversing-notes.md

+13-1
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ Python>avr_bss_emu(0x2174,0x223D)
320320

321321
* We build a sample project for the atxmega128a4u; open it in IDA. Use bindiff to bring the symbols over to the IDB we're analyzing. We use the `--whole-archive` flag to get all the object files in there for more 'symbolicating'.
322322

323-
* except, bindiff only works in IDA 6.95 and only IDA 7.0 seems to know how to load all the symbols from a AVR studio ELF file.
323+
* except, bindiff only works in IDA 6.95 and only IDA 7.0 seems to know how to load all the symbols from a AVR studio ELF file.
324324

325325
* I write more baloney idapython scripts to export all the functions from an IDB and import them back. Do the former in IDA 7.0 on the sample project and the latter in 6.95 on the sample project. Then we have something to bindiff against.
326326

@@ -333,3 +333,15 @@ Python>avr_bss_emu(0x2174,0x223D)
333333
* We get Atmel Studio simulator runnign the .hex files by first converting them to an object file. Then we can actually debug them. Helps alot.
334334

335335
* We identify which serial port ioports are in use. We identify the buffer address used. IDA has a type 'offset in current segment' that is useful when trying to find xrefs in DATA segment. The serial port ioports are there in memory, for USARTC. There isn't a clear reference to the buffer address.
336+
337+
* ...
338+
339+
* By combining data printed by the challenge binary with simulation of the RE binary (via memory edits in the simulator) , Jonathan was able to predict the key for the crackme.
340+
341+
## Links for later
342+
343+
* https://www.radare.org/get/avrworkshops2016.pdf
344+
345+
* https://vimeo.com/211371081 and http://radare.org/get/r2snow.pdf
346+
347+
* http://thanat0s.trollprod.org/2014/01/loader-un-binaire-arduino-dans-ida/

0 commit comments

Comments
 (0)