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.
  1. $ objdump libnative.so -M intel -d
  2.  
  3. libnative.so:     file format elf32-i386
  4.  
  5. Disassembly of section .text:
  6.  
  7. 000001bc <strlen>:
  8.  1bc:   8b 7c 24 04             mov    edi,DWORD PTR [esp+0x4]
  9.  1c0:   31 c0                   xor    eax,eax
  10.  1c2:   8d 48 ff                lea    ecx,[eax-0x1]
  11.  1c5:   f2 ae                   repnz scas al,BYTE PTR es:[edi]
  12.  1c7:   f7 d9                   neg    ecx
  13.  1c9:   8d 41 ff                lea    eax,[ecx-0x1]
  14.  1cc:   c2 04 00                ret    0x4
  15.  
  16. 000001cf <puts>:
  17.  1cf:   b8 04 00 00 00          mov    eax,0x4
  18.  1d4:   8d 58 fd                lea    ebx,[eax-0x3]
  19.  1d7:   8b 4c 24 04             mov    ecx,DWORD PTR [esp+0x4]
  20.  1db:   8b 54 24 08             mov    edx,DWORD PTR [esp+0x8]
  21.  1df:   cd 80                   int    0x80
  22.  1e1:   c2 08 00                ret    0x8
  23.  
  24. 000001e4 <exit>:
  25.  1e4:   b8 01 00 00 00          mov    eax,0x1
  26.  1e9:   8b 5c 24 04             mov    ebx,DWORD PTR [esp+0x4]
  27.  1ed:   cd 80                   int    0x80
  28.  
  29. 000001ef <Java_Hello_nativeCode>:
  30.  1ef:   68 00 20 00 00          push   0x2000
  31.  1f4:   e8 c3 ff ff ff          call   1bc <strlen>
  32.  1f9:   50                      push   eax
  33.  1fa:   68 00 20 00 00          push   0x2000
  34.  1ff:   e8 cb ff ff ff          call   1cf <puts>
  35.  204:   c3                      ret    
Powrót do wpisu Java i assembler x86