Biblioteka libnative.so w wersji intelowskiej
Dump wykonany jest za pomocą program objdump, który jest bardzo przydatnym narzędziem, swoją drogą. Myślę że nie powienieneś mieć problemów z dojściem która procedura jest którą, jako, że wyświetlone są nazwy symboli.
Powrót do wpisu Java i assembler x86
- $ objdump libnative.so -M intel -d
- libnative.so: file format elf32-i386
- Disassembly of section .text:
- 000001bc <strlen>:
- 1bc: 8b 7c 24 04 mov edi,DWORD PTR [esp+0x4]
- 1c0: 31 c0 xor eax,eax
- 1c2: 8d 48 ff lea ecx,[eax-0x1]
- 1c5: f2 ae repnz scas al,BYTE PTR es:[edi]
- 1c7: f7 d9 neg ecx
- 1c9: 8d 41 ff lea eax,[ecx-0x1]
- 1cc: c2 04 00 ret 0x4
- 000001cf <puts>:
- 1cf: b8 04 00 00 00 mov eax,0x4
- 1d4: 8d 58 fd lea ebx,[eax-0x3]
- 1d7: 8b 4c 24 04 mov ecx,DWORD PTR [esp+0x4]
- 1db: 8b 54 24 08 mov edx,DWORD PTR [esp+0x8]
- 1df: cd 80 int 0x80
- 1e1: c2 08 00 ret 0x8
- 000001e4 <exit>:
- 1e4: b8 01 00 00 00 mov eax,0x1
- 1e9: 8b 5c 24 04 mov ebx,DWORD PTR [esp+0x4]
- 1ed: cd 80 int 0x80
- 000001ef <Java_Hello_nativeCode>:
- 1ef: 68 00 20 00 00 push 0x2000
- 1f4: e8 c3 ff ff ff call 1bc <strlen>
- 1f9: 50 push eax
- 1fa: 68 00 20 00 00 push 0x2000
- 1ff: e8 cb ff ff ff call 1cf <puts>
- 204: c3 ret
