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

找TELock加壳的Import Table的方法

 2007-01-12 20:13:29 来源:WEB开发网   
核心提示: 1、用BPMB LoadLibraryA X DO "d *(esp+4)"设断点,看见加载oleaut32.dll:0023:00533DBC 61656C6F 32337475 6C6C642E 00000000 oleaut32.dll....0023:00533

1、用BPMB LoadLibraryA X DO "d *(esp+4)"设断点,看见加载oleaut32.dll:

0023:00533DBC 61656C6F 32337475 6C6C642E 00000000 oleaut32.dll....
0023:00533DCC 69726156 43746E61 676E6168 70795465 VariantChangeTyp
0023:00533DDC 00784565 61560000 6E616972 706F4374 eEx...VariantCop
0023:00533DEC 646E4979 00000000 69726156 43746E61 yInd....VariantC
0023:00533DFC 7261656C 00000000 53737953 6E697274 lear....SysStrin
0023:00533E0C 6E654C67 00000000 46737953 53656572 gLen....SysFreeS
0023:00533E1C 6E697274 00000067 52737953 6C6C4165 tring...SysReAll
0023:00533E2C 7453636F 676E6972 006E654C 79530000 ocStringLen...Sy

2、先尝试第一条途径。字符串"oleaut32.dll"的RVA为00133DBC,于是在内存中搜索这个RVA,希望能够找到存放有该RVA值的某个

IMAGE_IMPORT_DESCRIPTOR结构,也就等于是找到了IT。

:s cs:400000 l 178000 bc,3d,13,00
Pattern not found

没有找到。因为TELock已经把相应位置上的值清0了。(实际上也可以用下一个DLL的文件名来进行搜索,因为TELock此时尚未处理下一个DLL,

它不可能提前把下一个DLL的IMAGE_IMPORT_DESCRIPTOR结构清掉。)

3、再尝试第2条途径。注意到第一个函数VariantChangeTypeEx的Hint的地址是00533DCA,于是搜索RVA值00133DCA,希望能够找到FirstThunk

所指向的那个数组(其实该数组也就是IAT),进而再找到FirstThunk的位置。

:s cs:400000 l 178000 ca,3d,13,00
Pattern found at 001B:0053328C (0013328C)

找到之后看一下IAT。由于此时还未把GetProcAddress的返回值写入IAT,所以此时IAT中存放的都是指向IMAGE_IMPORT_BY_NAME的指针(RVA) :

Tags:TELock 加壳 Import

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