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)