IrfanView3.36破解手记
作者:娃娃(NYDoll)
软件简介:一个非常优秀的看图软件,即使是跟ACDSee相比也未见逊色多少,软件本是免费软件,即使不注册也没有任何限制,但为了支持作者的继续升级,还是请有能力的朋友注册吧:
破解工具:TRW2000 BW2000
____________________________________________________________________________________________________________________________________
我是在华军下载的汉化版,下载后软件是用ASPACK加国壳的,你不妨用BW2000+TRW2000脱掉他的壳,以方便反汇编,
然后填写注册信息: Your name: NYDoll Your Code:38383838
都可以随便填写,但也有一定的限制,请向下看:
设断点 BPX HMEMCPY
F5
按OK,立刻被拦下
BC *
PMODULE
来到这里:
XXX:432FFB MOV
EDX,[004DEF54] 《----------TRW停在这里
XXX:433001 PUSH
DWORD 0100
XXX:433006 ADD
EDX,0100
XXX:43300C PUSH
EDX
XXX:43300D PUSH
DWORD 045C
按几下F10马上又回到系统领空,于是在次下命令PMODULE,回到程序代码段,应该停在:
XXX:0044B921 TEST
EAX,EAX
XXX:0044B923 JZ
NEAR 0045051D
XXX:0044B929 LEA
EDI,[ESP+04F8]
XXX:0044B930 OR
ECX,BYTE -01
XXX:0044B933 REPNE SCASB
XXX:0044B937 NOT
ECX
XXX:0044B939 DEC
ECX
XXX:0044B93A CMP
ECX,BYTE +02
《---------- 注册名的字数必须大于2
XXX:0044B93D JC
NEAR 0044B9CA
XXX:0044B943 LEA
EDI,[ESP+04F8]
XXX:0044B94A OR
ECX,BYTE -01
XXX:0044B94D REPNE SCASB
XXX:0044B94F NOT
ECX
XXX:0044B951 DEC
ECX
XXX:0044B952 CMP
ECX.BYTE +55
《----------- 注册名的位数必须小于85
XXX:0044B955 JA
0044B9CA
XXX:0044B957 LEA
EDI,[ESP+05F8]
XXX:0044B95E OR
ECX.BYTE -01
XXX:0044B961 XOR
EDX,EDX
XXX:0044B963 REPNE SCASB
XXX:0044B965 NOT
ECX
XXX:0044B967 DEC
ECX
XXX:0044B968 TEST
ECX,ECX
《----------- 判断所输入的注册码位数是否为零
XXX:0044B96A JNG
0044B9AE
XXX:0044B96C MOV
AL.[ESP+EDX+05F8] 《-------- 程序在这里开始进入一个循环,
AL 分别是注册码的每一位
XXX:0044B973 CMP
AL,30
XXX:0044B975 JL
0044B9EB
XXX:0044B977 CMP
AL,39
XXX:0044B979 JNG
0044B980
XXX:0044B97B MOV
EBX,01
XXX:0044B980 LEA
EDI,[ESP+05F8]
《----- 看到我们输入的 Fuck Code
XXX:0044B987 OR
ECX,BYTE -01
XXX:0044B98A XOR
EAX,EAX
XXX:0044B98C INC
EDX
XXX:0044B98D REPNE SCASB
XXX:0044B98F NOT
ECX
XXX:0044B991 DEC
ECX
XXX:0044B992 CMP
EDX,ECX
《----- EDX 为循环次数,ECX为注册码字符个数
用这个对比语句判断循环是否完成
XXX:0044B994 JL
0044B96C
《----- 如果 循环次数小于注册码字符数说明循环没有完成
跳到0044B96C处继续判断注册
码是否符合标准
XXX:0044B996 TEST
EBX,EBX
XXX:0044B998 JZ
0044B9AE
《---- 应该跳
XXX:0044B99A PUSH
DWORD 0104
XXX:0044B99F PUSH
DWORD 9CCB
XXX:0044B9A4 PUSH
DWORD 9CCB
XXX:0044B9A9 JMP
004491A1
XXX:0044B9AE LEA
EDX,[ESP+05F8]
XXX:0044B9B5 LEA
EAX,[ESP+04F8]
XXX:0044B9BC PUSH
EDX
《--------- 压入Fuck Code
XXX:0044B9BD PUSH
EAX
《--------- 压入Name
XXX:0044B9BE Call
00432D00
《————— 关键Call 按F8进入
XXX:0044B9C3 ADD
ESP,BYTE +08
XXX:0044B9C6 TEST
EAX,EAX
《————— 注册标志 EAX值为0则注册失败 否则视为注册成功!
XXX:0044B9C8 JNZ
0044B9DE
《———— 为0则跳转到出错窗口
------------------------------------------------Call----------------------------------------------------------------
XXX:00432D00 MOV
EAX,[ESP+08]
XXX:00432D04 SUB
ESP,BYTE +14
XXX:00432D07 PUSH
EBX
XXX:00432D08 PUSH
EBP
XXX:00432D09 PUSH
ESI
XXX:00432D0A PUSH
EDI
XXX:00432D0B PUSH
EAX
XXX:00432D0C XOR
EBX,EBX
XXX:00432D0E CALL
004A6157
XXX:00432D13 MOV
ESI,[ESP+2C]
XXX:00432D17 MOV
EBP,EAX
XXX:00432D19 MOV
EDI,ESI
... ... 继续按F10向下追:
XXX:00432D64 LEA
EDX,[ESP+14]
XXX:00432D68 PUSH
ESI
XXX:00432D69 LEA
ESI,[EAX+ECX*2]
XXX:00432D6C SHL
ESI,03
XXX:00432D6F PUSH
ESI
XXX:00432D70 CALL
004B1244
《———— 如果你跟如入这个Call 你会得到一个中间数据 299248
接下来就是开始算注册码了 在这里就不详细列出了
有兴趣的Cracker们可以跟进研究研究 非常简单哦
一直按F10到:
XXX:000B2F75 ADD
DL,30
XXX:000B2F78 MOV
[ESP+11],DL
XXX:000B2F7C LEA
EDX,[ESP+10]
XXX:000B2F80 PUSH
EDX
《———— 嘣蹦蹦~嘣 终于胜利了
在这里下D EDX看到的就是真正的注册码了 229952408
XXX:000B2F81 CALL
004A6157
XXX:000B2F86 ADD
ESP,BYTE +04
XXX:000B2F89 XOR
ECX,ECX
终于搞定了 好累阿 这是我写的第一篇破解
是一个保护比较差的软件 没有办法 谁叫俺水平不济哩 只好捡软骨头吃了 呵呵
BYEBYE 如果有错误 希望各位前辈指出!!
______________________________________________
娃娃(NYDoll) —————————————————————————
NYDoll@Etang.Com
QQ: 15110296
- 标 题:申请加入BCG的破解文章之一 (6千字)
- 作 者:NYDoll
- 时 间:2001-5-6 11:45:46
- 链 接:http://bbs.pediy.com