-
-
[原创]ImportREC程序框架初步逆向
-
发表于:
2008-4-24 22:24
5278
-
前一段网上流行ImportREC 1.7,我大概看了一下,发现是在1.6的基础上patch而成的,并且patch分散比较乱。自己拿来原版的1.6经过解压(特意感谢fly曾经的帮助),可以恢复原貌。从section来看是典型的vc编译连接后的结构布局,.text、ApiHooks、.rdata、.data、.rsrc。自然不能仅从名字看,但是对于未修改的程序仅看名字就足够了。其中.text几乎全是代码(自然还有为了对齐的0x90和0x00以及0xcc),ApiHooks如其名字是ApiHooks的静态连接的内容,.rdata是只读数据主要是引入表的相关东西,还有RTTI、SEH frame、运行时常量、各类及其vtable消息映射等,.data是各种全局变量及静态变量,.rsrc是资源。
.text是作者编写的代码主要布局为CAboutDlg,CSelectSectionsContainCodeDlg(包含disasm?),CDisHexViewDlg,CExactCallWindowDlg,未知功能的代码,CGetAPICallsDlg,CGetImportsFilterDlg,未知功能的代码,CImportEditorDlg,CMyWinApp,CImportRECDlg,basic_string(静态连接库),几个未知类,CLoaderDlg,COptionsDlg,CPEFile,CSelectModuleDlg,几个未知类(估计与反汇编有关)。其余部分是MFC和库函数的静态连接,最后是所有函数的ehhandler。
ApiHooks的内容我比对了一下,几个重要的函数名是知道的:GetDefaultRCInfo,hGetProcFlags,GetProcFlags,EstablishApiHooksA,hEstablishApiHooksA,EstablishApiHooksW,hEstablishApiHooksW,RemoteExecute,hRemoteExecute,IsModuleLoadedA,hIsModuleLoadedA,IsModuleLoadedW,hIsModuleLoadedW,LoadAndCallA,hLoadAndCallA,LoadAndCallW,hLoadAndCallW,UnloadModuleA,hUnloadModuleA,UnloadModuleW,hUnloadModuleW,RemoteAllocNT,RemoteFreeNT,HookApiA,HookApiW,CallOrigFn,UnhookApis。知道这些可以为替换ApiHooks作准备,这里的ApiHooks是5.6,5系列最高是5.72。
今天就罗嗦这些,该睡觉了,如大家有兴趣我就把idb传上来共同探讨。欢迎拍砖,欢迎大牛、潜水牛指点迷津。
脱壳的可执行文件:
ImportREC.rar
idb文件:
importrec.part1.rar importrec.part2.rar
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)