WEB开发网
开发学院网络安全黑客技术 找TELock加壳的Import Table的方法 阅读

找TELock加壳的Import Table的方法

 2007-01-12 20:13:29 来源:WEB开发网   
核心提示: :dd 53328c001B:0053328C 00133DCA 00133DE0 00133DF2 00133E02 .=...=...=...>..001B:0053329C 00133E12 00133E22 00133E38 00000000 .>..">
:dd 53328c
001B:0053328C 00133DCA 00133DE0 00133DF2 00133E02 .=...=...=...>..
001B:0053329C 00133E12 00133E22 00133E38 00000000 .>..">..8>......
001B:005332AC 00133E5A 00133E68 00133E76 00133E84 Z>..h>..v>...>..
001B:005332BC 00133E98 00000000 00133EBC 00133ECE .>.......>...>..
001B:005332CC 00133EE2 00133EF6 00133F06 00133F14 .>...>...?...?..
001B:005332DC 00133F24 00133F36 00133F44 00133F58 $?..6?..D?..X?..
001B:005332EC 00133F70 00000000 00133F96 00133FA2 p?.......?...?..
001B:005332FC 00133FAE 00133FBA 00133FC6 00133FDC .?...?...?...?..

4、再看究竟是哪个FirstThunk指向了上面的IAT。由于该IAT的RVA为0013328C,故

:s cs:400000 l 178000 8c,32,13,00
Pattern found at 001B:0053304C (0013304C)

5、这样就找到了oleaut32.dll所对应的FirstThunk的位置是0053304C。在此位置附近看一下,就可以找到IT的起始位置为00533000

,长度为0x1CC(问号表示未被映射的内存空间;最初的4个IMAGE_IMPORT_DESCRIPTOR结构已经被清除了一部分):

001B:00532FE0 ???????? ???????? ???????? ???????? ................
001B:00532FF0 ???????? ???????? ???????? ???????? ................
001B:00533000 00000000 00000000 00000000 00000000 ................
001B:00533010 001331CC 00000000 00000000 00000000 .1..............
001B:00533020 00000000 0013326C 00000000 00000000 ....l2..........
001B:00533030 00000000 00000000 0013327C 00000000 ........|2......
001B:00533040 00000000 00000000 00000000 0013328C .............2..
001B:00533050 00000000 00000000 00000000 00133E4C ............L>..
001B:00533060 001332AC 00000000 00000000 00000000 .2..............
001B:00533070 00133EAE 001332C4 00000000 00000000 .>...2..........
001B:00533080 00000000 00133F88 001332F4 00000000 .....?...2......
001B:00533090 00000000 00000000 001346D4 0013349C .........F...4..

第二步:找到破坏IT的代码

由于TELock清除了IT中指向DLL文件名的RVA,故只要设个bpm断点,看它什么时候清这个文件名的,就可以找到破坏IT的代码。

第一个DLL文件名的RVA存放在0053300C处,故BPM 00533000+0C W do "dd 533000",

001B:00576C16 8B95BEAF4000 MOV EDX,[EBP+0040AFBE]
001B:00576C1C 8BB5AEAF4000 MOV ESI,[EBP+0040AFAE]
001B:00576C22 85F6 TEST ESI,ESI
001B:00576C24 0F849D030000 JZ 00576FC7
001B:00576C2A 03F2 ADD ESI,EDX
001B:00576C2C 83A5AAB0400000 AND DWORD PTR [EBP+0040B0AA],00
001B:00576C33 8B460C MOV EAX,[ESI+0C]
001B:00576C36 83660C00 AND DWORD PTR [ESI+0C],00 //清除指向每个DLL的Name的RVA值
001B:00576C3A 85C0 TEST EAX,EAX
001B:00576C3C 0F8485030000 JZ 00576FC7
001B:00576C42 03C2 ADD EAX,EDX
001B:00576C44 8BD8 MOV EBX,EAX
001B:00576C46 50 PUSH EAX
001B:00576C47 FF9518AF4000 CALL [EBP+0040AF18]
001B:00576C4D 85C0 TEST EAX,EAX
001B:00576C4F 0F858C000000 JNZ 00576CE1
001B:00576C55 53 PUSH EBX

在第一次执行上面CS:00576C36处的AND之前将533000~535FFF之间的内容(共0x3000字节,不仅包含IT,还包含IAT等)dump出来就行了。

所以觉得TELock目前还没有ASProtect强

上一页  1 2 3 

Tags:TELock 加壳 Import

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接