Garip bir ELF ikili var. Bu ikili 32bit linux'da çalıştırabilirim.Garip ELF ikili
Ancak bu ikili IDA disassembler ile açılırsa, IDA "geçersiz giriş noktası" yazıyor. readelf ait
Sonucu aşağıdaki gibidir: hayır bölüm vardır
[email protected]:/home/meltdown# readelf -S -l SimpleVM
There are no sections in this file.
Elf file type is EXEC (Executable file)
Entry point 0xc023dc
There are 2 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x000000 0x00c01000 0x00c01000 0x013c7 0x013c7 RWE 0x1000
LOAD 0x00019c 0x0804b19c 0x0804b19c 0x00000 0x00000 RW 0x1000
. Bu ikili paketlendiğini düşündüm. Ancak, ilk LOAD segmentinin son sanal adresi 0xc023c7'dir. Ve giriş noktasının sanal adresi, aralık dışı olan 0xc023dc'dir.
Birisi bana neler olduğunu anlatabilir mi?
Önceden teşekkür ederiz.
/proc/PID/maps (iki süreç oluşturulur ...)
[email protected]:/proc/3510# cat maps 00110000-00111000 rwxp 00000000 00:00 0 006c0000-006c1000 r-xp 00000000 00:00 0 [vdso] 007d2000-007d4000 rwxp 00000000 00:00 0 00c01000-00c02000 rwxp 00000000 08:01 3801242 /home/meltdown/SimpleVM 00ca4000-00e43000 r-xp 00000000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e43000-00e45000 r-xp 0019f000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e45000-00e46000 rwxp 001a1000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e46000-00e49000 rwxp 00000000 00:00 0 08048000-0804b000 r-xp 00000000 00:00 0 0804b000-0804c000 rwxp 00000000 00:00 0 b77a7000-b77c7000 r-xp 00000000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so b77c7000-b77c8000 r-xp 0001f000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so b77c8000-b77c9000 rwxp 00020000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so bfa90000-bfab1000 rwxp 00000000 00:00 0 [stack] [email protected]:/proc/3511# cat maps 00110000-00111000 rwxp 00000000 00:00 0 006c0000-006c1000 r-xp 00000000 00:00 0 [vdso] 007d2000-007d4000 rwxp 00000000 00:00 0 00c01000-00c02000 rwxp 00000000 08:01 3801242 /home/meltdown/SimpleVM 00ca4000-00e43000 r-xp 00000000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e43000-00e45000 r-xp 0019f000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e45000-00e46000 rwxp 001a1000 08:01 17171359 /lib/i386-linux-gnu/libc-2.15.so 00e46000-00e49000 rwxp 00000000 00:00 0 08048000-0804b000 r-xp 00000000 00:00 0 0804b000-0804c000 rwxp 00000000 00:00 0 b77a7000-b77c7000 r-xp 00000000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so b77c7000-b77c8000 r-xp 0001f000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so b77c8000-b77c9000 rwxp 00020000 08:01 17171339 /lib/i386-linux-gnu/ld-2.15.so bfa90000-bfab1000 rwxp 00000000 00:00 0 [stack]
(+1) İlginç bir soru. Ancak, gerçek ikiliyi inceleyebilirsek, daha yüksek bir başarı şansına sahip olacağımızı düşünüyorum. – NPE
'SimpleVM' ve' ldd SimpleVM' nedir? –
Bu, eğer bu özel bir programsa, yazarının sökülmesini engellemek istediğinden şüpheleniyorum. Bilindiği gibi, çekirdek, ikili biçimle ilgili olarak biraz daha rahattır (bu, sökücülerin/hata ayıklayıcıların yapmadığı biraz hatalı biçimlendirilmiş yürütücüleri mutlu bir şekilde kabul eder) ve bu gerçeğin, bir ikili'nin ters mühendislik yapılmasını engellemek için istismar edilmiştir. –