【文章标题】: VA_X inline Pathcing 【文章作者】: yangjt 【作者邮箱】: [email=yangjietao123@163.com]yangjietao123@163.com[/email] 【作者主页】: http://blog.sina.com.cn/yangjt 【作者QQ号】: 325002492 【软件名称】: VA_X 【加壳方式】: Armadillo 【操作平台】: Win Vista+ Win XP 【前 传】: BRD 5·1的时候很过分…… 【修改说明】: 自己做起来才发现不是那么回事……本着认真负责的态度……我来重写这篇文章^_^ -------------------------------------------------------------------------------- 【详细过程】 原理就是Hook ArmAccess.dll输入表里的VirtualProtect,因为解码后程序会N次调用到这个函数……所以我们把它给改到我们的代码上,然后就可以为所欲为了……(^_^)当然中间还需要处理Arm的CRC校验。所以如何处理……请听我慢慢说来 First Step: prepare patch 代码前要做一些准备工作 用PeEditor把程序的.text段和.adata段的属性加上可写属性,因为代码需要对这两段进行SMC,如果不能写就会出现页保护错误 之后OllyICE打开程序,下那个经典的断点VirtualProtect,锁定程序解码ArmAccess.dll时对其区段进行的页保护设定 这段代码长成这个样子:
1F25A53C . C745 B8 04000>mov dword ptr [ebp-48], 4 1F25A543 . EB 07 jmp short 1F25A54C 1F25A545 C745 B8 02000>mov dword ptr [ebp-48], 2 1F25A54C > 8B55 E0 mov edx, dword ptr [ebp-20] 1F25A54F . 8B45 F4 mov eax, dword ptr [ebp-C] 1F25A552 . 0342 0C add eax, dword ptr [edx+C] 1F25A555 . 8945 A8 mov dword ptr [ebp-58], eax 1F25A558 . 8B4D E0 mov ecx, dword ptr [ebp-20] 1F25A55B . 8B51 08 mov edx, dword ptr [ecx+8] 1F25A55E . 8955 B0 mov dword ptr [ebp-50], edx 1F25A561 . 8D45 BC lea eax, dword ptr [ebp-44] 1F25A564 . 50 push eax ; /pOldProtect 1F25A565 . 8B4D B8 mov ecx, dword ptr [ebp-48] ; | 1F25A568 . 51 push ecx ; |NewProtect 1F25A569 . 8B55 B0 mov edx, dword ptr [ebp-50] ; | 1F25A56C . 52 push edx ; |Size 1F25A56D . 8B45 A8 mov eax, dword ptr [ebp-58] ; | 1F25A570 . 50 push eax ; |Address 1F25A571 . FF15 7030291F call dword ptr [<&KERNEL32.VirtualPro>; \VirtualProtect
[注意]APP应用上架合规检测服务,协助应用顺利上架!