就简单的介绍一下工具的逻辑。
1.InlineHook 扫描逻辑 : dump 进程下的所有dll包括自身。然后 通过路径 把 文件 也dump下来。
接下来 就是 无聊而又痛苦的工作!!!
1.1 拉伸文件 到内存 IMAGE_SECTION_HEADER->VirtualAddress(为了避免 混论:这一步的内存 叫做 PeBuffer)
1.2 修复 PeBuffer 的 IAT表 流程:通过 PEbuffer -> ImageThunkData->u1(名字OR序号) 最终定位修改 PEbuffer ->FirstThunk->u1.Function
1.3 修复PeBuffer 的重定位表 直接使用API LdrProcessRelocationBlock(新基址(也就是PeBuffer),SizeOfBlock,NextOffset,Diff);
例如 : Diff = GetModuleHandle(L"ntdll.dll") - PIMAGE_NT_HEADERS->OptionalHeader.ImageBase
2.IAT Hook扫描逻辑 (这个最简单) dump->IAT 和 PeBuffer ->IAT(注意 这个你已经修复了 如 1.2描述)对比,直接得出结果
如果 出现了 程序崩溃的情况,bug,请联系我。
备注:扫 微软dll,基本无敌 。扫其他dll,萎了。
云盘:
链接:https://pan.baidu.com/s/1dejQNwq42FS6Cnn94no4Eg
提取码:6c47
正文完