1000分!求高手帮忙脱壳啊!Armadillo 3.78 - 4.xx -> Silicon Realms Toolworks

我的QQ:hhhyx8@gmail。com求真正的高手帮下忙啊!网上的那些回答就不要复制过来了,我都是看了又看的!帮帮忙吧!大哥大姐们,我先在此谢过啦!... 我的QQ:hhhyx8@gmail。com
求真正的高手帮下忙啊!网上的那些回答就不要复制过来了,我都是看了又看的!帮帮忙吧!大哥大姐们,我先在此谢过啦!
展开
 我来答
hansya010
2009-10-01 · TA获得超过184个赞
知道小有建树答主
回答量:659
采纳率:0%
帮助的人:180万
展开全部
1000分搞不定哦。
破解工具 PEID0.94、OD、ImportREC 1.6、LordPE

脱壳过程 PEID 探测为 Armadillo 3.78 - 4.xx -> Silicon Realms Toolworks

OD载入程序来到这里:
0050F000 Ea> 60 pushad
0050F001 E8 00000000 call EasyDVDC.0050F006
0050F006 5D pop ebp
0050F007 50 push eax
0050F008 51 push ecx
0050F009 0FCA bswap edx
0050F00B F7D2 not edx
0050F00D 9C pushfd
0050F00E F7D2 not edx
0050F010 0FCA bswap edx
0050F012 EB 0F jmp short EasyDVDC.0050F023
0050F014 B9 EB0FB8EB mov ecx,EBB80FEB
0050F019 07 pop es
0050F01A B9 EB0F90EB mov ecx,EB900FEB
0050F01F 08FD or ch,bh
0050F021 EB 0B jmp short EasyDVDC.0050F02E
0050F023 F2: prefix repne:
0050F024 ^ EB F5 jmp short EasyDVDC.0050F01B
0050F026 ^ EB F6 jmp short EasyDVDC.0050F01E
0050F028 F2: prefix repne:
0050F029 EB 08 jmp short EasyDVDC.0050F033
0050F02B FD std
0050F02C ^ EB E9 jmp short EasyDVDC.0050F017
0050F02E F3: prefix rep:
0050F02F ^ EB E4 jmp short EasyDVDC.0050F015
0050F031 FC cld
0050F032 - E9 9D0FC98B jmp 8C19FFD4
0050F037 CA F7D1 retf 0D1F7

Alt+E

找到 "EasyDVDConverter" 一栏-右键-查看名称,然后找到 "WriteProcessMemory"-右键-"在反汇编窗口中跟随导入函数"

7C80220F ke> 8BFF mov edi,edi
7C802211 55 push ebp
7C802212 8BEC mov ebp,esp //在这里下断点
7C802214 51 push ecx
7C802215 51 push ecx
7C802216 8B45 0C mov eax,dword ptr ss:[ebp+C]
7C802219 53 push ebx
7C80221A 8B5D 14 mov ebx,dword ptr ss:[ebp+14]
7C80221D 56 push esi
7C80221E 8B35 B812807C mov esi,dword ptr ds:[<&ntdll.NtPr>; ntdll.ZwProtectVirtualMemory
7C802224 57 push edi
7C802225 8B7D 08 mov edi,dword ptr ss:[ebp+8]
7C802228 8945 F8 mov dword ptr ss:[ebp-8],eax
7C80222B 8D45 14 lea eax,dword ptr ss:[ebp+14]
7C80222E 50 push eax
7C80222F 6A 40 push 40

在 7C802211 处F2下断后,shift+f9运行程序~~ 然后alt+f9返回
返回到这里:
004EE8A5 /70 07 jo short EasyDVDC.004EE8AE
004EE8A7 |7C 03 jl short EasyDVDC.004EE8AC
004EE8A9 |EB 05 jmp short EasyDVDC.004EE8B0
004EE8AB |E8 74FBEBF9 call FA3AE424
004EE8B0 EB 5F jmp short EasyDVDC.004EE911
004EE8B2 8D55 FC lea edx,dword ptr ss:[ebp-4]
004EE8B5 52 push edx
004EE8B6 6A 02 push 2
004EE8B8 68 345E5200 push EasyDVDC.00525E34
004EE8BD 8B45 10 mov eax,dword ptr ss:[ebp+10]
004EE8C0 50 push eax
004EE8C1 8B4D 08 mov ecx,dword ptr ss:[ebp+8]
004EE8C4 8B11 mov edx,dword ptr ds:[ecx]
004EE8C6 52 push edx
004EE8C7 FF15 10F15100 call dword ptr ds:[<&KERNEL32.Writ>; kernel32.WriteProcessMemory
004EE8CD 50 push eax
004EE8CE F7D0 not eax

Ctrl+a分析代码:
变成下面的样子:
004EE8A5 . /70 07 jo short EasyDVDC.004EE8AE
004EE8A7 . |7C 03 jl short EasyDVDC.004EE8AC
004EE8A9 > |EB 05 jmp short EasyDVDC.004EE8B0
004EE8AB |E8 db E8
004EE8AC >^|74 FB je short EasyDVDC.004EE8A9
004EE8AE >^\EB F9 jmp short EasyDVDC.004EE8A9
004EE8B0 > EB 5F jmp short EasyDVDC.004EE911
004EE8B2 > 8D55 FC lea edx,dword ptr ss:[ebp-4]
004EE8B5 . 52 push edx ; /pBytesWritten
004EE8B6 . 6A 02 push 2 ; |BytesToWrite = 2
004EE8B8 . 68 345E5200 push EasyDVDC.00525E34 ; |Buffer = EasyDVDC.00525E34 //★★就是这里了,
右键-"数据窗口跟随"-"立即数"
004EE8BD . 8B45 10 mov eax,dword ptr ss:[ebp+10] ; |
004EE8C0 . 50 push eax ; |Address
004EE8C1 . 8B4D 08 mov ecx,dword ptr ss:[ebp+8] ; |
004EE8C4 . 8B11 mov edx,dword ptr ds:[ecx] ; |
004EE8C6 . 52 push edx ; |hProcess
004EE8C7 . FF15 10F15100 call dword ptr ds:[<&KERNEL32.Writ>; \WriteProcessMemory
004EE8CD . 50 push eax
004EE8CE . F7D0 not eax

左下角显示如下:
00525E34 60 E8 00 00 00 00 00 00 `?..... //★把这里"60 E8" 改为 "EB FE"
00525E3C 00 00 00 00 00 00 00 00 ........

改好之后按F9中断在此:
7C802212 8BEC mov ebp,esp //在这里取消断点
7C802214 51 push ecx
7C802215 51 push ecx
7C802216 8B45 0C mov eax,dword ptr ss:[ebp+C]
7C802219 53 push ebx
7C80221A 8B5D 14 mov ebx,dword ptr ss:[ebp+14]
7C80221D 56 push esi
7C80221E 8B35 B812807C mov esi,dword ptr ds:[<&ntdll.NtPr>; ntdll.ZwProtectVirtualMemory
7C802224 57 push edi
7C802225 8B7D 08 mov edi,dword ptr ss:[ebp+8]

然后再按一次F9,ok~~ 现在命令行下断 bp WaitForDebugEvent 应该立即中断在这个API上:

7C85A268 ke> 8BFF mov edi,edi //中断在此~
7C85A26A 55 push ebp
7C85A26B 8BEC mov ebp,esp
7C85A26D 83EC 68 sub esp,68
7C85A270 56 push esi
7C85A271 FF75 0C push dword ptr ss:[ebp+C]
7C85A274 8D45 F8 lea eax,dword ptr ss:[ebp-8]
7C85A277 50 push eax
7C85A278 E8 F381FAFF call kernel32.7C802470

Alt+F9返回:

004EA3DF . 85C0 test eax,eax //返回到这里
004EA3E1 . 0F84 2B270000 je EasyDVDC.004ECB12
004EA3E7 . 8B85 FCFDFFFF mov eax,dword ptr ss:[ebp-204]
004EA3ED . 25 FF000000 and eax,0FF

好了,现在我们来查看子进程的ID "文件"-"附加" 现在你应该看到了2个名称为EasyDVDConverter的东西,一个红色的,一个黑色的

未命名的窗口,项目 23
进程=000009B8 //父进程ID 这里每次都是不同的哦~~~~ 如现在是3C8了~~ 嘿嘿
名称=EasyDVDConverter
路径=C:\Program Files\EasyDVDConverter\EasyDVDConverter.exe //这里红色显示

未命名的窗口,项目 25
进程=00000C44 //子进程ID,记住这个C44 ★★ 这里每次都是不同的哦~~~~ ★★ 现在是CF8
名称=EasyDVDConverter
路径=C:\Program Files\EasyDVDConverter\EasyDVDConverter.exe //这里黑色显示

得到以上信息之后.我们就来改代码,分离子进程~ 改成如下的样子:

004EA3DF 68 440C0000 push 0C44
004EA3E4 E8 A8FF367C Call DebugActiveProcessStop
004EA3E9 90 nop
004EA3EA 90 nop
004EA3EB 90 nop
004EA3EC 90 nop

接下来F8单步到第一个nop处,即004EA3E9处
至此 子.父进程已没有任何联系~

打开另外一个OD-"文件"-"附加"-子进程ID 来到这里:

7C921231 C3 retn //停在这里
7C921232 8BFF mov edi,edi
7C921234 90 nop
7C921235 90 nop
7C921236 90 nop
7C921237 90 nop
7C921238 90 nop
7C921239 nt> CC int3

ALT+F9返回:
0050F000 Ea>- EB FE jmp short EasyDVDC.<模块入口点>
0050F002 0000 add byte ptr ds:[eax],al
0050F004 0000 add byte ptr ds:[eax],al
0050F006 5D pop ebp

记得前面我们 将 "60 E8" 改成了 "EB FE" 现在我们要将之改回来 "EB FE" - "60 E8" (在0050F000 这行上点右键-"二进制"-"编辑")

改好之后如下所示:
0050F000 Ea> 60 pushad
0050F001 E8 00000000 call EasyDVDC.0050F006

现在 shfif+F9运行程序,只到出现Nag窗口
命令行下断 bp CreateThread ,然后点击 "OK"

立即中断在此:
7C81082F ke> 8BFF mov edi,edi
7C810831 55 push ebp
7C810832 8BEC mov ebp,esp
7C810834 FF75 1C push dword ptr ss:[ebp+1C]
7C810837 FF75 18 push dword ptr ss:[ebp+18]
7C81083A FF75 14 push dword ptr ss:[ebp+14]
7C81083D FF75 10 push dword ptr ss:[ebp+10]
7C810840 FF75 0C push dword ptr ss:[ebp+C]
7C810843 FF75 08 push dword ptr ss:[ebp+8]
7C810846 6A FF push -1
7C810848 E8 D9FDFFFF call kernel32.CreateRemoteThread
7C81084D 5D pop ebp
7C81084E C2 1800 retn 18

按ctrl+f9 和 f7 来到:
00BEA9F2 5F pop edi
00BEA9F3 5E pop esi
00BEA9F4 C9 leave
00BEA9F5 C3 retn

继续ctrl+f9 和 f7 来到:
00BFC743 59 pop ecx ; kernel32.7C8107FD
00BFC744 BF 10B3C000 mov edi,0C0B310
00BFC749 8BCF mov ecx,edi
00BFC74B E8 05B9FDFF call 00BD8055
00BFC750 84C0 test al,al
00BFC752 75 09 jnz short 00BFC75D

现在重要了~~~~ 注意了!!!
拖动滚动条,向下面找第二个call ecx然后下断 (当然你不肯定的时候,可以将2个call ecx 都下断):
00BFC7B5 3350 1C xor edx,dword ptr ds:[eax+1C]
00BFC7B8 2BCA sub ecx,edx
00BFC7BA FFD1 call ecx //★★这里F2下断★★

f9一次之后立即中断,F7步入~~~:

00401C08 68 6CBA4300 push EasyDVDC.0043BA6C //Year! Oep~~~~
00401C0D E8 F0FFFFFF call EasyDVDC.00401C02
00401C12 0000 add byte ptr ds:[eax],al
00401C14 50 push eax
00401C15 0000 add byte ptr ds:[eax],al
00401C17 0030 add byte ptr ds:[eax],dh
00401C19 0000 add byte ptr ds:[eax],al

打开 lordPE 选中子进程-右键-"完整转存" 保存为dumped.exe

运行 Import REC 选中子进程-OEP:00001C08 - "IAT AutoSearch" CUT无效指针~~

修复文件~~ ok 试运行程序 晕,提示未找到 "ArmAccess.dll" (这个是arm壳中自带的) 我们复制一个放到程序中运行,看看~~
ok,一切正常,没有未注册提示了~~~~

PEID探测-- Microsoft Visual Basic 5.0 / 6.0
上海裔星科技有限公司
2024-12-19 广告
奥泰尔防真软件是上海裔星科技有限公司引以为傲的一款高性能仿真模拟工具。它融合了先进的算法与友好的用户界面,为工业设计、科学研究及教育培训等领域提供了强大的支持。该软件能够精确模拟复杂系统的运行情况,帮助用户进行高效的问题诊断与优化。奥泰尔防... 点击进入详情页
本回答由上海裔星科技有限公司提供
匿名用户
2009-10-01
展开全部
这不是小菜一碟吗!就这东西还要什么钱啊!我帮你!
加我!215574191 注明百度!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e486f62e5
2009-09-30 · 超过10用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:27.1万
展开全部
1000积分?很多吗?能换成RMB花吗? 你和那天在百度知道里面,用200积分换机器人制作方法的家伙差不多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云朵梦梦U
2009-09-30 · TA获得超过272个赞
知道小有建树答主
回答量:501
采纳率:0%
帮助的人:246万
展开全部
我懂。。但我要money不要分。。哈哈。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
point202849
2009-09-30 · TA获得超过947个赞
知道小有建树答主
回答量:1237
采纳率:0%
帮助的人:763万
展开全部
百度知道是休闲的地方,兄弟你真的走错地方了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式