-
-
[求助]zp1.49加壳后的问题
-
发表于: 2012-5-28 12:27 3257
-
用zp1.49用同样的方式给记事本加壳
记事本是Microsoft Visual C++ 6.0 SPx Method 1
然后给自己写的E语言计算机加壳 Microsoft Visual C++ 6.0
ZP1。49的加壳方式是
高级选项中
viso模块选择后后的拉条随便选中后往后拉点只要不为0
在试用控制中
勾选软件需要密钥才能运行
分别给两个程序加壳
加壳后来到OEP查看发现
记事本的OEP为乱序
原记事本入口
004010CC > 55 push ebp
004010CD 8BEC mov ebp,esp
004010CF 83EC 44 sub esp,44
004010D2 56 push esi
004010D3 FF15 E0634000 call dword ptr ds:[<&kernel32.GetCommandLineA>>; kernel32.GetCommandLineA
加壳后oep
004010CC 6B73 85 2B imul esi,dword ptr ds:[ebx-0x7B],0x2B
004010D0 ^ E1 A3 loopde X文本编辑.00401075
004010D2 67:FE ??? ; 未知命令
004010D4 3B14B7 cmp edx,dword ptr ds:[edi+esi*4]
004010D7 9C pushfd
004010D8 0BFA or edi,edx
004010DA BD DA3EC44B mov ebp,0x4BC43EDA
004010DF DD1E fstp qword ptr ds:[esi]
计算机E语言原OEP
0044B34D >/$ 55 push ebp
0044B34E |. 8BEC mov ebp,esp
0044B350 |. 6A FF push -0x1
0044B352 |. 68 D0264700 push 计算器.004726D0
0044B357 |. 68 7CFB4400 push 计算器.0044FB7C ; SE 处理程序安装
0044B35C |. 64:A1 0000000>mov eax,dword ptr fs:[0]
0044B362 |. 50 push eax
0044B363 |. 64:8925 00000>mov dword ptr fs:[0],esp
0044B36A |. 83EC 58 sub esp,0x58
0044B36D |. 53 push ebx
0044B36E |. 56 push esi
0044B36F |. 57 push edi
0044B370 |. 8965 E8 mov [local.6],esp
0044B373 |. FF15 34A34600 call dword ptr ds:[<&KERNEL32.GetVersion>; kernel32.GetVersion
加壳后OEP
0044B34D 55 push ebp
0044B34E 8BEC mov ebp,esp
0044B350 6A FF push -0x1
0044B352 68 D0264700 push 计算器_z.004726D0
0044B357 68 7CFB4400 push 计算器_z.0044FB7C
0044B35C 64:A1 00000000 mov eax,dword ptr fs:[0]
0044B362 50 push eax
0044B363 64:8925 0000000>mov dword ptr fs:[0],esp
0044B36A 83EC 58 sub esp,0x58
0044B36D 53 push ebx
0044B36E 56 push esi
用同样的方式对不同的程序加壳为什么两都不一样呢,
问题
1、记事本OEP加壳后会变成乱序未解码的样子,计算器却没有变
2、用同样的方式对两个加壳程序无KEY解码,记事本解码后变成原OEP样子,计算器未变,结果记事本能运行,计算器却不能运行,有大牛指点下吗。
记事本是Microsoft Visual C++ 6.0 SPx Method 1
然后给自己写的E语言计算机加壳 Microsoft Visual C++ 6.0
ZP1。49的加壳方式是
高级选项中
viso模块选择后后的拉条随便选中后往后拉点只要不为0
在试用控制中
勾选软件需要密钥才能运行
分别给两个程序加壳
加壳后来到OEP查看发现
记事本的OEP为乱序
原记事本入口
004010CC > 55 push ebp
004010CD 8BEC mov ebp,esp
004010CF 83EC 44 sub esp,44
004010D2 56 push esi
004010D3 FF15 E0634000 call dword ptr ds:[<&kernel32.GetCommandLineA>>; kernel32.GetCommandLineA
加壳后oep
004010CC 6B73 85 2B imul esi,dword ptr ds:[ebx-0x7B],0x2B
004010D0 ^ E1 A3 loopde X文本编辑.00401075
004010D2 67:FE ??? ; 未知命令
004010D4 3B14B7 cmp edx,dword ptr ds:[edi+esi*4]
004010D7 9C pushfd
004010D8 0BFA or edi,edx
004010DA BD DA3EC44B mov ebp,0x4BC43EDA
004010DF DD1E fstp qword ptr ds:[esi]
计算机E语言原OEP
0044B34D >/$ 55 push ebp
0044B34E |. 8BEC mov ebp,esp
0044B350 |. 6A FF push -0x1
0044B352 |. 68 D0264700 push 计算器.004726D0
0044B357 |. 68 7CFB4400 push 计算器.0044FB7C ; SE 处理程序安装
0044B35C |. 64:A1 0000000>mov eax,dword ptr fs:[0]
0044B362 |. 50 push eax
0044B363 |. 64:8925 00000>mov dword ptr fs:[0],esp
0044B36A |. 83EC 58 sub esp,0x58
0044B36D |. 53 push ebx
0044B36E |. 56 push esi
0044B36F |. 57 push edi
0044B370 |. 8965 E8 mov [local.6],esp
0044B373 |. FF15 34A34600 call dword ptr ds:[<&KERNEL32.GetVersion>; kernel32.GetVersion
加壳后OEP
0044B34D 55 push ebp
0044B34E 8BEC mov ebp,esp
0044B350 6A FF push -0x1
0044B352 68 D0264700 push 计算器_z.004726D0
0044B357 68 7CFB4400 push 计算器_z.0044FB7C
0044B35C 64:A1 00000000 mov eax,dword ptr fs:[0]
0044B362 50 push eax
0044B363 64:8925 0000000>mov dword ptr fs:[0],esp
0044B36A 83EC 58 sub esp,0x58
0044B36D 53 push ebx
0044B36E 56 push esi
用同样的方式对不同的程序加壳为什么两都不一样呢,
问题
1、记事本OEP加壳后会变成乱序未解码的样子,计算器却没有变
2、用同样的方式对两个加壳程序无KEY解码,记事本解码后变成原OEP样子,计算器未变,结果记事本能运行,计算器却不能运行,有大牛指点下吗。
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
赞赏
他的文章
看原图
赞赏
雪币:
留言: