首页
社区
课程
招聘
新手翻译的文章
发表于: 2007-2-22 19:19 7285

新手翻译的文章

2007-2-22 19:19
7285
首先不好意思。这电脑不是我的。所以输入法很。。。。。所以,有些文字可能打错了。

其次,我是新手!翻译出错难免的。所以。。。。。。

还有,我是第一次翻译

好了进入正题,

Yoda 保护者1.03.3 -- 手动解压缩

等级:初级水平。

1、介绍

hi,朋友们欢迎来到新的解压缩向导。正如我所说的,yP(Yoda Protector的缩写,ps:这种缩写是我最讨

厌了),yP的作者已经决定停止这个项目了。他计划开始一个新的项目。本向导将展示给你,一些反调试
的技巧。

我们将需要一些工具

-OllyDbg 1.10
-LordPE
-ImpREC
-Windows XP

YP是基于Yoda's的加密片断,新的技巧本加入了。老的技术是无意义的,(PE头文件的重定向,CRC检查

,IsDebuggerPresent check, API重定向,消除import的信息)。这是老的技巧,已经在我的以前的教程

中说明过了。新的技巧将终止Olly并可能释放WindowsXP(这句可能错了,我是新手本来想要电基本的资

料看看的,第一翻译见谅)。

来看下Olly是如何被杀死的。保护者使用API得到所有运行进程的PID。那么他搜索进程的开始(它所关

心的是ollydbg)并终止它。它比较进程的PID是否与它自己的PID相同。如果那些PID都不同(从ei.exe开

始直到olly )他将终止那个进程。

第二个技巧更让人火大。保护者在任何其他检查前,使用Blockinput(阻塞输入)。那个API阻塞输入设

备(鼠标,键盘等等)。所以,阻塞了所有的输入〔在我们的系统中的)。保护者作其他检查并解密

。如果,保护者运行中,由于异常或者Olly被照到,我们的系统将等待我们采用行动,但我们不能作任何

事情(除了重新启动windows)。如果,一切都没有问题,保护者将使用BlockInput API解除unblock

input device。相当高明的技巧。

好了,是时间解压缩目标了。或者crackme并载入Olly。在Olly中,忽略所有的异常,并设置事件为"新模块断点"(dll)。我们需要中断user32.dll载入,截取BlockInput API。按F9直到开奖User32.dll被载入。

Executable modules
Base        Size     Entry    Name   File   version              Path
00400000 0001F000 004166ED Crackme0 D:yoda  yP1.03.3       Crackme05.exe
77D40000 0008C000 77D53A05 User32 5.1.2600.1561     (x C:WINDOWSsystem32User32.dll
77E60000 000E6000 77E7ADB3 kernel32 5.1.2600.1560 (x C:WINDOWSsystem32kernel32.dll
77F50000 000A7000 ntdll 5.1.2600.1106 (x C:WINDOWSSystem32ntdll.dll

77D98A69 > B8 36110000 MOV EAX,1136
77D98A6E BA 0003FE7F MOV EDX,7FFE0300
77D98A73 FFD2 CALL EDX
77D98A75 C2 0400 RETN 4

为了杀死这个API,将放置NOP,和RETN 4:

77D98A69 > 90 NOP
77D98A6A 90 NOP
77D98A6B 90 NOP
77D98A6C 90 NOP
77D98A6D 90 NOP
77D98A6E 90 NOP
77D98A6F 90 NOP
77D98A70 90 NOP
77D98A71 90 NOP
77D98A72 90 NOP
77D98A73 90 NOP
77D98A74 90 NOP
77D98A75 C2 0400 RETN 4 <---- Place breakpoint here!// 在这里放置断点

我们已杀死这个API了(阻塞设备),记得吗?还要解决沙死Olly。这个就比较简单了。Yoda使用Toolhelp32Snapshot 得到所有的进程。但是他使用GetCurrentProcessId,我们接着来防止杀死Olly。

-打开LordPE 并得到PID(Ollydbg.exe,我这里是478)
-"Go to, EXPRESSION",进入GetCurrentProcessId并点ok,

77E76914 > 64:A1 18000000 MOV EAX,DWORD PTR FS:[18]
77E7691A 8B40 20 MOV EAX,DWORD PTR DS:[EAX+20]
77E7691D C3 RETN

api将返回PID(保护者文件的),但是修补它为Olly 的PID。搞笑了,保护者文件认为Olly和他是一家子。hehe

77E76914 > B8 78040000 MOV EAX,478
77E76919 90 NOP
77E7691A 90 NOP
77E7691B 90 NOP
77E7691C 90 NOP
77E7691D C3 RETN

004079D0 55 PUSH EBP ; Crackme0.00417058
004079D1 8BEC MOV EBP,ESP
004079D3 83C4 F4 ADD ESP,-0C
004079D6 53 PUSH EBX
004079D7 56 PUSH ESI ; Crackme0.00418370
004079D8 57 PUSH EDI ; Crackme0.0041837D
004079D9 B8 98794000 MOV EAX,Crackme0.00407998
004079DE E8 D1CBFFFF CALL Crackme0.004045B4
004079E3 BE CC954000 MOV ESI,Crackme0.004095CC
004079E8 BF E4954000 MOV EDI,Crackme0.004095E4
004079ED BB A0954000 MOV EBX,Crackme0.004095A0
004079F2 33C0 XOR EAX,EAX
004079F4 55 PUSH EBP ; Crackme0.00417058
004079F5 68 847C4000 PUSH Crackme0.00407C84
004079FA 64:FF30 PUSH DWORD PTR FS:[EAX]
004079FD 64:8920 MOV DWORD PTR FS:[EAX],ESP
00407A00 A1 80824000 MOV EAX,DWORD PTR DS:[408280]
00407A05 8B00 MOV EAX,DWORD PTR DS:[EAX]
...
...

3、结束语

最后,解压缩yP dll是很简单的。对不起,上面可能有拼写出错。

感谢,大家看我的教程

译者所说的话:

再次不好意思。我本来想问大家要点基本资料翻译的。每想到以上来就翻译这个。Olly我还不是很清楚,除了结束语外,文章中的其他错误属于译者。谢谢。最后祝大家2007快乐。88

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 198
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
强烈要求给点基础资料看看!:)
2007-2-22 19:21
0
雪    币: 198
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看来是翻译的太差了。:(
2007-2-22 20:04
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
对不起,由于我们的工作失误,这篇文章己翻译,我们没有及时注明,导致你重复劳动了.:http://bbs.pediy.com/showthread.php?s=&threadid=36219

另外,如下这篇也翻译了.
十二. 其他

1.
Cracking With Loaders Theory General Approach And A Framework V12 http://arteam.accessroot.com/tutorials.html?fid=81

2007-2-22 20:09
0
雪    币: 198
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
:)每事我就用了15分钟。还有什么需要翻译的吗??我的格式有错误。是不是?

随便问句 OEP 是什么意思?什么的缩写?
2007-2-22 20:13
0
雪    币: 313
活跃值: (440)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
6
OEP=original entry point
假如不是很明白一些概念建议边学边翻译.
2007-2-22 21:15
0
雪    币: 198
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
最初由 4nil 发布
OEP=original entry point
假如不是很明白一些概念建议边学边翻译.


先给点资料看看吧!可以不大哥?原始进入点,是不是相对于重定位来说的?
2007-2-23 09:46
0
雪    币: 200
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
8
加壳的程序经过解压缩后的入口点就是OEP 程序真正的入口点
2007-2-23 18:30
0
雪    币: 198
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 zhenkyss 发布
加壳的程序经过解压缩后的入口点就是OEP 程序真正的入口点


原来是这个意思。明白了谢谢。能否提供点资料看看?先谢谢了。初级的。

初通汇编,C语言。
2007-2-23 20:15
0
雪    币: 200
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
10
最初由 justinaaa 发布
原来是这个意思。明白了谢谢。能否提供点资料看看?先谢谢了。初级的。

初通汇编,C语言。


看看【建议】给新手的若干建议 吧 很详细很全面的 你可以在那找到你需要的信息的
2007-2-23 20:30
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我来学习的,支持
2007-3-2 11:15
0
游客
登录 | 注册 方可回帖
返回
//