大家好,我是catty870807
今天为大家演示一个yoda's Protector V1.03.3(默认保护)的脱壳方法和具体分析
这壳难度不大,适合新手朋友学习,anti主要有锁定输入和任务栏,时钟检测,内存校验,有iat加密
先单步走走看吧
004A2702 E8 8E000000 call yoda's_P.004A2795
004A2707 E8 03000000 call yoda's_P.004A270F
这种格式的第一个通常可以f8 ,第二个f7,其他的f7
004A290C E8 820A0000 call yoda's_P.004A3393
004A2911 F785 500B4100 8>test dword ptr ss:[ebp+0x410B50],0x80
这里需要注意一下,要f8步过,否则会跑飞的
004A294A E8 C30A0000 call yoda's_P.004A3412
004A294F E8 03000000 call yoda's_P.004A2957
这里需要f7步入
004A3412 E8 2EF2FFFF call yoda's_P.004A2645 ; jmp 到 kernel32.GetVersion
004A3417 A9 00000080 test eax,0x80000000
004A341C 74 20 je short yoda's_P.004A343E
004A341E 3C 04 cmp al,0x4
004A3420 75 0C jnz short yoda's_P.004A342E
004A3422 C785 F4074100 0>mov dword ptr ss:[ebp+0x4107F4],0x2
004A342C EB 40 jmp short yoda's_P.004A346E
004A342E 3C 03 cmp al,0x3
004A3430 75 3C jnz short yoda's_P.004A346E
004A3432 C785 F4074100 0>mov dword ptr ss:[ebp+0x4107F4],0x1
004A343C EB 30 jmp short yoda's_P.004A346E
004A343E 3C 03 cmp al,0x3
004A3440 75 0C jnz short yoda's_P.004A344E
004A3442 C785 F4074100 0>mov dword ptr ss:[ebp+0x4107F4],0x4
004A344C EB 20 jmp short yoda's_P.004A346E
004A344E 3C 04 cmp al,0x4
004A3450 75 0C jnz short yoda's_P.004A345E
004A3452 C785 F4074100 0>mov dword ptr ss:[ebp+0x4107F4],0x8
004A345C EB 10 jmp short yoda's_P.004A346E
004A345E 3C 05 cmp al,0x5
004A3460 75 0C jnz short yoda's_P.004A346E
004A3462 C785 F4074100 1>mov dword ptr ss:[ebp+0x4107F4],0x10
004A346C EB 00 jmp short yoda's_P.004A346E
这里是通过GetVersion获取系统版本,然后赋特定值,经过测试可知,mov dword ptr ss:[ebp+0x4107F4],0x8可以跳过部分的anti
也就是讲GetVersion的返回值最后一位修改为4即可
004A2957 E8 2BFDFFFF call yoda's_P.004A2687 ; jmp 到 user32.GetForegroundWindow
004A295C 8985 F8074100 mov dword ptr ss:[ebp+0x4107F8],eax
004A2962 6A 00 push 0x0
004A2964 8D85 350C4100 lea eax,dword ptr ss:[ebp+0x410C35]
004A296A 50 push eax
004A296B E8 1DFDFFFF call yoda's_P.004A268D ; jmp 到 user32.FindWindowA
004A2970 8985 FC074100 mov dword ptr ss:[ebp+0x4107FC],eax
004A2976 E8 18FDFFFF call yoda's_P.004A2693 ; jmp 到 user32.GetTopWindow
这里是获取前台活动窗口的句柄,主要用于锁定任务栏
004A2989 E8 27FCFFFF call yoda's_P.004A25B5 ; jmp 到 kernel32.GetCurrentProcess
004A298E 50 push eax
004A298F 50 push eax
004A2990 E8 68FCFFFF call yoda's_P.004A25FD ; jmp 到 kernel32.GetPriorityClass
004A2995 8985 0C084100 mov dword ptr ss:[ebp+0x41080C],eax
004A299B 58 pop eax
004A299C 68 80000000 push 0x80
004A29A1 50 push eax
004A29A2 E8 50FCFFFF call yoda's_P.004A25F7 ; jmp 到 kernel32.SetPriorityClass
这里是设置进程优先级,不知道是做什么用的
004A2D2F E8 47F9FFFF call yoda's_P.004A267B ; jmp 到 user32.GetWindowLongA
004A2D34 8985 00084100 mov dword ptr ss:[ebp+0x410800],eax
004A2D3A 0D 00000008 or eax,0x8000000
004A2D3F 50 push eax
004A2D40 6A F0 push -0x10
004A2D42 8B85 FC074100 mov eax,dword ptr ss:[ebp+0x4107FC]
004A2D48 50 push eax
004A2D49 E8 33F9FFFF call yoda's_P.004A2681 ; jmp 到 user32.SetWindowLongA
004A2D4E 6A F0 push -0x10
004A2D50 8B85 04084100 mov eax,dword ptr ss:[ebp+0x410804]
004A2D56 50 push eax
004A2D57 E8 1FF9FFFF call yoda's_P.004A267B ; jmp 到 user32.GetWindowLongA
004A2D5C 8985 08084100 mov dword ptr ss:[ebp+0x410808],eax
004A2D62 0D 00000008 or eax,0x8000000
004A2D67 50 push eax
004A2D68 6A F0 push -0x10
004A2D6A 8B85 04084100 mov eax,dword ptr ss:[ebp+0x410804]
004A2D70 50 push eax
004A2D71 E8 0BF9FFFF call yoda's_P.004A2681 ; jmp 到 user32.SetWindowLongA
这里就是锁定任务栏的地方了,由于任务栏的句柄已经清0,所以这里的锁定也失效了
004A4890 E8 AADDFFFF call yoda's_P.004A263F ; jmp 到 kernel32.GetTickCount
004A4895 8B8D 68084100 mov ecx,dword ptr ss:[ebp+0x410868]
004A489B 2BC1 sub eax,ecx
004A489D 3D E02E0000 cmp eax,0x2EE0
004A48A2 78 08 js short yoda's_P.004A48AC
时钟检测,这里的返回值必须清0,否则就退出了
现在可以飞去OEP了
可以看到,大部分的iat都被加密了
00466000 0016CD70
下面找找看iat加密的地方
由上面的分析可知,可以先下GetVersion断点,修改返回值过anti,然后下FindWindowA,修改返回值过anti,下面来找找看iat加密处
004A4768 8932 mov dword ptr ds:[edx],esi ; 很明显这里的代码加密了,观察寄存器窗口可知,正确的指针式是eax
好了重新来过吧
004A4790 33C0 xor eax,eax ; 这个位置 所有iat已经处理好了
先看下iat的值是否正确吧,可以看到,全部都是正确的,注意这里需要将修改过的代码还原,否则会被校验到,退出
来到时钟检测的地方,清0先
ok,现在可以飞OEP了
可以看到,现在全部都是有效的
OK,谢谢大家
没有合适的资源?快使用搜索试试~ 我知道了~
yoda's Protector V1.03.3(默认保护)的脱壳方法和具体分析
共5个文件
exe:4个
txt:1个
5星 · 超过95%的资源 需积分: 50 58 下载量 176 浏览量
2017-11-01
11:30:45
上传
评论 1
收藏 6.72MB RAR 举报
温馨提示
描述对于破解爱好者对于程序壳的去发的工具。此工具就针对于yoda's Protector 壳的脱掉。
资源推荐
资源详情
资源评论
收起资源包目录
yoda's Protector V1.03.3(默认保护)的脱壳方法和具体分析.rar (5个子文件)
UnPack_.exe 696KB
教程record.txt 5KB
yoda's Protector V1.03.3.exe 292KB
UnPack.exe 684KB
yoda's Protector V1.03.3(默认保护)的脱壳方法和具体分析.exe 6.62MB
共 5 条
- 1
资源评论
- 扶朕起来、朕还能装b2017-11-01抱着试试看的心态 试了一下 结果真的破解了 不错 顶起 好资源
qq_18705577
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功