找telock加壳的importtable的方法

找telock加壳的importtable的方法

ID:21350405

大小:58.00 KB

页数:4页

时间:2018-10-21

找telock加壳的importtable的方法_第1页
找telock加壳的importtable的方法_第2页
找telock加壳的importtable的方法_第3页
找telock加壳的importtable的方法_第4页
资源描述:

《找telock加壳的importtable的方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、找TELock加壳的ImportTable的方法~教育资源库  目的:在内存中将FlashFXP未被破坏的IT完整地提取出来(至于找TELock的OEP、修复的方法等,zombieys、hying、liotta已经讲得很详细了)  第一步:找到IT的位置  找IT自然要依赖于IT的结构特征。IT是个数组,数组中的每个元素是如下的一个结构(#include<inatingnullimportdescriptorDAGE_THUNK_DATA)};DAGE_DIRECTORY_ENTRY_BOUND_IMPORT(neestampofDLLboundto(Ol

2、dBIND)DAGE_IMPORT_DESCRIPTOR;  PELoader/unpacker在加载DLL时,过程大致如下:  1、先根据Name用LoadLibraryA加载一个DLL;  2、根据FirstThunk找到IMAGE_IMPORT_BY_NAME数组,用GetProcAddress取得该DLL中的相应函数的地址填入IAT。FirstThunk就是指向IAT。typedefstruct_IMAGE_IMPORT_BY_NAME{AGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME;  找IT的位置的过程和上面的过程

3、有些相反。利用调试器设bpxLoadLibraryA、bpxGetProcAddress断点,我们能够直接得到的条件是DLL文件名字符串及该串的内存地址、每个函数的Hint和函数名的内存地址、IAT的位置(即GetProcAddress的返回值所要写入的位置),这样就至少有3条途径可以找到IT的位置,一是根据DLLName(在看雪教学中已有详细描述),第二条途径是根据Hint和函数名的地址,第三条则是根据IAT的位置,这3条途径用的是同一种方法(这是找IT的一种通用方法,并不限于TELock加的壳)。  1、用BPMBLoadLibraryAXDOd*(esp+

4、4)设断点,看见加载oleaut32.dll:0023:00533DBC61656C6F323374756C6C642E00000000oleaut32.dll....0023:00533DCC6972615643746E61676E616870795465VariantChangeTyp0023:00533DDC00784565615600006E616972706F4374eEx...VariantCop0023:00533DEC646E4979000000006972615643746E61yInd....VariantC0023:00533DFC7261

5、656C00000000537379536E697274lear....SysStrin0023:00533E0C6E654C67000000004673795353656572gLen....SysFreeS0023:00533E1C6E69727400000067527379536C6C4165tring...SysReAll0023:00533E2C7453636F676E6972006E654C79530000ocStringLen...Sy  2、先尝试第一条途径。字符串oleaut32.dll的RVA为00133DBC,于是在内存中搜索这个RVA,希

6、望能够找到存放有该RVA值的某个  IMAGE_IMPORT_DESCRIPTOR结构,也就等于是找到了IT。:scs:400000l178000bc,3d,13,00Patternnotfound  没有找到。因为TELock已经把相应位置上的值清0了。(实际上也可以用下一个DLL的文件名来进行搜索,因为TELock此时尚未处理下一个DLL,  它不可能提前把下一个DLL的IMAGE_IMPORT_DESCRIPTOR结构清掉。)  3、再尝试第2条途径。注意到第一个函数VariantChangeTypeEx的Hint的地址是00533DCA,于是搜索RVA值

7、00133DCA,希望能够找到FirstThunk  所指向的那个数组(其实该数组也就是IAT),进而再找到FirstThunk的位置。:scs:400000l178000ca,3d,13,00Patternfoundat001B:0053328C(0013328C)  找到之后看一下IAT。由于此时还未把GetProcAddress的返回值写入IAT,所以此时IAT中存放的都是指向IMAGE_IMPORT_BY_NAME的指针(RVA)::dd53328c001B:0053328C00133DCA00133DE000133DF200133E02.=...=..

8、.=...>..0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。