| 域名空间 下载中心 社区论坛 信息公告 my小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
|
前言,关于这个软件用sdk紧密结合壳,使脱壳文件不能直接运行。fpx原来写出一篇节点修复文章,这里jeffzhang兄提示有另外办法修复,我学会后觉的对初学者有用,故发布此文。jeffzhang真是脱壳高手,吾望尘莫及。 好,脱壳开始。 这个版本的asprotect对nt调试器不检测,softice严格校验。od异常设置不忽略内存异常,其余全部忽略,载入程序。 00401000 > 68 01804600 push aspack.00468001 停在这里,f9运行。 00401005 e8 01000000 call aspack.0040100b 0040100a c3 retn 0040100b c3 retn 0040100c 3b92 7724e04e cmp edx,dword ptr ds:[edx+4ee02477] 00401012 04 84 add al,84 00401014 3d 62110889 cmp eax,89081162 00401019 1905 9080a438 sbb dword ptr ds:[38a48090],eax 0040101f 45 inc ebp 00401020 e1 09 loopde short aspack.0040102b ...................................................................... 内存异常。 009e0739 3100 xor dword ptr ds:[eax],eax 009e073b eb 01 jmp short 009e073e 009e073d 68 648f0500 push 58f64 009e0742 0000 add byte ptr ds:[eax],al 009e0744 00eb add bl,ch 009e0746 02e8 add ch,al 009e0748 0158 68 add dword ptr ds:[eax+68],ebx 009e074b f8 clc 009e074c ^ e2 9d loopd short 009e06eb ...................................................................... 继续shift+f9 32次忽略异常到最后一次异常处。 009e00e1 3100 xor dword ptr ds:[eax],eax 最后一次异常。 009e00e3 64:8f05 0000000>pop dword ptr fs:[0] // 在此处下断,shift+f9中断到这句,然后清除断点 009e00ea 58 pop eax 009e00eb 833d dc399e00 0>cmp dword ptr ds:[9e39dc],0 009e00f2 74 14 je short 009e0108 009e00f4 6a 0c push 0c 009e00f6 b9 dc399e00 mov ecx,9e39dc 009e00fb 8d45 f8 lea eax,dword ptr ss:[ebp-8] 009e00fe ba 04000000 mov edx,4 009e0103 e8 94c3ffff call 009dc49c 009e0108 ff75 fc push dword ptr ss:[ebp-4] 009e010b ff75 f8 push dword ptr ss:[ebp-8] 009e010e 8b45 f4 mov eax,dword ptr ss:[ebp-c] 009e0111 8338 00 cmp dword ptr ds:[eax],0 009e0114 74 02 je short 009e0118 009e0116 ff30 push dword ptr ds:[eax] 009e0118 ff75 f0 push dword ptr ss:[ebp-10] 009e011b ff65 ec jmp dword ptr ss:[ebp-14] 这里就跳走了。 009e011e 5f pop edi 009e011f 5e pop esi 009e0120 5b pop ebx 009e0121 8be5 mov esp,ebp 009e0123 5d pop ebp 009e0124 c3 retn 注意这里不能下断点啊,不同于asprotect1.23rc4 ..................................................................... 接着按alt+m打开内存镜像。在第一个块上下内存访问断点。 内存镜像 r r 0400000 00001000 aspack pe header imag r rwe 00401000 00042000 aspack code imag r rwe //在此处上下内存访问断点 ...................................................................... 按f9运行,程序就会中断在oep处了。 0044289c 55 push ebp //中断在这里,现在就可以dump了。 0044289d 8bec mov ebp,esp 0044289f 83c4 f4 add esp,-0c 004428a2 e8 4d0bfcff call aspack.004033f4 004428a7 e8 0c21fcff call aspack.004049b8 004428ac e8 6354fcff call aspack.00407d14 004428b1 e8 d6c6fcff call aspack.0040ef8c 接着用import rec 填入oep 4289c ,iat自动搜索-获得输入信息-显示无效的,右键先用追踪层次1修复大部分指针,剩下8个指针用asprotect1.2x插件修复。 运行修复后的程序出错,当然不可能这么简单了。所以接下来的工作就是寻找出错的位置然后修复。用od载入修复后的程序,来到这里。 00442901 |. e8 d210feff call dump_.004239d8 00442906 |. ba 38294400 mov edx,dump_.00442938 ; ascii "aspack" 0044290b |. a1 30564400 mov eax,dword ptr ds:[445630] 00442910 |. e8 df0dfeff call dump_.004236f4 00442915 ff15 0c494400 call dword ptr ds:[44490c] //这里出错,信息框提示 ds:[0044490c]=0098c9a0,这里是调用壳中的代码,壳被脱了,当然出错,所以要知道它究竟是调用什么内容,只能跟踪未脱壳的程序相应位置。 用od重新加载未脱壳的程序,重复上叙步骤。直到oep处停下。 00442915 ff15 0c494400 call dword ptr ds:[44490c] //按f4来到这里,接着f7跟入 0098c9a0 833d a8359900 0>cmp dword ptr ds:[9935a8],0 //来到这里 0098c9a7 74 06 je short 0098c9af 0098c9a9 ff15 a8359900 call dword ptr ds:[9935a8] //ds:[009935a8]=004427a8,调用004427a8处的代码 ; aspack.004427a8 0098c9af c3 retn 看到这里大家应该都知道该怎样修复了吧。在转储窗口,ctrl+g来到0044490c 0044490c a0 c9 98 00 //原先值 0044490c a8 27 44 00 //修改值 保存为unpack1.exe,试运行,确定一个错误提示,英文界面,还不能加壳程序。 继续查找出错的位置 0043f1b8 ff15 04494400 call dword ptr ds:[444904] //这里出错,ds:[00444904]=0098c8f4,又是调用壳中的代码 同理跟踪未脱壳的程序来到此处 0043f1b8 ff15 04494400 call dword ptr ds:[444904] //f7进入 0098c8f4 c3 retn //来到这里。返回到 0043f1be 晕,里面就是一个retn,这个也好办,随便找一个retn让它返回吧。可以用ctrl+f查找retn,我选用的是00401234处的,随便哪个retn都行。 同样来到转储窗口,ctrl+g来到00444904 00444904 f4 c8 98 00 //原先值 00444904 34 12 40 00 //修改值 继续查找出错的位置 0043f246 ff15 08494400 call dword ptr ds:[444908] //ds:[00444908]=0098c8f4 这里也是调用壳中的代码 同样跟踪未脱壳的程序来到此处 0043f246 ff15 08494400 call dword ptr ds:[444908] //f7进入 0098c8f4 c3 retn //来到这里。 这里和上面修改一样。 00444908 f4 c8 98 00 //原先值 00444908 34 12 40 00 //修改值 到这里就是彻底结束了,可以正常运行了。 【破解总结】 在转储窗口中修改 00444904 f4 c8 98 00 //原先值 00444904 34 12 40 00 //修改值 00444908 f4 c8 98 00 //原先值 00444908 34 12 40 00 //修改值 0044490c a0 c9 98 00 //原先值 0044490c a8 27 44 00 //修改值 编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部] 上一篇:bitcomet下载加速办法 下一篇:adsl速度变慢原因查找和排除 转载请注明来源:www.iyit.net 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 最新更新 | 热点排行 | 推荐新闻 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| 友情链接 | ||||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||