吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12471|回复: 34
收起左侧

[原创] 新手学破解——脱ACProtect 壳的步骤记录笔记分享

  [复制链接]
玉份缘 发表于 2015-11-9 18:06
本帖最后由 玉份缘 于 2015-11-10 10:28 编辑

1、忽略异常(除了非法访问内存、指定的异常或范围)把这两个的勾取消掉
设置异常.png
2、隐藏OD(吾爱专用版的OD已经帮隐藏了,所有不需要设置,具体看你的OD之前是怎么设置的)

3、Shift+F9运行,在最后一次异常断下

        注意:OD脱ACProtect壳时,不能断在int 1的地方也就是最后一次异常,程序直接运行,要怎么处理?

                答:可能是你使用了Strong OD插件选项里面的 Skip Some Exceptions(跳过一些异常),把这个勾去掉就即可
忽略异常.png
4、断下后注意查看堆栈窗口,找SE处理程序(句柄),找到后右键选择数据窗口中跟随

        在数据窗口SE地址中选中前面四个字节下内存访问断点 (  例如:004156FD  8B 5C 24 0C )
int 1.png SE处理程序.png 数据窗口跟随.png
5、设置内存访问断点后接着 Shift+F9运行 ,被断下后下F2断点。
内存中断第一次.png
    例如:004156FD    8B5C24 0C       mov ebx,dword ptr ss:[esp+0xC]
        
    下了F2断点后接着Shift+F9运行,此时程序又被断下,接着再下F2断点
          内存中断第二次.png
    例如:0041574D    8B048E          mov eax,dword ptr ds:[esi+ecx*4]
        
    下了F2断点后接着Shift+F9运行,此时程序又被断下。
         第三次内存中断.png
    例如:00415761    89048E          mov dword ptr ds:[esi+ecx*4],eax

        这里被断下后,如果下面出现
        popad
        popad
        retn  ; 这里就到达最佳时机了
         最佳时机.png
    需要注意的地方这里需要先把我们之前下的F2断点及内存访问断点给全部删除了

    注意是全部删除,右键->断点->删除内存访问断点;删除F2断点点击菜单栏上的b按钮
        
    选定 retn 位置,按 F4 运行到此处(或者右键->断点->运行到选定位置)

    之后采用内存镜像法(Image),就可以直达OPE了。查看程序入口特征是不是被Stolen Code(VM)隐藏了,
内存映象法.png OEP.png
    如果没有,则可以使用OD的插件直接UnPack了。如果发现程序的入口特征被Stolen Code了,那我们就需要重新

    按上面的步骤返回到我们刚刚找到的最佳时机的 retn 处,达到 retn 后 右键选择->RUN跟踪->点击设置条件(Ctrl+T)

    打开后选择最好一个 -> 命令是一个打上勾,在文本框中输入PUSH EBP (前提是我们要熟悉各个语言的入口特征)

                   PS:处了BC++ 、汇编外,其他语言的入口特征第一个汇编指令都是 PUSH EBP (好像VB的也不是忘记了)

    设置好RUN跟踪条件后,按Ctrl+F11设置跟踪步入(左上角的会出现“跟踪”字眼表示已开启跟踪步入),此时只

    需要默默的等待PUSH EBP的出现(也就是被断下的地方,可能时间会久点,注意不要关闭OD否则前功尽弃)

    第一个被断下后,把相似入口特征的代码指令复制下来,回到程序OEP,在OEP上面把我们复制出来的指令给粘贴回去

    之后把 push ebp 设置成新的EIP就可以脱壳了,注意可能需要修复IAT。

    类似下面的:

        004254C9    55              push ebp
        004254CA    8BEC            mov ebp,esp
        004254CC    83EC 44         sub esp,0x44

     我这里的内存镜像法省略了一些步骤:

     按ALT+M,打开内存镜象,找到程序的第一个.text(也就是00401000处)按F2下断点,然后按SHIFT+F9运

     行到断点,直接到达程序OEP。


      这些就是今天看了ximo大大的视频教程以及查看相关资料后学到的有关脱ACProtect壳的步骤,上面是我所记录的


笔记,现在拿出来分享分享,希望帮到更多和我这样渴望成为一名Cracker而处处碰壁的人,如果有什么地方需要改正的或者不对的请各位大大指出,毕竟我是新手,也是在不断


的摸索中学习。   
        发此贴的另外一个目的就是为了加深印象



memory.bmp

免费评分

参与人数 5吾爱币 +3 热心值 +5 收起 理由
hzywlf + 1 + 1 谢谢@Thanks!
sxisir + 1 + 1 用心讨论,共获提升!
pangpang680 + 1 + 1 热心回复!
Sound + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
不败的勇者924 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

fa00x 发表于 2016-1-7 20:12
leonwqhb 发表于 2016-1-6 16:08
冒昧的问一句。。。
怎么判断这就是被偷掉的代码。(虽然一般程序的oep是PUSH开头。)
比如你写的

入口点特征, 各种壳语言入口特征.doc (60 KB, 下载次数: 96)
leonwqhb 发表于 2016-1-6 16:08
冒昧的问一句。。。
怎么判断这就是被偷掉的代码。(虽然一般程序的oep是PUSH开头。)
比如你写的

   类似下面的:

        004254C9    55              push ebp
        004254CA    8BEC            mov ebp,esp
        004254CC    83EC 44         sub esp,0x44

你怎么确定下面这三行是就是呢?
也有可能是下面四行,或者五行。或者六行。

还有如果被偷取的代码有几段。。怎么去分辨哪些是被偷掉的。

菜鸟不懂。请教下。谢谢了。
不败的勇者924 发表于 2015-11-9 18:32
写得不错,不过加几张过程截图会更好哦

免费评分

参与人数 1热心值 +1 收起 理由
玉份缘 + 1 谢谢,已经加上图片过程了

查看全部评分

xjh0824 发表于 2015-11-9 18:35
加油吧!!
brakefast 发表于 2015-11-9 18:44
感谢分享了,学习了哈~
我要学破丶解 发表于 2015-11-11 12:20
感谢分享啊!受教了!!
guduyongheng 发表于 2015-11-11 12:39
谢谢分享,我是新手,看完还是有帮助的
头像被屏蔽
hanyicen 发表于 2015-11-11 12:43
提示: 作者被禁止或删除 内容自动屏蔽
aiwoma123 发表于 2015-11-11 13:12
研究研究
forumid 发表于 2015-11-11 16:11
谢谢分享!
WEISAN 发表于 2015-11-11 17:09
这个看起来好棒,先瞅瞅
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-9 15:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表