飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4417|回复: 7

[转贴] 软件破解集合

[复制链接]

该用户从未签到

发表于 2009-3-31 20:46:04 | 显示全部楼层 |阅读模式
【软件破解专题】 第一集  
第一课 壳
************
一.壳的概念
作者编好软件后,编译成exe可执行文件
1.有一些版权信息需要保护起来,不想让别人
随便改动,如作者的姓名等
2.需要把程序搞的小一点,从而方便使用
于是,需要用到一些软件,他们能将exe可执行文件压缩,
实现上述两个功能,这些软件称为加壳软件或压缩软件.
它不同于一般的winzip,winrar等压缩软件.
它是压缩exe可执行文件的,压缩后的文件可以直接运行.
二.加壳软件
最常见的加壳软件ASPACK ,UPX,PEcompact
不常用的加壳软件WWPACK32;PE-PACK ;PETITE ;NEOLITE
三.侦测壳和软件所用编写语言的软件
1.侦测壳的软件fileinfo.exe 简称fi.exe(侦测壳的能力极强)
使用方法:
第一种:待侦测壳的软件(如aa.exe)和fi.exe位于同一目录下,执行
windows起始菜单的运行,键入
fi aa
第二种:待侦测壳的软件(如aa.exe)和fi.exe位于同一目录下,将aa的图标拖到fi的图标上
2.侦测壳和软件所用编写语言的软件language.exe(两个功能
合为一体,很棒) 推荐language2000中文版,我的主页可下载
傻瓜式软件,运行后选取待侦测壳的软件即可(open)
3.软件常用编写语言Delphi,VisualBasic(VB)---最难破,VisualC(VC)
四.常用资源
1.破解工具站点(以上工具从这里找)
www.exetools.com
www.pediy.com
http://www.programmerstools.com(guowai/
www.cracknow.com
2.软件站点
www.newhua.com
www.hktk.com
http://www.esoftware.com.cn/ (强烈推荐,这里能找到软件的各个版本,尤其是旧版本。以后破解例子中所用软件一般在这儿都能找到)
www.shareware.net.cn
www.csdn.net
第二课 脱壳
************
拿到一个软件,我们首先根据第一课的内容
侦测它的壳,然后我们要把它的壳脱去,还原它的
本来面目.若它没有加壳,就省事不用脱壳了.
一.脱壳软件
unaspack,caspr,upx,unpecompact,procdump
二.使用方法
(一)aspack壳 脱壳可用unaspack或caspr
1.unaspack 我的主页可下载中文版
使用方法类似lanuage
傻瓜式软件,运行后选取待脱壳的软件即可. 缺点:只能脱aspack早些时候版本的壳,不能脱高版本的壳
2.caspr
第一种:待脱壳的软件(如aa.exe)和caspr.exe位于同一目录下,执行
windows起始菜单的运行,键入 caspr aa.exe
脱壳后的文件为aa.ex_,删掉原来的aa.exe,将aa.ex_改名为aa.exe即可
使用方法类似fi 优点:可以脱aspack任何版本的壳,脱壳能力极强 缺点:Dos界面
第二种:将aa.exe的图标拖到caspr.exe的图标上
***若已侦测出是aspack壳,用unaspack脱壳出错,说明是aspack高版本的壳,用caspr脱即可
(二)upx壳 脱壳可用upx
待脱壳的软件(如aa.exe)和upx.exe位于同一目录下,执行
windows起始菜单的运行,键入
upx -d aa.exe
(三)PEcompact壳 脱壳用unpecompact 我的主页可下载中文版
使用方法类似lanuage
傻瓜式软件,运行后选取待脱壳的软件即可

(四)procdump 万能脱壳但不精,一般不要用 我的主页可下载中文版
使用方法:运行后,先指定壳的名称,再选定欲脱壳软件,确定即可
脱壳后的文件大于原文件
由于脱壳软件很成熟,手动脱壳一般用不到,不作介绍.
以上工具的下载地址见第一课
三. exe可执行文件编辑软件ultraedit
下载它的汉化版本,它的注册机可从网上搜到
ultraedit打开一个中文软件,若加壳,许多汉字不能被认出
ultraedit打开一个中文软件,若未加壳或已经脱壳,许多汉字能被认出
ultraedit可用来检验壳是否脱掉,以后它的用处还很多,请熟练掌握
例如,可用它的替换功能替换作者的姓名为你的姓名
注意字节必须相等,两个汉字替两个,三个替三个,不足处在ultraedit编辑器左边用00补

第三课 破解预备知识
一.机械码,又称机器码.
ultraedit打开,编辑exe文件时你会看到
许许多多的由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成的数码,这些数码
就是机器码.
修改程序时必须通过修改机器码来修改exe文件.
二.需要熟练掌握的全部汇编知识(只有这么多)
不大容易理解,可先强行背住,混个脸儿熟,以后慢慢的就理解了
cmp a,b 比较a与b
mov a,b 把b的值送给a
ret 返回主程序
nop 无作用,英文“no operation”的简写,意思是“do nothing”(机器码90)***机器码的含义参看上面
(解释:ultraedit打开编辑exe文件时你看到90,等同于汇编语句nop)
call 调用子程序
je 或jz 若相等则跳(机器码74 或0F84)
jne或jnz 若不相等则跳(机器码75或0F85)
jmp 无条件跳(机器码EB)
jb 若小于则跳
ja 若大于则跳
jg 若大于则跳
jge 若大于等于则跳
jl 若小于则跳
jle 若小于等于则跳
pop 出栈
push 压栈
三.常见修改(机器码)
74=>75 74=>90 74=>EB
75=>74 75=>90 75=>EB
jnz->nop
75->90(相应的机器码修改)
jnz -> jmp
75 -> EB(相应的机器码修改)
jnz -> jz
75->74 (正常) 0F 85 -> 0F 84(特殊情况下,有时,相应的机器码修改)
四.两种不同情况的不同修改方法
1.修改为jmp
je(jne,jz,jnz) =>jmp相应的机器码EB (出错信息向上找到的第一个跳转)jmp的作用是绝对跳,无条件跳,从而跳过下面的出错信息
xxxxxxxxxxxx 出错信息,例如:注册码不对,sorry,未注册版不能...,"Function Not Avaible in Demo" 或 "Command Not Avaible" 或 "Can't save in Shareware/Demo"等 (我们希望把它跳过,不让它出现)
。。。
。。。
xxxxxxxxxxxx 正确路线所在
2.修改为nop
je(jne,jz,jnz) =>nop相应的机器码90 (正确信息向上找到的第一个跳转) nop的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使程序顺利来到紧跟其后的正确信息处
xxxxxxxxxxxx 正确信息,例如:注册成功,谢谢您的支持等(我们希望它不被跳过,让它出现,程序一定要顺利来到这里)
。。。
。。。
xxxxxxxxxxxx 出错信息(我们希望不要跳到这里,不让它出现)
。。。
。。。
五.爆破无敌口诀 背会此口诀,天下无敌,以后慢慢琢磨,仔细体会,收益多多。如此好的口诀,不要错过
一条(跳)就死,九筒(90)就胡   (对应上面的2.修改为nop)
一条(跳)就胡,一饼(EB)伺候   (对应上面的1.修改为jmp)
妻死(74)便妻无(75)
爸死(84)便爸无(85)
此口诀是我多年经验的积累和提炼,便于大家记忆和教学

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

写破解教程必看------这里只介绍一下如何截取W32DASM部分代码,这样方便写破解心得。
你将鼠标移到W32DASM最左边,点一下,将有一红点出现,再按住shift键,移到你需要的下一行,再按鼠标一下,将选中一段,按CTRL+C复制,CTRL+V粘贴到你的记事本或其它编辑处。
三、 实际修改地址(偏移地址)和行地址(虚拟地址)
pw32dasmgold反汇编出来的代码由三列组成
第一列 行地址(虚拟地址)
第二列 机器码(最终修改时用ultraedit修改)
第三列 汇编指令
第一列 第二列 第三列
:0041BE38 2B45F0 sub eax, dword ptr [ebp-10]
:0041BE3B 6A42 push 00000042
:0041BE3D 50 push eax
:0041BE3E FF75F4 push [ebp-0C]
:0041BE41 FF75F0 push [ebp-10]
:0041BE44 FF35A8AB4400 push dword ptr [0044ABA8]
:0041BE4A FFD7 call edi
:0041BE4C 8345F443 add dword ptr [ebp-0C], 00000043
:0041BE50 391D78AB4400 cmp dword ptr [0044AB78], ebx
:0041BE56 0F84F5000000 je 0041BF51

在W32DASM下将绿色的光条移到某一行代码上 , 在窗口底部可看到
例如@:00461456 @:Offset 00060856h
第一个@指示行地址(虚拟地址),@00461456 与W32DASM光条所在行的第一列相同
第二个@指示实际修改地址(偏移地址) , @Offset 00060856h h表示十六进制
offset的英文意思是偏移
****破解程序的最后一步(注意:修改程序时必须确保程序已脱壳):
用ultraedit找到实际修改地址(偏移地址),修改机器码,从而完成exe文件的修改
方法:打开欲修改的文件,敲入ctrl-g,0x偏移地址(如上面的敲入0x60856),即可到达实际修改地址
四.pw32dasmgold的使用
1."反汇编"菜单下的"打开文件"打开可执行文件,如aa.exe即可
注意:可执行文件不能有壳,切记!!
若有壳,参照第1,2课脱壳
2."参考"菜单中的"串式参考",出现一个新的窗口,使其变小,刚好位于pw32dasmgold主窗口的前面

找到其中的某一条目,双击鼠标左键,你会看到主窗口的绿色光条会移到某一行上
多次反复双击,看绿色光条一共会移到哪几行,有时只有1行,有时有很多行
3.pw32dasmgold只要会用这两个地方就可以了,其他的不用掌握
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2009-3-31 20:48:03 | 显示全部楼层
软件破解专题】第二集 
第五课 用w32dasm破解的一般步骤

**********************************
一.破解的等级


初级,修改程序,用ultraedit修改exe文件,称暴力破解,简称爆破
中级,追出软件的注册码
高级,写出注册机

二.用w32dasm破解的一般步骤:


1.看软件的说明书,软件注册与不注册在功能上有什么区别,如何注册
2.运行此软件,试着输入你的姓名和任意注册码去注册,有什麽错误
提示信息,将错误提示信息记下来
3.侦测有无加壳(第一课).若加壳,脱壳(第二课)
4.pw32dasmgold反汇编
5.串式参考中找到错误提示信息或可能是正确的提示信息双击鼠标左键
6.pw32dasmgold主窗口中分析相应汇编,找出关键跳转和关键call
7.绿色光条停在关键跳转,在pw32dasmgold主窗口底部找到关键跳转
的偏移地址(实际修改地址)
8.用ultraedit找到偏移地址(实际修改地址)修改机器码,保存
9.用w32dasm破解成功

第六课 w32dasm破解实例(一)
***************************
破解对象:ZTZ-IE网络浏览器1.7
下载 http://soft.linksun.com/fpx/lesson6.zip
(也可到 http://www.esoftware.com.cn 站点搜一下,找到1.7版很容易)

将其安装,在它的安装目录发现程序的主运行文件ztz-ie.exe,这就是我们需要破解的目标对象

1.看软件的说明书

2.运行此软件,试着输入你的姓名和任意注册码去注册,出现错误
提示信息"密码不正确!",将错误提示信息记下来

3.用language或fi侦测ztz-ie.exe,发现没有加壳

4.w32dasm黄金中文版(pw32dasmgold)反汇编

5.串式参考中找到错误提示信息或可能是注册正确的提示信息
"密码正确,注册成功!"怀疑可能是正确的提示信息
在该处双击鼠标左键,反复双击,发现只有一处调用,在pw32dasmgold主窗口发现下面的(######所标的地方)

6.分析
:0046C215 8B55F4 mov edx, dword ptr [ebp-0C]
:0046C218 58 pop eax
:0046C219 E87E7CF9FF call 00403E9C (关键call)
:0046C21E 7533 jne 0046C253 ******跳向错误处^^^^^^^^^(关键跳转)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:0046C220 BA0B000000 mov edx, 0000000B

* Possible StringData Ref from Code Obj ->"Yire"
|
:0046C225 B8F8C24600 mov eax, 0046C2F8
:0046C22A E821270000 call 0046E950
:0046C22F 6A40 push 00000040

* Possible StringData Ref from Code Obj ->"祝贺你" ******注册成功的提示
|
:0046C231 B900C34600 mov ecx, 0046C300

* Possible StringData Ref from Code Obj ->"密码正确,注册成功!" ########
|
:0046C236 BA08C34600 mov edx, 0046C308
:0046C23B A1A0714700 mov eax, dword ptr [004771A0]
:0046C240 8B00 mov eax, dword ptr [eax]
:0046C242 E88D00FEFF call 0044C2D4
:0046C247 A148894700 mov eax, dword ptr [00478948]
:0046C24C E89FCCFDFF call 00448EF0
:0046C251 EB3B jmp 0046C28E

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0046C21E(C)
|^^^^^^^^^^^
:0046C253 A1C8724700 mov eax, dword ptr [004772C8]
:0046C258 83381E cmp dword ptr [eax], 0000001E
:0046C25B 7C0F jl 0046C26C
:0046C25D BA01000000 mov edx, 00000001

* Possible StringData Ref from Code Obj ->"Yire"
|
:0046C262 B8F8C24600 mov eax, 0046C2F8
:0046C267 E8E4260000 call 0046E950

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0046C25B(C)
|
:0046C26C 6A40 push 00000040

* Possible StringData Ref from Code Obj ->"警告" ******注册失败的提示
|
:0046C26E B920C34600 mov ecx, 0046C320

* Possible StringData Ref from Code Obj ->"密码不正确!"
|
:0046C273 BA28C34600 mov edx, 0046C328
:0046C278 A1A0714700 mov eax, dword ptr [004771A0]
:0046C27D 8B00 mov eax, dword ptr [eax]
:0046C27F E85000FEFF call 0044C2D4
:0046C284 A148894700 mov eax, dword ptr [00478948]
:0046C289 E862CCFDFF call 00448EF0

######所标的地方向上找第一个跳转,找到
:0046C21E 7533 jne 0046C253
程序之所以没有来到注册成功的地方主要就是因为这个跳转,
跳到了错误的地方(^^^^^^所标的地方)
46C21E处的跳转称为关键跳转,它上面的call为关键call

7.绿色光条停在关键跳转,即
:0046C21E 7533 jne 0046C253

在pw32dasmgold主窗口底部找到关键跳转的偏移地址(实际修改地址)
@:0046C21E@:Offset 006B61Eh h表示十六进制
实际修改地址是6B61E

8.用ultraedit打开ztz-ie.exe,ctrl-G,键入0x6b61e 0x表示十六进制
有两种改法
第一种   7533改为7433
或第二种 7533改为9090
为了担心改的不对,需保留原来的文件,故另存为ztz-ie1.exe
[修改原理]
第一种 输入的注册码不对时跳到出错的地方,正确时来到对的地方
修改后 输入的注册码不对时来到对的地方,正确时跳到出错的地方
第二种 干掉跳转的那一行指令,程序从上到下一路走来,只能来到对的地方,不可能跳到出错的地方

9.运行ztz-ie1.exe,任意输入姓名和注册码注册均能成功,破解完成

祝贺你,你第一次成功地破解了一个国产新软!记住这款软件的名称吧,ZTZ-IE网络浏览器.
迈向成功的第一步总是最难的.
第七课 w32dasm破解实例(二)

***************************
一 破解对象:墙纸定时换1.0
下载 http://soft.linksun.com/fpx/lesson7.zip

(也可到站点http://www.esoftware.com.cn搜一下,找到1.0版很容易)


1.看软件的说明书
2.运行此软件,试着输入你的姓名和任意注册码去注册,没有出现错误提示信息.啊,好难!!
3.用language或fi侦测wallpaper_change.exe,发现没有加壳
4.pw32dasmgold反汇编
5.串式参考中找到错误提示信息(没有)或可能是正确的提示信息

"孷A"
"疒@"
"您的试用期已过!本软件将在5分钟后关闭,请及时"
"您的试用期已过!本软件将在5分钟后关闭,请及时?
"您已经注册,感谢使用无超软件工作室的产品!" ***********
"寍C"
"豾A"
"墙纸定时换"
"佤G"
"呉t ;Pdt 婮 奍 :HHu 婡L B 脨SVW兡鴭駦<$ゥ嬝塖`"
"汹@"
"勗C"
"磘@"
" 瑿"
"嫄?"
"枳???"
"枳???"


"您已经注册,感谢使用无超软件工作室的产品!"怀疑可能是正确的提示信息
光条停在此处时,双击鼠标左键,反复双击,发现有两处调用,0047BC51,0047B7E0
分析:0047B7E0数小,经过的早,估计是程序启动时判断你是否注册
0047BC51数大,经过的晚,估计是注册对话框之类你输入注册码,程序看你输的对不对.
于是你就发现改0047BC51不对.因为程序在启动时有判断,无论你
在这个地方怎样捣鬼,程序一开始的判断就会判你的死刑
所以改0047B7E0
在pw32dasmgold主窗口发现下面的(######所标的地方)

6.分析
:0047B7C6 8B55E4 mov edx, dword ptr [ebp-1C]
:0047B7C9 8B45F4 mov eax, dword ptr [ebp-0C]
:0047B7CC E81787F8FF call 00403EE8 (关键call)
:0047B7D1 0F858C000000 jne 0047B863 ******跳向错误处(关键跳转)
:0047B7D7 8B45FC mov eax, dword ptr [ebp-04]
:0047B7DA 8B8094030000 mov eax, dword ptr [eax+00000394]

* Possible StringData Ref from Code Obj ->"您已经注册,感谢使用无超软件工作室的产品!" #######
|
:0047B7E0 BAACB84700 mov edx, 0047B8AC
:0047B7E5 E89642FBFF call 0042FA80
:0047B7EA 8B45FC mov eax, dword ptr [ebp-04]
:0047B7ED 8B8098030000 mov eax, dword ptr [eax+00000398]
:0047B7F3 33D2 xor edx, edx
:0047B7F5 E86E41FBFF call 0042F968
:0047B7FA B201 mov dl, 01
:0047B7FC A1C49F4700 mov eax, dword ptr [00479FC4]
:0047B801 E8BEE8FFFF call 0047A0C4
:0047B806 8BD8 mov ebx, eax
:0047B808 BA02000080 mov edx, 80000002
:0047B80D 8BC3 mov eax, ebx
:0047B80F E850E9FFFF call 0047A164

######所标的地方向上找第一个跳转,找到
:0047B7D1 0F858C000000 jne 0047B863
程序之所以没有来到注册成功的地方主要就是因为这个跳转,
跳到了错误的地方
47B7D1处的跳转为关键跳转,它上面call的为关键call

7.绿色光条停在关键跳转,即
:0047B7D1 0F858C000000 jne 0047B863
在pw32dasmgold主窗口底部找到关键跳转
的偏移地址(实际修改地址)
@:0047B7D1@:Offset 0007ABD1h h表示十六进制
实际修改地址是7ABD1

8.用ultraedit打开wallpaper_change.exe,ctrl-G,键入0x7ABD1 0x表示十六进制
0F858C000000改为0F848C000000(其实只是把5改为4,其余的不动)
另存为wallpaper_change1.exe
修改原理:
输入的注册码不对时跳到出错的地方,正确时来到对的地方
修改后: 输入的注册码不对时来到对的地方,正确时跳到出错的地方

9.运行wallpaper_change1.exe,随便输入注册码注册成功,破解完成


二 破解瑞星杀毒软件2001版

非常棒的国产精品杀毒软件,从瑞星网站下载最新版,

目前为2001版,安装时需瑞星密钥盘。

图形版ravcpic.exe 字符版ravcchar.exe

下面以图形版为例。

1。用winzip等解压缩软件将ravcpic.exe 展到一个目录下

2。它的加密加在SETUP.DLL中,我们研究SETUP.DLL,根据我们学过的侦测壳和脱壳

将其中的SETUP.DLL(属性为隐含)的UPX1.03壳给脱了。

脱壳可用UPX1.06,参数-D即可(UPX SETUP.DLL -D)

3。用w32dasm黄金版打开SETUP.DLL==》串式参考

"请插入瑞星A号盘,如果该提示仍出现请与经销商联?

反复双击,发现共四处,我们只看最早的一处

:10001916 85C0 test eax, eax

:10001918 7407 je 10001921 (74改75)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:10001947(C)

|

:1000191A B801000000 mov eax, 00000001

:1000191F 5E pop esi

:10001920 C3 ret

* Referenced by a (U)nconditional or (C)onditional Jump at Address:

|:10001918(C)   解释:说明由10001918行跳来,在此双击鼠标右键,可来到10001918行(很常用,重要)

| ^^^^^^^^^^^

:10001921 A180CD0010 mov eax, dword ptr [1000CD80]

* Reference To: USER32.MessageBoxA, Ord:0000h

|

:10001926 8B356C910010 mov esi, dword ptr [1000916C]

:1000192C 6A31 push 00000031

* Possible StringData Ref from Data Obj ->"提示"

|

:1000192E 6884B20010 push 1000B284

* Possible StringData Ref from Data Obj ->"请插入瑞星A号盘,如果该提示仍出现请与经销商联?

->"怠?

|

:10001933 6850B20010 push 1000B250

修改原理

修改前,无钥匙盘出错,有钥匙盘继续安装

修改后,有钥匙盘出错,无钥匙盘继续安装

4。根据前面讲的用ultraedit将74改为75,保存

运行目录下的安装主程序setup.exe,哇塞,省掉一百多大洋!

5。请保存修改后的setup.dll,可将瑞星2001图形版毙掉(难得瑞星三天两头的升级)

6。字符版可参考1~5,原理同

三 瑞星2002个人防火墙1.1版破解教程

原版从瑞星网站下载,需要ID号 我主页首页有
目前为1.1版,安装时需瑞星密钥盘。
文件名称rfw.exe
破解工具:w32dasm黄金版
1。用winzip或winrar等解压缩软件将rfw.exe展到一个目录下
2。研究目录下的setup.exe
3。用w32dasm黄金版打开setup.exe ==》串式参考"Please insert the Rising 'A' floppy. Please contact


String Resource ID=00109: "For ensuring the installation to succeed, please close the L"
String Resource ID=00111: "Unable to find Notes.ini file!"
String Resource ID=00112: "Setup program will create shortcut model on your desktop, wh"
String Resource ID=00113: "You are not "Administrator", install maybe fail.
you'd bet"
String Resource ID=00116: "You have installed Rising Personal Firewall[version:%s], now"
String Resource ID=00117: "You are installing version lower than[%s] the one you used ["
String Resource ID=00119: "
\setup path:
%s
program group name:
%s

Disk free sp"
String Resource ID=00120: "For ensuring the installation to succeed, please close Lotus"
String Resource ID=00121: "Would you like install Rising Anti-virus software?"
String Resource ID=00122: "Please insert the Rising 'A' floppy. Please contact dealer i" ************
String Resource ID=00123: "After long years technology tracking on network attacking me"
String Resource ID=61440: "S"
String Resource ID=61446: ""
String Resource ID=61472: "?0?醥 "
String Resource ID=61473: "政gL
/ 勍\ "
String Resource ID=61474: "?
String Resource ID=61475: "匵
?"


只有一处

:0040C6AC 50 push eax
:0040C6AD 8BCF mov ecx, edi
:0040C6AF E81CEDFFFF call 0040B3D0
:0040C6B4 33DB xor ebx, ebx
:0040C6B6 83CDFF or ebp, FFFFFFFF
:0040C6B9 85C0 test eax, eax
:0040C6BB EB7D jmp 0040C73A 这是修改后的,74还是75=>EB,跳过检测钥匙盘*********

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040C738(C)
|
:0040C6BD A1C0C24300 mov eax, dword ptr [0043C2C0]
:0040C6C2 89442410 mov dword ptr [esp+10], eax
:0040C6C6 899C24F0060000 mov dword ptr [esp+000006F0], ebx
:0040C6CD 89442414 mov dword ptr [esp+14], eax

* Possible Reference to String Resource ID=00122: "Please insert the Rising 'A' floppy. Please contact dealer i"
|
:0040C6D1 6A7A push 0000007A
:0040C6D3 8D4C2414 lea ecx, dword ptr [esp+14]
:0040C6D7 C68424F406000001 mov byte ptr [esp+000006F4], 01
:0040C6DF E8F4B00100 call 004277D8

* Possible Reference to String Resource ID=00008: "Setup tips"
|
:0040C6E4 6A08 push 00000008
:0040C6E6 8D4C2418 lea ecx, dword ptr [esp+18]
:0040C6EA E8E9B00100 call 004277D8
:0040C6EF 8B4C2414 mov ecx, dword ptr [esp+14]
:0040C6F3 8B542410 mov edx, dword ptr [esp+10]

4。运行目录下的安装主程序setup.exe,哇塞,原来很温柔,小家伙蛮可爱的
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2009-3-31 20:50:55 | 显示全部楼层
【软件破解专题】第三集 
第八课 Trw2000使用介绍

  和Softice那将近5兆的庞大身躯比起来,Trw2000就显得小巧多了,解压后的文件也不过几百KB而已。

我将只教授Trw2000的使用,Softice不作介绍.

下载 http://crackerabc.longcity.net/ 中的破解工具中可以下载1.23版,我主页破解工具中可以下载1.22版

两者几乎没有差别

Trw2000常用键

F5键:退出Trw2000窗口(等价于输入go简打g命令)

F8键: 遇到call时追进call

F9键:在光标所在位置设断点

F10键:单步执行

F12键:一个循环圈一个循环圈的走(程序执行到RET指令处,即从子程序CALL中返回,

从CALL到RET为一个循环圈)


Trw2000常用命令

bpx ***    在***处下断点(断点的解释见下),最常用的 bpx hmemcpy万能中断

bd*            清除所有断点

bc*       清除一个断点

go简打g    暂时退出Trw2000窗口

code on(code off) 显示三列,出现机器码,和w32dasm看到的一样(code off关闭)

pmodule    到程序领空(领空的解释见下)

x             彻底退出Trw2000

下面谈到了一些在学习解密过程中经常遇到的问题,本人根据自己的经验简单给大家谈一谈。这些问题对于初学者来说常常是很需要搞明白的,根据我自己的学习经历,如果你直接照着很多破解教程去学习的话,多半都会把自己搞得满头的雾水,因为有很多的概念要么自己不是很清楚,要么根本就不知道是怎么一回事,所以希望通过下面的讨论给大家一定的帮助:

1. 断点:所谓断点就是程序被中断的地方,这个词对于解密者来说是再熟悉不过了。那么什么又是中断呢?中断就是由于有特殊事件(中断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(中断服务程序),然后再返回原先的任务继续执行。打个比方:你正在上班,突然有同学打电话告诉你他从外地坐火车过来,要你去火车站接他。然后你就向老板临时请假,赶往火车站去接同学,接着将他安顿好,随后你又返回公司继续上班,这就是一个中断过程。我们解密的过程就是等到程序去获取我们输入的注册码并准备和正确的注册码相比较的时候将它中断下来,然后我们通过分析程序,找到正确的注册码。所以我们需要为被解密的程序设置断点,在适当的时候切入程序内部,追踪到程序的注册码,从而达到crack的目的。

2. 领空:这是个非常重要的概念,但是也初学者是常常不明白的地方。我们在各种各样的破解文章里都能看到领空这个词,如果你搞不清楚到底程序的领空在哪里,那么你就不可能进入破解的大门。或许你也曾破解过某些软件,但那只是瞎猫碰到死老鼠而已(以前我就是这样的^_^,现在说起来都不好意思喔!)。所谓程序的领空,说白了就是程序自己的地方,也就是我们要破解的程序自己程序码所处的位置。也许你马上会问:我是在程序运行的时候设置的断点,为什么中断后不是在程序自己的空间呢?因为每个程序的编写都没有固定的模式,所以我们要在想要切入程序的时候中断程序,就必须不依赖具体的程序设置断点,也就是我们设置的断点应该是每个程序都会用到的东西。敲入pmodule可到达程序自己的领空.
3. 关于破解练习的问题:学习破解需要大量的练习,对于破解目标的选择,初学者不宜以大型的、著名的软件为目标,因为这些软件通常加密较为复杂,破解不易,应该选择一些比较不出名的、小型的和早些时候的共享软件来练习,因为加密相对简单的软件有利于初学者快速掌握破解思想和技能。至于习题的来源则很广泛,可以从网上下载,也可以去市面上购买一些共享软件光盘。


第九课 感受用TRW2000破解

**************************

本节课主要是体会一下用trw2000破解的过程,请跟着我来作吧

手把手教你破FoxMAIL口令

版本 Foxmail3.11正式版 Build0108
下载 http://www.esoftware.com.cn/oloa ... ail/fm311ch0108.exe

启动FOXMAIL,新建一帐户,加访问口令abc369def(够复杂吧,字母数字都有)
点击带有锁标志的此帐户,随便输入12345678,不要点确定,暂时不要再动FOXMAIL
启动trw2000,不要输软件名,使它驻留,ctrl-n激活,下万能中断(最常用的中断)
trw2000下输入

bpx hmemcpy
go
回车后自动弹到FOXMAIL界面,FOXMAIL下点确定,被断.弹到trw2000界面

trw2000下输入
bc *
pmodule
按7下 F12,3下 F10,来到***(其他版本好象也是^_^)

0167:00511A11 8B45F4          MOV       EAX,[EBP-0C]
0167:00511A14 8B5628          MOV       EDX,[ESI+28]
0167:00511A17 E81824EFFF      CALL    00403E34     *****

d eax   eax=12345678(往右上方看.如将TRW从上向下分为4个窗口,在第二个窗口的右边)
d edx   edx=abc369def (往右上方看)


最重要的一课)

程式如何生成注册码?
1,一般是通过用你的姓名作KEY,经过一定的算法,计算出注册码.
2,但是也有通过依照随机产生的数字,显示出来,如果你要注册,须交钱给软件作者,并告诉他随机数字,他会给你一个经过按照随机数字产生出的注册码.也就是一机一码.
其实上面两种情况都是一个道理,即程式本身在判断你输入的注册码时都会呼叫算注册码的小程式,只要将这段程式正确找到,就可以破解它.

程式如何注册处理?
1,当输入ID,CODE等,立即进行比对,正确的话则做注册处理,以后也不会再麻烦你,也就是说你已经是注册用户了.不正确的话,当然是输入到你对为止了.
2,同上,但以后一执行程式还是会判断.针对这种情况,想只改机械码是根本不行的,必须把注册码揪出来.
3,输入时不立即比对,只写入资料到某个文件(如 "*.INI"文件)中,程式第二次启动时再比对.例如: flashget,特点是巨麻烦,想破解它们,必须要有足够的耐心. (flashget破解参看我的破解日记)

追注册码的步骤
首先,将程式的注册对话框打开,输入你的姓名和任意的注册码(推荐用87654321)
第二步,按CTRL-N呼叫出TRW2000,然后下中断(一般用bpx hmemcpy),回车,键入g,回车
第三步,返回注册程式,按下注册窗中的"确定"按钮.
第四步,如果被TRW拦到,说明刚才打的中断发挥作用了,可以继续工作.如果出现的是"注册失败"的对话框,说明TRW的中断没有作用,只有重复第二步,换个中断试试.(中断设置,看雪教程很详细,不重复)

一般会用bpx hmemcpy就足够了
第五步,键入bc*,回车,键入pmodule,回车,猛按F12键,等到出现"注册失败"的画面时,记下刚才按F12键的按数
第六步,第二次重复第一步至第四步,这次按(第五步记下的按数减去1)下的按数,停下来.
第七步,开始按F10键单步追寻,找到关键CALL和关键跳转,在这个关键CALL处d eax 及   d edx,多看看,有时就会看到注册码,出现在TRW的右上方(找关键CALL和关键跳转有技巧,见下)
第八步,如果没找到,当然要按F8键进去关键CALL观察了,继续追踪可疑CALL和可疑跳转

*****技巧(非常重要,背50遍)

经典比较组合,常为注册码出现处(我们以后将把下面的1,2称为破解经典句式)
1.(最常用)
    mov eax [      ] 这里可以是地址,也可以是其它寄存器 或mov eax [       ]
    mov edx [      ] 同上 通常这两个地址就储存着重要信息 pop edx
    call 00??????   关键call
    test eax eax      
    jz(jnz)或 jne(je) 最常用)
    mov eax [      ] 这里可以是地址,也可以是其它寄存器 或mov eax [       ]
    mov edx [      ] 同上 通常这两个地址就储存着重要信息 pop edx
    call 00??????   关键call
    jne(je)               
mov eax [ ]
mov edx [ ]
cmp eax,edx
jnz(jz)
或者
begin mov al [ ]
      mov cl [ ]
      cmp al,cl
      jnz(jz)
      mov al [ +1]
      mov cl [ +1]
      cmp al,cl
      jnz(jz)
      cmp eax ecx (eax为计数器)
      jnl begin
      mov al 01
4
    lea edi [    ]
    lea esi [    ]
    repz cmpsd
    jz(jnz)
5
    mov eax [      ] 这里可以是地址,也可以是其它寄存器
    mov edx [      ] 同上 通常这两个地址就储存着重要信息
    call 00??????
    setz (setnz) al (bl,cl…)
6
    mov eax [      ] 这里可以是地址,也可以是其它寄存器
    mov edx [      ] 同上 通常这两个地址就储存着重要信息
    call 00??????
    test eax eax
    setz (setnz) bl,cl…
7
    call 00?????? ***
    push eax (ebx,ecx…)
    ……
    ……
    call 00??????
    pop eax (ebx,ecx…)
    test eax eax
    jz(jnz)
    这个形式比较特别,它的关键比较地方不在第二call中,而在第一call中

其中1,2最为常见和重要,其余的不常用

以上技巧为破解的精髓所在,以后无非是大量的破解练习,提高经验和功力

破解的大门由此而开,破解入门的障碍所在,祝早日突破这一关

***几种常见情况的不同处理方法***

1.像那种一个字符一个字符验证的软件(输入不正确没有“确定”按钮)
bpx hmemcpy
g就会中断,如:音乐无限,其教程后面的课里有

2.输入注册码不正确,点确定没有反应,不关闭注册窗口

bpx hmemcpy
g 点确定,就会中断

3、那种乱输入注册码点“确定”但什么提示也没有就消失了的
属于不直接比对注册码,重新启动时再比对,破解起来比较困难
请参考“风飘雪的破解日记“中的破解flashget注册码,以及后面课里的破解度量衡2.0
具体情况具体分析,没有统一的方法.

关于本文-----本文曾参考coofly和progrmhunter破文

作业

1.牢记用TRW2000破解的步骤

2.牢记破解经典句式


第十一课 crackme破解教程(用trw2000追注册码)=====破解经典句式篇


依我个人的经验,破解crackme对破解能力的提高很有帮助,11,12,14课将重点介绍

重点是体会破解经典句式(我已用红字标出)

下面给出的地址可能已下载不到,请去破解乐园的练习专页下载 zop.yeah.net 记清编号即可
------------------(1)-----------------------------
fireworx.12破解教程(编号:80)(a little difficult)无出错提示
http://go3.163.com/gfcrack/crackme/fireworx.12.zip
输入guodong duba 7654321
bpx hmemcpy
g
点鼠标,被拦
bc*
pmodule
按F10直到下面
0167:004554AC MOV      EAX,[EBP-1C] ***
0167:004554AF MOV      EDX,[EBP-14] ***
0167:004554B2 CALL    00403B74    ***
0167:004554B7 JNZ      004554DA    ***
0167:004554B9 PUSH    BYTE +00
0167:004554BB LEA      EDX,[EBP-1C]


4554b2处d edx (edx=5971622)
d eax (eax=7654321)
整理 guodong duba 5971622
-----------------(2)---------------------------
cabeca破解教程(初级)(编号:21)
http://go3.163.com/gfcrack/crackme/Cabeca.zip
依次输入 guodong 111111 222222
ctrl+n激活trw2000
bpx hmemcpy
go
点Try,被拦
bc *
pmodule
不停按F10,直到下面42d4a5处
0167:0042D4A1 MOV      EDX,[EBP-04] *
0167:0042D4A4 POP      EAX             *
0167:0042D4A5 CALL    004038D0      ****
0167:0042D4AA JNZ      0042D4E5       * =>出错(1)
0167:0042D4AC LEA      EDX,[EBP-10]
0167:0042D4AF MOV      EAX,[0042F718]
0167:0042D4B4 CALL    00406550
0167:0042D4B9 MOV      EAX,[EBP-10]
0167:0042D4BC PUSH    EAX
0167:0042D4BD LEA      EDX,[EBP-04]
0167:0042D4C0 MOV      EAX,[EBX+01EC]
0167:0042D4C6 CALL    00419DE0
0167:0042D4CB MOV      EDX,[EBP-04] *
0167:0042D4CE POP      EAX             *
0167:0042D4CF CALL    004038D0      ****
0167:0042D4D4 JNZ      0042D4E5       *=>出错(2)
0167:0042D4D6 MOV      EAX,0042D5E8

42d4a5处 d eax    eax=27692
                d edx    edx=111111
光条停在42d4a5处按F9 (就在此处设置了个断点)======一种方便的设断点的方法,可省掉按很多键
重新输入guodong 27692 222222
点Try,被拦
按F10,直到下面42d4cf处
d eax eax=15895
d edx edx=222222
总结 guodong 27692 15895
------------------(3)-----------------------------
fireworx.6破解教程(easy)(编号:75)
http://go3.163.com/gfcrack/crackme/fireworx.6.zip
输入guodong 7654321
ctrl+n激活trw2000
bpx hmemcpy
g
点确定,被拦
bc*
pmodule
不停按F10,直到下面(1)处

0167:004417F8 CALL    004416F8
0167:004417FD MOV      EDX,[EBP-08] **
0167:00441800 POP      EAX         **
0167:00441801 CALL    00403B44    ***(1)
0167:00441806 JNZ      00441822    **
(1) d edx真码(71A1-01CC-4EB2-38C5)
    d eax假码(7654321)
整理 guodong 71A1-01CC-4EB2-38C5


TRW2000下写破解教程截取部分汇编代码的方法

u 起始行地址,结束行地址 >c:\aa1.txt 如上面的是

u 4417f8,441806 >c:\aa1.txt

截取的汇编代码保存在aa1.txt中

作业

1.找出监狱(quod)1.0的注册码,写出破解教程寄给我。希望早日看到你们交的作业。(华军下载)

2.找出彩票点金术最新版的注册码,写出破解教程寄给我。


第十二课 crackme破解教程(用trw2000追注册码)=====用w32dasm辅助追注册码篇


依我个人的经验,破解crackme对破解能力的提高很有帮助,11,12,14课将重点介绍
下面给出的地址可能已下载不到,请去破解乐园的练习专页下载 zop.yeah.net 记清编号即可
重点体会用w32dasm辅助追注册码

Dope2112.1破解教程(编号:44)
http://go3.163.com/gfcrack/crackme/Dope2112.1.zip
破解:风飘雪
难度:★(适合初学者)
w32dasm反汇编,串式参考"Leider nicht versuchs noch mal!"

:00421D35 8B55E8                   mov edx, dword ptr [ebp-18] ***
:00421D38 8B45F4                   mov eax, dword ptr [ebp-0C] ***
:00421D3B E83417FEFF               call 00403474                 ***
:00421D40 7512                     jne 00421D54                 ***
                                  ^^^^^^^^^^^^
:00421D42 8B86C0010000             mov eax, dword ptr [esi+000001C0]

* Possible StringData Ref from Code Obj ->"Hey du hast es geschaft !"     -<Good boy>
                                  |
:00421D48 BAE41D4200               mov edx, 00421DE4
:00421D4D E8D6FAFEFF               call 00411828
:00421D52 EB10                     jmp 00421D64

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00421D40(C)
|
:00421D54 8B86C0010000             mov eax, dword ptr [esi+000001C0]
^^^^^^^^
* Possible StringData Ref from Code Obj ->"Leider nicht versuchs noch mal " -<Bad boy>
                                        ->"!"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                  |
:00421D5A BA081E4200               mov edx, 00421E08
运行trw2000,输入姓名: guodong 注册码: 7654321 (姓名必须不小于6个字符)
ctrl-n激活trw

bpx 421d3b

g

点确定,被拦,出现trw界面

d eax
eax=108-133490
总结: 姓名: guodong 注册码: 108-133490
--------------------------------(2)-----------------------------
ekH.1破解教程(编号:54)
http://go3.163.com/gfcrack/crackme/eKH.1.zip
破解:风飘雪
难度:★(适合初学者)
w32dasm反汇编,串式参考"Wrong Serial Number !"

:00427B95 8B45F8                   mov eax, dword ptr [ebp-08]
:00427B98 5A                       pop edx
:00427B99 E882FEFFFF               call 00427A20        ***▲
:00427B9E 3D4E61BC00               cmp eax, 00BC614E    ***
:00427BA3 7D1E                     jge 00427BC3          *** =>此处跳走即成功

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00427B73(C)
|
:00427BA5 6A00                     push 00000000

* Possible StringData Ref from Code Obj ->"ERROR"
                                  |
:00427BA7 68087C4200               push 00427C08

* Possible StringData Ref from Code Obj ->"Wrong Serial Number !"
                                  |         ^^^^^^^^^^^^^^^^^^^^
:00427BAC 68107C4200               push 00427C10

trw2000,输入name : guodong    serial: 7654321
bpx 427b95 按F10到▲行
d edx
内存窗口如下:
0030:00B92238 37 36 35 34 33 32 31 00-54 94 42 00 54 41 B9 00 7654321.T擝.TA?.
0030:00B92248 7C 10 00 00 36 00 00 00-50 22 B9 00 50 22 B9 00 |...6...P"?.P"?.
0030:00B92258 10 00 00 00 20 00 00 00-1B 00 00 00 00 00 00 00 .... ...........
0030:00B92268 09 00 00 00 41 36 4C 36-4E 36 41 34 36 00 42 00 ....A6L6N6A46.B.
总结 guodong    A6L6N6A46


作业

找出可视化屏保制作 (True Screen Saver Builder)1.1 的注册码,写出破解教程寄给我(要求:先用W32DASM反汇编,找到关键CALL,再用TRW追注册码) 下载 www.csdn.net或www.shareware.net.cn去搜


第十三课 搜索“S”**破解(TRW2000下)

有时注册码追不出来时,可试试此法

破解工具:TRW2000
破解原理:
  根据注册码的真假相近邻的特性,采取搜索假注册码来找真的注册码的方法!
由于部分程序的真假注册码验证方法如下:
call XXXXX ##### 调用子程序来验证真假注册码
CMP xxx,xxxx   ###### 比较真假注册码
jn 跳或不跳 #### 真就怎么样,假就怎么样,跳或不跳
 当你按F10键单步跟踪到出现出错信息为止或按F12直到出错为止,
这时,程序已经对你所输入的注册码进行了验证!并发出出错信息!
所以,此时内存中就存在真假两个注册码!
所以你就可以使用搜索**!!

破解实例:

破解对象 神奇注册表 http://soft.linksun.com/fpx/lesson13.zip

1.启动trw2000

2.启动神奇注册表,输入姓名:fpxfpx ,注册码87654321

3.ctrl-n激活trw,输入

bpx hmemcpy

g

点确定

bc*

pmodule

不停按F12直到出错为止,这时内存中就已经存在真假两个注册码了

s 0,ffffffff '87654321'

右上方就可以看到真假两个注册码了

有时需要alt+pageup,alt+pagedown上下找找,东找找,西找找,找象注册码的东西

总结:
  1)使用搜索“S”**,使其程序第一次运行进行注册码验证,根据真假注册码相近邻的特性,
在第一次程序进行验证后,内存中就已经存在真假两个注册码了!当第二次搜索时,
在内存中便出现真的注册码了!
  2)另,在填写注册码时,最好使用系统不常出现的字符作为注册码!方便准确搜索!
如:asasasasasa opopopopopo uiuiuiuiuiuiui 等!不要使用12345678或 11111111等,
因为这些字符在WIN系统中到处都是!它会影响你的搜索准确性!推荐87654321
我曾用此办法破解了:神奇注册表,邮件巡捕,轻松试卷,DBTOOLS数据专家等
注意:
   此方法,只适用于一些简单的注册码加密法!
=========================
这种方法也有其局限性:
1)真的注册码必须在内存中以文本形式出现,不能以十六进制形式出现!
2)VB程序此方法失效!
3)一些复杂的注册码验证法。如:逐个验证注册码此方法失效!
==========================

作业

用S**破解监狱1.0,写出破解教程寄给我(提示:有时搜索假注册码,在它的附近没有找到

真码时,可以搜索姓名,看它的附近是否有真注册码)


第十四课 用S命令破解crackme实例(TRW2000下)

本课重点体会用S命令破解

下面给出的地址可能已下载不到,请去破解乐园的练习专页下载 zop.yeah.net 记清编号即可


Dope2112.2破解教程(编号:45)
http://go3.163.com/gfcrack/crackme/Dope2112.2.zip
破解:风飘雪
难度:★(适合初学者)

运行trw2000,输入姓名: guodong 注册码: 7654321
bpx hmemcpy
go 被拦
bc *
pmodule
此时,光条停在0041391d行
s 41391d,ffffffff '7654321'
得b92d68
bd *
bpm b92d68
g 内存窗口看到7654321
d esi
esi=386615
总结: 姓名: guodong 注册码: 386615
----------------------(2)--------------------------

DueList.4破解教程(编号:49)(a little difficult)
http://go3.163.com/gfcrack/crackme/DueList.4.zip
破解:风飘雪
运行trw2000,输入姓名: guodong 注册码: 7654321
bpx hmemcpy
go 被拦
bc*
pmodule
此时,光条停在401184行
s 401189,ffffff '7654321'
得 402179
这时,向上看,内存窗口看到7654321
                下一行    CDSKS0C(倒数第二位是零)
总结: 姓名: guodong 注册码: CDSKS0C


第十五课 汇编菜鸟的好助手------r fl z命令

从轻松试卷 v4.03 的破解看 r fl z 的妙用
--------**不太懂汇编的初学者看过来,一个好的命令可以帮助你**

http://soft.linksun.com/fpx/lesson15.zip r fl z 动态修改跳转的方向,即跳强行改为不跳,不跳强行改为跳
  破解人:paulyoung

    1、运行轻松试卷,在注册框的学校/单位、用户名、注册号处填写,随你便啦。
  2、Ctrl+D 激活TRW,下 BPX HMEMCPY。F5 退出,点击确定,被拦截。
  3、下 BD * ,中断所有断点。
  4、按12次 F12 (因为13次出错),开始看:

:004019A5 8D4DF8 lea ecx, dword ptr [ebp-08] //程序入口
:004019A8 51 push ecx
:004019A9 8BD7 mov edx, edi
:004019AB 8D45F4 lea eax, dword ptr [ebp-0C]
:004019AE E8D5721200 call 00528C88
:004019B3 FF431C inc [ebx+1C]
:004019B6 8D55F4 lea edx, dword ptr [ebp-0C]
:004019B9 58 pop eax
:004019BA E80D751200 call 00528ECC
:004019BF 50 push eax
:004019C0 FF4B1C dec [ebx+1C]
:004019C3 8D45F4 lea eax, dword ptr [ebp-0C]
:004019C6 BA02000000 mov edx, 00000002
:004019CB E818741200 call 00528DE8
:004019D0 FF4B1C dec [ebx+1C]
:004019D3 8D45F8 lea eax, dword ptr [ebp-08]
:004019D6 BA02000000 mov edx, 00000002
:004019DB E808741200 call 00528DE8 //学校名、单位名不能为空(我掉头就溜……)
:004019E0 59 pop ecx
:004019E1 84C9 test cl, cl
:004019E3 745F je 00401A44       //下 r fl z ,F5退出,可看到上面提示
:004019E5 66C743101400 mov [ebx+10], 0014
:004019EB 8D5701 lea edx, dword ptr [edi+01]
:004019EE 8D45F0 lea eax, dword ptr [ebp-10]
:004019F1 E892721200 call 00528C88
:004019F6 FF431C inc [ebx+1C]
:004019F9 8D45F0 lea eax, dword ptr [ebp-10]
:004019FC 33D2 xor edx, edx
:004019FE 8955EC mov dword ptr [ebp-14], edx
:00401A01 8D55EC lea edx, dword ptr [ebp-14]
:00401A04 FF431C inc [ebx+1C]
:00401A07 E8E8A90100 call 0041C3F4
:00401A0C 8D45EC lea eax, dword ptr [ebp-14]
:00401A0F 8B00 mov eax, dword ptr [eax]
:00401A11 E886420100 call 00415C9C
:00401A16 FF4B1C dec [ebx+1C]
:00401A19 8D45EC lea eax, dword ptr [ebp-14]
:00401A1C BA02000000 mov edx, 00000002
:00401A21 E8C2731200 call 00528DE8
:00401A26 FF4B1C dec [ebx+1C]
:00401A29 8D45F0 lea eax, dword ptr [ebp-10]
:00401A2C BA02000000 mov edx, 00000002
:00401A31 E8B2731200 call 00528DE8
:00401A36 8B0B mov ecx, dword ptr [ebx]
:00401A38 64890D00000000 mov dword ptr fs:[00000000], ecx
:00401A3F E972030000 jmp 00401DB6

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004019E3(C)
|
:00401A44 66C743102000 mov [ebx+10], 0020
:00401A4A 33C0 xor eax, eax
:00401A4C 8945E8 mov dword ptr [ebp-18], eax
:00401A4F 8D55E8 lea edx, dword ptr [ebp-18]
:00401A52 FF431C inc [ebx+1C]
:00401A55 8B86DC020000 mov eax, dword ptr [esi+000002DC]
:00401A5B E8F8A60D00 call 004DC158
:00401A60 8D55E8 lea edx, dword ptr [ebp-18]
:00401A63 52 push edx
:00401A64 8D5711 lea edx, dword ptr [edi+11]
:00401A67 8D45E4 lea eax, dword ptr [ebp-1C]
:00401A6A E819721200 call 00528C88
:00401A6F FF431C inc [ebx+1C]
:00401A72 8D55E4 lea edx, dword ptr [ebp-1C]
:00401A75 58 pop eax
:00401A76 E851741200 call 00528ECC
:00401A7B 50 push eax
:00401A7C FF4B1C dec [ebx+1C]
:00401A7F 8D45E4 lea eax, dword ptr [ebp-1C]
:00401A82 BA02000000 mov edx, 00000002
:00401A87 E85C731200 call 00528DE8
:00401A8C FF4B1C dec [ebx+1C]
:00401A8F 8D45E8 lea eax, dword ptr [ebp-18]
:00401A92 BA02000000 mov edx, 00000002
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2009-3-31 20:54:09 | 显示全部楼层
虽然有点老,但是菜鸟还是可以学习学习。
PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2016-10-5 11:45
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2009-3-31 22:06:06 | 显示全部楼层
    我是菜鸟``我正需要。。。。
         收藏了``慢慢 看`
      不知道软件在哪下。。
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2017-6-12 10:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2009-4-1 22:05:23 | 显示全部楼层
    很基础的知识啊 谢谢楼主分享  收藏了
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2017-10-25 15:44
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2009-4-2 15:44:05 | 显示全部楼层
    谢谢了,我还真得好好学习学习哦
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-4-2 16:01:56 | 显示全部楼层
    真得好好学习学习哦
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表