设为首页
收藏本站
本站论坛
   
3
3
   
  文章列表      

经典破解教学(破解实战之静态分析技术)

经典破解教学(破解实战之静态分析技术)

   破解教学第八课

W32DASM介绍
一、静态分析 欲破解一软件,首先应该先用用这个软件,了解一下功能是否有限制,最好阅读一下软件的说明或手册,特别是自己所关心的注册部分的使用说明,这样也许能够找到点线索。 所谓静态分析即从反汇编出来的程序清单上分析。从提示信息入手进行分析. 目前,大多数软件在设计时,都采用了人机对话方式。所谓人机对话,即在软件运行过程中,需要由用户选择的地方,软件即显示相应的提示信息,并等待用户按键选择。而在执行完某一段程序之后,便显示一串提示信息,以反映该段程序运行后的状态,是正常运行,还是出现错误,或者提示用户进行下一步工作的帮助信息。为此,如果我们对静态反汇编出来的程序清单进行阅读,可了解软件的编程思路,以便顺利破解。 人机对话方式给破解带来了方便.

二、W32DASM介绍 crack时常用的静态分析工具是W32DASM.W32DASM终结版是8.93版. 大家要用的是W32DASM黄金版中文版,功能强,能完美显示中文   W32DASM黄金版中文版能很方便地反汇编程序,它主要用于静态分析软件,不要用它作动态分析。其使用也很简单,参照后面的范例很快就能掌握。 这里只介绍一下如何截取W32DASM部分代码,这样方便写破解心得。 你将鼠标移到W32DASM最左边,点一下,将有一红点出现,再按住shift键,移到你需要的下一行,再按鼠标一下,将选中一段,按CTRL+C复制,CTRL+V粘贴到你的记事本或其它编辑处。

三、 实际修改地址(偏移地址)和行地址(虚拟地址)
W32DASM黄金版中文版反汇编出来的代码由三列组成
第一列 行地址(虚拟地址)
第二列 机器码(最终修改时用ultraedit修改)
第三列 汇编指令
   第一列   第二列                       第三列
:00418000   FF21                 jmp dword ptr [ecx]
:00418002   029000070008   add dl, byte ptr [eax+08000700]
:00418008   00D4                 add ah, dl
:0041800A   A940008EDD         test eax, DD8E0040
:0041800F   75DB                 jne 00417FEC
:00418011   3F                   aas
:00418012   AA                   stosb
:00418013   03DC                 add ebx, esp
:00418015   07                   pop es
:00418016   050F1DAB40         add eax, 40AB1D0F
:0041801B   1B24AB           sbb esp, dword ptr [ebx+4*ebp]
:0041801E   C9                   leave
:0041801F   93                   xchg eax,ebx
:00418020   27                   daa
:00418021   CF                   iret

在W32DASM下将绿色的光条移到某一行代码上,在窗口底部可看到     例如@:00418016 @:Offset 00000416h 第一个@指示行地址(虚拟地址),@00418016 与W32DASM光条所在行的第一列相同 第二个@指示实际修改地址(偏移地址),@Offset 00000416h h表示十六进制 offset的英文意思是偏移

****破解程序的最后一步(注意:修改程序时必须确保程序已脱壳):
在要修改的行上点击鼠标右键==>Hexedit 即可修改,点击“保存”后会在程序目录下生成一个P***的文件 (如果你的W32DASM版本不够高的话,那就只能用ultraedit修改咯!)方法:打开欲修改的文件,敲入ctrl-g,0x偏移地址(如上面的敲入0x00416),即可到达实际修改地址

四.W32DASM黄金版中文版
1."反汇编"菜单下的"打开文件"打开可执行文件,如aa.exe即可 注意:可执行文件不能有壳,切记!! 若有壳,参照前面的教学解决!
2."参考"菜单中的"串式参考",出现一个新的窗口,使其变小,刚好位于W32DASM黄金版中文版主窗口的前面 找到其中的某一条目,双击鼠标左键,你会看到主窗口的绿色光条会移到某一行上 多次反复双击,看绿色光条一共会移到哪几行,有时只有1行,有时有很多行 3.W32DASM黄金版中文版只要会用这两个地方就可以了,其他的不用掌握.

===================================================

破解教学第九课
从NAG窗口突破!

破解人:飘云

工具:w32dasm hiew

对象:sa20c

简介: StayAlive       文件大小: 411kb       文件类型:30 Day Trial
这个软件使你的应用程序在崩溃后可以继续运行。允许你先存盘然后安全退出程序。
程序使用高级的保护措施,从而有效捕获错误,避免更大损失。 StayAlive 运行于系统栏。
当程序崩溃时,StayAlive 自动干预,可以使挂起的程序轻松解锁。
[url]http://www.tfi-technology.com/sa20c.exe[/url]

第一步:将 sa.exe 复制两份命令为 sa.exx 及123.exe .

第二步:运行w32dasm ,将123.exe 反汇编.

第三步:一旦反汇编成功,点STRING DATA REFERENCE,然后将光标移到
"You are on day %lu of your %lu day evaluation period",双击,
然后关闭此窗口,回到主窗口. 此时绿色的光条应该停在下面一行上:

* possible reference to string resource id=02111 "You are......"

第四步:将光条上移,找到下面这行:

* referenced by a (u)nconditional or (c)onditional jump at address:

|:00401230(c)

这句的意思就是这个NAG窗口是从 00401230h 处调用的.然后我们光条移到00401230h处:

:00401230 7472 je 004012a4

第五步:将光条向上移直到找到如下命令为止:cmp,je,jne,test等等:

00401227 e8aa9c0000 call 0040aed6 * 此处应该是调用注册识别信息

0040122c 59 pop ecx

0040122d 85c0 test eax,eax * 此处判断EAX是否为0,如果为0则表示未注册

0040122f 59 pop ecx

00401230 7472 je 004012a4 * 如果为0就跳到 nag 窗口

那么,我们就去瞧瞧这个识别注册信息的子程序吧:

第六步:将光条移到 :0040aed6 ,可以看到下面这行:

* referenced by a call at addresses:

|:00401227 :00407da9 :0040b1c1

上面这一行非常重要,这表明了在这个软件中共有三次识别软件是否注册的过程.
因此我们在CRACK时,要注意在这三个地方进行,少了其中一个都不成功.

第七步:下面的过程就很简单了:

进入DOS窗口,运行 hiew 123.exe,按F4,选择decode mode,然后按F5,goto 1227: 将:
00401230 处的je改成jne即可.接着goto 7da9,b1c1,依样将三处的je改为 jne,然后按
F9将修改存盘.退出.

快试试吧!

当然,其实还有更简单的方法:

从上面的语句可以看出来,该程序是通过EAX的值是否为0来判断软件是否注册.
因此我们可以直接对子程序:0040aed6进行改写:

mov eax,01

retn

这样就可以了.

以上的方法属于暴力解密,如果你对汇编及SICE非常精通的话,可以通过研究 :0040aed6 来算出注册码来

=====================================================

破解教学第十课

从NAG窗口突破!

破解人:飘云

工具:W32dasm,Hiew

对象:WWMAIL 2.40 发垃圾邮件的工具,支持BCC,一次可发无数封垃圾信.

第一步:首先把主程序WWMAIL.EXE复制两份,分别命名为WWMAIL.EXE和123.EXE,

第二步:运行:W32DASM,将WWMAIL.EXE反编译.

第三步:我们先不忙着分析,先来看看这个软件的大概样子吧. 运行WWMAIL.EXE,弹出一个NAG窗口,看看写的是什么,说不定有一些线索.嗯,"如果不注册,在发出5封信后将暂停一下...", "BCC功能也不能用..."...注意这句"BCC FUNCTION WILL NOT OPERATE",想象一下,如果我点中BCC选项,那么应该会弹出 一个窗口说未注册不能用之类的话,那么在这个窗口之前一定有一个地方判断是否注册!对,从这里试试看能不能突破?

第四步:继续运行WWMAIL,点一下SETUP菜单,出现一个设置窗口,其中有一项是: "SEND VIA BCC IF POSSIBLE", 点一下,弹出一个窗口说:"BCC IS DISABLED IN THIS SHAREWARE",OK,找到了突破口了.8-)

第五步:回到W32DASM,点string data items按钮,向下找到"BCC IS DISABLED INTHIS SHAREWARE",双击,然后关掉STRING DATA窗口.

第六步:此时W32DASM的光条应该停在下面这行上: * Possible StringData Ref from Code Obj -> "BCC IS DIS..." :0046E917 B83CE94600 MOV EAX,0046E93C ......

第七步:向上移动光条直到我们找到这样的语句:cmp,test,xor等等. :0046e903 803d610e470000 cmp byte ptr [00470e61],00 :0046e90a 7422 je 0046e92e ......

第八步:对了对了,就是这了,第一句判断是否注册,如果没有则显示那个"BCC..."窗口.注意到程序是读取内存中的某个位置的 值来判断是否注册的,所以只要找到所有读取此处值的语句就可以找到所有的判断点.

第九步:从DOS窗口启动HIEW 123.EXE.切换为DECODE模式.然后按F7搜索:803D610E470000,一共可以找到四个地方,然后将其后的 JE改成JNE或者JMP,将JNE改成JE或者9090. 第十步:按F9将修改存盘,退出HIEW. 第十一:在DOS下运行1.EXE试试?ULA!成功了!8-))

====================================================

破解教学十一课

攻破 NET VAMPIRE 3.2 !

工具:W32dasm,Hiew

    NET VAMPIRE 3.2 这个软件的注册方法很普通,也是用注册码来注册,唯一有些 不同的是不论你输入的注册码是否正确,它都对你说:"Thank you......",它只是在 刚刚启动时读入VAMPIRE.KEY来判断是否为注册版.如果你是注册版,那么它不会再 显示那个广告条,而且在菜单中的"REMOVE BANNER"项也不再显示.
    攻破它花了我不少的功夫,最后终于在它的提示里找到了一丝线索: 先用W32DASM把它反汇编,然后点STRING REF按钮,在其中仔细查看,突然间看到 一行字:"Registered to:",嗯,有点门了.双击它,转到主窗口,将光标向上移:

:00480b7b a150d04900 mov eax,dword ptr [0049d050]
:00480b80 833800   cmp dword ptr [eax],00000000
:0048db83 7426         je 00480bab

    好,找到地方了.
    启动HIEW 1.EXE,寻找833800,把其后的74改成75,75改成74,然后存盘.
    运行一下试试......
    ????!!!! 死机了????!!!!
    老天!
    只好重新用W32DASM仔细分析,然而我估计NET VAMPIRE的作者有意在软件 中作了一些反破解的方法,所以......而且软件中很难再找到其他的有用的 信息了.
    那么怎么办呢? 正当我无法可想准备放弃时,突然灵光一闪! 造成死机的原因是软件中对 cmp dword ptr [eax],00000000 的结果 处理方向有好几个,我直接把75改成74,74改成75,有可能改动了正确的程序 导向,那么如果我......
    对!如果我把那句比较语句改成: cmp dword ptr [eax],00000001 应该可以解决死机的问题?!
    说干就干,运行HIEW 1.EXE,寻找833800,改成833801,存盘退出.
    试运行一下......
    WULA ! ! !
    成功了!
    再也看不见那个讨厌的广告条了!菜单中的那个"Remove banner"也没了!
> >
 
 
   
 
网上赚钱申请指南
 

友情链接
个人主页
 
 
 
 

wel come to . 欢迎光临
宇宙浪仔