zoroastre:
Si je ne me trompe pas tu es sous linux aussi, tu as désassembler avec quoi ???
Je suis un agent infiltré
Je suis sous windows ET sous linux ![]()
Voila le makefile que j'ai codé pour désassembler ton .hex :
OBJCOPYBIN = avr-objcopy -I ihex -O binary
OBJCOPYELF = avr-objcopy -I binary -B avr -O elf32-avr
OBJDUMP = avr-objdump -D -S
OBJSIZE = avr-size
OBJECTS = dump.hex
all: clean elf asm size
elf:
$(OBJCOPYBIN) $(OBJECTS) $(OBJECTS).bin
$(OBJCOPYELF) $(OBJECTS).bin $(OBJECTS).elf
asm:
$(OBJDUMP) $(OBJECTS).elf > $(OBJECTS).S
size:
$(OBJSIZE) $(OBJECTS)
clean:
rm -f *.elf *.bin *.S
Si tu veut t'amuser je te joint un zip contenant un makefile complet permettant de compiler / désassembler un exemple de type blink.
C'est trés instructif comme procédé
On remarque direct que avr-gcc n'est vraiment pas optimisé ![]()
(C'est du fait maison, donc si ça plante fait le moi savoir ;))
Le code assembleur de ton .hex :
Disassembly of section .data:
00000000 <_binary_dump_hex_bin_start>:
0: 12 c0 rjmp .+36 ; 0x26 <_binary_dump_hex_bin_start+0x26>
2: 2a c0 rjmp .+84 ; 0x58 <_binary_dump_hex_bin_start+0x58>
4: 29 c0 rjmp .+82 ; 0x58 <_binary_dump_hex_bin_start+0x58>
6: 28 c0 rjmp .+80 ; 0x58 <_binary_dump_hex_bin_start+0x58>
8: 27 c0 rjmp .+78 ; 0x58 <_binary_dump_hex_bin_start+0x58>
a: 26 c0 rjmp .+76 ; 0x58 <_binary_dump_hex_bin_start+0x58>
c: 2c c0 rjmp .+88 ; 0x66 <_binary_dump_hex_bin_start+0x66>
e: 24 c0 rjmp .+72 ; 0x58 <_binary_dump_hex_bin_start+0x58>
10: 23 c0 rjmp .+70 ; 0x58 <_binary_dump_hex_bin_start+0x58>
12: 22 c0 rjmp .+68 ; 0x58 <_binary_dump_hex_bin_start+0x58>
14: 21 c0 rjmp .+66 ; 0x58 <_binary_dump_hex_bin_start+0x58>
16: 20 c0 rjmp .+64 ; 0x58 <_binary_dump_hex_bin_start+0x58>
18: 1f c0 rjmp .+62 ; 0x58 <_binary_dump_hex_bin_start+0x58>
1a: 1e c0 rjmp .+60 ; 0x58 <_binary_dump_hex_bin_start+0x58>
1c: 1d c0 rjmp .+58 ; 0x58 <_binary_dump_hex_bin_start+0x58>
1e: 1c c0 rjmp .+56 ; 0x58 <_binary_dump_hex_bin_start+0x58>
20: 1b c0 rjmp .+54 ; 0x58 <_binary_dump_hex_bin_start+0x58>
22: 1a c0 rjmp .+52 ; 0x58 <_binary_dump_hex_bin_start+0x58>
24: 19 c0 rjmp .+50 ; 0x58 <_binary_dump_hex_bin_start+0x58>
26: 11 24 eor r1, r1
28: 1f be out 0x3f, r1 ; 63
2a: cf ed ldi r28, 0xDF ; 223
2c: cd bf out 0x3d, r28 ; 61
2e: 10 e0 ldi r17, 0x00 ; 0
30: a0 e6 ldi r26, 0x60 ; 96
32: b0 e0 ldi r27, 0x00 ; 0
34: ec e4 ldi r30, 0x4C ; 76
36: f1 e0 ldi r31, 0x01 ; 1
38: 02 c0 rjmp .+4 ; 0x3e <_binary_dump_hex_bin_start+0x3e>
3a: 05 90 lpm r0, Z+
3c: 0d 92 st X+, r0
3e: a0 36 cpi r26, 0x60 ; 96
40: b1 07 cpc r27, r17
42: d9 f7 brne .-10 ; 0x3a <_binary_dump_hex_bin_start+0x3a>
44: 10 e0 ldi r17, 0x00 ; 0
46: a0 e6 ldi r26, 0x60 ; 96
48: b0 e0 ldi r27, 0x00 ; 0
4a: 01 c0 rjmp .+2 ; 0x4e <_binary_dump_hex_bin_start+0x4e>
4c: 1d 92 st X+, r1
4e: a9 36 cpi r26, 0x69 ; 105
50: b1 07 cpc r27, r17
52: e1 f7 brne .-8 ; 0x4c <_binary_dump_hex_bin_start+0x4c>
54: 04 d0 rcall .+8 ; 0x5e <_binary_dump_hex_bin_start+0x5e>
56: 78 c0 rjmp .+240 ; 0x148 <_binary_dump_hex_bin_start+0x148>
58: d3 cf rjmp .-90 ; 0x0 <_binary_dump_hex_bin_start>
5a: 08 95 ret
5c: 08 95 ret
5e: 57 d0 rcall .+174 ; 0x10e <_binary_dump_hex_bin_start+0x10e>
60: fc df rcall .-8 ; 0x5a <_binary_dump_hex_bin_start+0x5a>
62: fc df rcall .-8 ; 0x5c <_binary_dump_hex_bin_start+0x5c>
64: fe cf rjmp .-4 ; 0x62 <_binary_dump_hex_bin_start+0x62>
66: 1f 92 push r1
68: 0f 92 push r0
6a: 0f b6 in r0, 0x3f ; 63
6c: 0f 92 push r0
6e: 11 24 eor r1, r1
70: 2f 93 push r18
72: 3f 93 push r19
74: 4f 93 push r20
76: 5f 93 push r21
78: 6f 93 push r22
7a: 7f 93 push r23
7c: 8f 93 push r24
7e: 9f 93 push r25
80: af 93 push r26
82: bf 93 push r27
84: 20 91 64 00 lds r18, 0x0064
88: 30 91 65 00 lds r19, 0x0065
8c: 40 91 66 00 lds r20, 0x0066
90: 50 91 67 00 lds r21, 0x0067
94: 70 91 68 00 lds r23, 0x0068
98: da 01 movw r26, r20
9a: c9 01 movw r24, r18
9c: 02 96 adiw r24, 0x02 ; 2
9e: a1 1d adc r26, r1
a0: b1 1d adc r27, r1
a2: 67 2f mov r22, r23
a4: 6a 5f subi r22, 0xFA ; 250
a6: 6d 37 cpi r22, 0x7D ; 125
a8: 30 f0 brcs .+12 ; 0xb6 <_binary_dump_hex_bin_start+0xb6>
aa: 6d 57 subi r22, 0x7D ; 125
ac: da 01 movw r26, r20
ae: c9 01 movw r24, r18
b0: 03 96 adiw r24, 0x03 ; 3
b2: a1 1d adc r26, r1
b4: b1 1d adc r27, r1
b6: 60 93 68 00 sts 0x0068, r22
ba: 80 93 64 00 sts 0x0064, r24
be: 90 93 65 00 sts 0x0065, r25
c2: a0 93 66 00 sts 0x0066, r26
c6: b0 93 67 00 sts 0x0067, r27
ca: 80 91 60 00 lds r24, 0x0060
ce: 90 91 61 00 lds r25, 0x0061
d2: a0 91 62 00 lds r26, 0x0062
d6: b0 91 63 00 lds r27, 0x0063
da: 01 96 adiw r24, 0x01 ; 1
dc: a1 1d adc r26, r1
de: b1 1d adc r27, r1
e0: 80 93 60 00 sts 0x0060, r24
e4: 90 93 61 00 sts 0x0061, r25
e8: a0 93 62 00 sts 0x0062, r26
ec: b0 93 63 00 sts 0x0063, r27
f0: bf 91 pop r27
f2: af 91 pop r26
f4: 9f 91 pop r25
f6: 8f 91 pop r24
f8: 7f 91 pop r23
fa: 6f 91 pop r22
fc: 5f 91 pop r21
fe: 4f 91 pop r20
100: 3f 91 pop r19
102: 2f 91 pop r18
104: 0f 90 pop r0
106: 0f be out 0x3f, r0 ; 63
108: 0f 90 pop r0
10a: 1f 90 pop r1
10c: 18 95 reti
10e: 78 94 sei
110: 80 b7 in r24, 0x30 ; 48
112: 83 60 ori r24, 0x03 ; 3
114: 80 bf out 0x30, r24 ; 48
116: 83 b7 in r24, 0x33 ; 51
118: 87 7f andi r24, 0xF7 ; 247
11a: 83 bf out 0x33, r24 ; 51
11c: 83 b7 in r24, 0x33 ; 51
11e: 88 7f andi r24, 0xF8 ; 248
120: 83 60 ori r24, 0x03 ; 3
122: 83 bf out 0x33, r24 ; 51
124: 89 b7 in r24, 0x39 ; 57
126: 82 60 ori r24, 0x02 ; 2
128: 89 bf out 0x39, r24 ; 57
12a: 8e b5 in r24, 0x2e ; 46
12c: 88 7f andi r24, 0xF8 ; 248
12e: 8e bd out 0x2e, r24 ; 46
130: 8f b5 in r24, 0x2f ; 47
132: 8c 7f andi r24, 0xFC ; 252
134: 81 60 ori r24, 0x01 ; 1
136: 8f bd out 0x2f, r24 ; 47
138: 8e b5 in r24, 0x2e ; 46
13a: 87 7e andi r24, 0xE7 ; 231
13c: 8e bd out 0x2e, r24 ; 46
13e: 8e b5 in r24, 0x2e ; 46
140: 88 7f andi r24, 0xF8 ; 248
142: 83 60 ori r24, 0x03 ; 3
144: 8e bd out 0x2e, r24 ; 46
146: 08 95 ret
148: f8 94 cli
14a: ff cf rjmp .-2 ; 0x14a <_binary_dump_hex_bin_start+0x14a>
hackme.zip (3.68 KB)