手脱实现双进程标准保护ArmaDillo壳.pdf

上传人:深夜****等你... 文档编号:84254353 上传时间:2023-04-04 格式:PDF 页数:7 大小:436.05KB
返回 下载 相关 举报
手脱实现双进程标准保护ArmaDillo壳.pdf_第1页
第1页 / 共7页
手脱实现双进程标准保护ArmaDillo壳.pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《手脱实现双进程标准保护ArmaDillo壳.pdf》由会员分享,可在线阅读,更多相关《手脱实现双进程标准保护ArmaDillo壳.pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 穿山甲壳的一个重要特点就是:寻找 OEP 本身不难,但 Armadillo 会对 IAT 进行加密处理,导致后面 dump 出的内容无效,因此寻找 OEP 之前,需要绕过 IAT 的加密处理,以后 dump 后才能方便地用 ImpRec 修复。程序名为 notepad.exe,运行后有两个 notepad.exe 进程。原理大概是互相通过一个 Mutex来通讯检测对方是否存在。OD 中可以通过手动汇编的方式进行双变单。此样本运行后有两个进程。双进程保护。1 OD 加载程序,对 OpenMutexA 函数下断,F9 运行 2 观察栈 3 手动汇编,使进程由双变单 Ctrl+G 定位到 0040

2、1000 地址,手动输入汇编代码:Pushad Pushfd Push 0012FDD8 Xor eax,eax Push eax Push eax Call CreateMutexA Popfd Popad Jmp OpenMutexA 截图如下:然后在 00401000 出 新建 EIP,程序从此处运行 Jmp OpenMutexA 处跳到 OPenMutexA 函数处 取消 OpenMutex 断点,消除 00401000 处修改的代码,恢复原状 接下来在系统空间内对 GetModuleHandleA 函数下硬件执行断点 He api F9 1 次:0012E79C 77C079B2 /

3、CALL 到 GetModuleHandleA 来自 77C079AC 0012E7A0 77BE31BC pModule=kernel32.dll F9 2 次:0012E61C 74683C4E /CALL 到 GetModuleHandleA 来自 MSCTF.74683C48 0012E620 0012E624 pModule=C:WINDOWSsystem32ntdll.dll F9 3 次:0012E624 74683C4E /CALL 到 GetModuleHandleA 来自 MSCTF.74683C48 0012E628 0012E62C pModule=C:WINDOWSs

4、ystem32imm32.dll F9 4 次:0012E570 74683C4E /CALL 到 GetModuleHandleA 来自 MSCTF.74683C48 0012E574 0012E578 pModule=C:WINDOWSsystem32KERNEL32 F9 5 次:0012ECFC 7365D4BA /CALL 到 GetModuleHandleA 来自 msctfime.7365D4B4 0012ED00 0012ED04 pModule=C:WINDOWSsystem32ntdll.dll F9 6 次:0012EE64 5D175324 /CALL 到 GetMod

5、uleHandleA 来自 5D17531E 0012EE68 5D175370 pModule=kernel32.dll F9 7 次:0012EF24 77F45CD0 /CALL 到 GetModuleHandleA 来自 77F45CCA 0012EF28 77F4501C pModule=KERNEL32.DLL F9 8 次:0012F73C 00433EF3 /CALL 到 GetModuleHandleA 来自 练习用 NO.00433EED 0012F740 00000000 pModule=NULL F9 9 次:(时间稍长)00129528 00BB6DF3 /CALL

6、到 GetModuleHandleA 来自 00BB6DED 0012952C 00BCBC1C pModule=kernel32.dll 00129530 00BCCEC4 ASCII VirtualAlloc F9 10 次:00129528 00BB6E10 /CALL 到 GetModuleHandleA 来自 00BB6E0A 0012952C 00BCBC1C pModule=kernel32.dll 00129530 00BCCEB8 ASCII VirtualFree F9 11 次:0012928C 00BA5CE1 /CALL 到 GetModuleHandleA 来自 0

7、0BA5CDB 00129290 001293DC pModule=kernel32.dll Ok Alt+F9 回到程序领空 以下寻找 OEP 有两种方法 一是 修改 jmp 后往下跟,直到找到下图 jmp+salc 是对 IAT 加密结束的标志,在 jmp 处下断,Shift+F9 运行,断在这儿。回到上面,把 jmp 的改动恢复成 je。至此 IAT 加密被绕过了。下一步:清除 GetModuleHandleA 断点后下断 he CreateThread,Shift+F9 运行一次,断后 Alt+F9返回 F8 走下去 一直到 Call ecx 即可到达 OEP 另外一种方法是:从 Ge

8、tModuleHandleA 返回程序领空后,将 je 修改为 jmp 去掉 GetModuleHandleA 的硬件执行断点 然后 alt+M 打开内存面板 对 00401000 处下 内存访问断点,F9 运行到达 OEP 附近:F8 往下走吧 没多少步就到达 Call Ecx 了 ,Ecx 中的地址即为 OEP F7 单步进入到达 OEP:接下来就是 dump,修复导入表了 Dump 的时候最好不好用 OD 插件 否则很可能会卡死 Dump 使用 LordPE 软件,选中进程后右键选择“完全脱壳”,即可完整 dump 然后使用 ImportREC 修复导入表 无效链接的处理办法:选择一个无效的指针,右键单击 选择“剪切指针”命令 去掉所有的无效指针!最后修复 dump.exe 文件 双击记事本程序 可以运行 大功告成!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁