ACProtect壳2.0版本的分析

随着壳的更新,保护技术也在不断的更新,那么我们在这里分析下2.0版本的ACP壳。

我们在将程序载入OD之后。选择SOD的OD隐藏,然后选择取消内存访问忽略,开始shift+F9,还是上次的程序,来到了int1,然后找到E句柄,数据窗口跟随,下断,shift+F9,下断,然后再次shift+F9 下断,然后再次shift+F9,然后取消所有的断点,点击M,00401000,F2下断,shift + F9 运行,来到OEP,然后这里就出现了VB程序的尴尬之处,我们只需要将我们来到的这一行改为push 左下第二行的数值,然后call 往上数第一个jmp就行。然后脱壳,修复资源就OK了。

接下来这个程序,也是一个ACP壳,但是经过我们的测试,无论是通过取消int3忽略,还是取消忽略内存,都没有办法将程序断下来,这时候就需要利用在API上下断来尝试将程序断下来。这里就提到一个函数,GetCurrentProcessId ,获取当前进程的函数,在这里下断,然后F9运行断下来。此时用lordpe查询OD进程的pid,在这里我们查到的是6DC,修改完毕,然后对函数GetModuleHandleA进行下断,获取一个程序的模块句柄,然后我们在内存code段按F2下断,F9运行,来到NAG窗口,确定后点击直到来到OEP。脱壳修复,我们发现无效指针,尝试等级三修复,这里需要注意下,原版是可以修复成功的,但我们的好像并不能修复成功,会造成卡死现象。这里有一个方法就是我们双击这个函数,可以尝试输入messagebox,然后手动修复。可惜对我们来说还是有点难,所以,我们来尝试直接剪切掉,看能不能运行,剪切掉以后,发现可以正常运行。那么,脱壳成功。

另类破解ACP壳:
在这次脱壳中,我们发现这个壳其实还是很调皮的,当我们隐藏OD、设置不忽略int3中断之后,满怀信心的shift+F9了。结果发现,程序跑飞了。然后得从头再来,一样的步骤,再次尝试shift+F9,看最终结果,感觉就跟打游戏的时候BOSS随机爆装备一样,运气好了,它断下来了,运气不好,断不下来,推倒再来。好,废话不多说,我们断下来之后,寻找SE句柄,数据窗口跟随,然后下断。shift+F9,下断,shift+F9,下断,shift+F9,取消所有断点,然后直接到达retn。到了retn之后利用传说中的内存下断,再次shift+F9,shift+F9 ,到达壳给的虚假OEP,记住这个地址,因为,如果我们忘记了它,他会在以后告诉我们一个恐怖的故事(真抱歉,少年,我把真皮手铐忘在家里了)记下这个地址之后,重载程序,利用ESP定律法,下断,然后利用最后一次异常法,来判断程序真正的OEP,经过测试,发现经过15次之后程序会跑飞,那么来到第14次,记住这个真正的OEP,因为,
它会让我们爽到不能呼吸(只要998,风女带回家)。然后lordPE来转存,转存完毕之后进行修复,这时候,就要填虚假的OEP,我们不能表现出已经知道真正的OEP在哪,我们要假装不知道,让它觉得我们上当了,然后获取输入表,查找无效函数,一套三级的修复,让它完成大部分的修复,然后趁它不备,一个剪切丢它身上,回头转存(真男人,从不回头看爆炸)。这时候,我们满怀期待的打开了修复完的程序(计分板),发现,得,自信回头了,丝血逃生,程序打不开。这时候,队友绝望地打出了GG,对面打出了:真抱歉,少年,我把真皮手铐忘家里了,我们愤怒的打开外挂(lordPE),勾选了大招源头追踪(PE编辑器),将入口点填上我们所知道的真正的OEP,点击保存(确认追踪),然后再次打开程序瞟了一眼(计分板),果然,一切都在意料之中,一发全屏的巨鲨强袭,完美收官。



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ACProtect是一个对Windows下的可执行文件提供保护的软件,可以非常有效的防止盗版。通过公匙加密算法(RSA)创建并校验注册KEY,只有在RSA KEY正确的情况下,才对那些受保护的代码进行正常解码。同时,ACProtect还使用了内嵌式加密,可以有效的防止加密软件从内存中被抓取,也就是无法被脱壳。内置反调试引擎,有效的增加了破解的难度。专用的API系统,可以使ACProtect和你的软件紧密的接合在一起,这样,你就可以通过使用ACProtect来创建你的全功能评估版。试想,你既可以让用户完全感受到你的软件给他们所带来的一切实用功能,又不用花费过多时间在加密保护上,这岂不是一个一举两得的完美方案? 主要特色 嵌入式加密系统 --- 你可以自行指定程序中所需加密的代码段,通过使用这个系统,那怕破解者知道你的程序的入口点(OEP)并且重建了输入表。 代码替换 ?--Acprotect在不影响软件功能的情况下,可以用ACProtect代码来替换你原程序中的某些代码,使得保护代码和被保护程序更加无缝的结合在一起。如果Acprotect被非法脱壳之后,软件就会由于部分代码无法正确还原而导致非法操作。 多态引擎--- 有效的动态变异,多态引擎产生多层解码代码,解码代码和被保护代码在你每次执行保护的时候都是变化的。可以有效对抗静态分析和动态跟踪。运行完毕之后,所有代码可以恢复到加密状态。 RSA 1024 License---通过使用RSA KEY系统,破解者无法在没有RSA密匙的情况下制作出你的软件的KeyGen,因为在通常情况下,RSA密匙只有作者本人知道。你同样可以决定,哪一些代码是需要通过RSA密匙来保护的,破解者根本无法获取你的“key.dat”。如果没有正确的KEY,受保护的代码将无法被正确解码。 API ---专用的API系统,外以及被保护程序可以被相互调用,从而使外和受保护的程序更加紧密地接合在一起。 反补丁/反载入--- 可以有效的防止你的软件被打上补丁/被装载,或者被反编译。 Anti-SoftIce --- 可以探测到Numega SoftIce (tm)和Frogsice。 反调试/反抓取/反跟踪 --- 在反调试的同时,有效的监控W32Dasm、SoftIce、TRW 2000、Turbo Debugger, Sourcer、Filemon、ExeSpy、ResSpy、RegMon、Memory Monitor等常用破解工具是否在运行。 动态代码加密/解密 --- 对你程序中指定代码提供动态加密/解密,有效防止内存补丁(memory patch)。 指定系统授权 --- 通过对用户定义的系统硬件识别识别函数,可以对用户计算机指定授权,确保了被授权的系统的唯一性。 黑名单 --- 可以将那些非法或者被公布的KEY列为黑名单,有效防止非法更新。 试用设置 --- 可以设置使用次数限制、使用日期限制或最后日期限制等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值