本人暴力破解3
有人问为什么3?明明是2才对啊!
第2本人已经成功了可惜不会用udeit32有代换改法一次就几十个?
搞到程序出错!现在有一种方法了就是,不说先等你看完先!
mulitword ver 3.0
可是这个是新版来的!
也就是kanjiweb!
用W32dsm89反后,以前都是从字符串入手!
现在介绍一种比较快的方法,就是W32dsm89的查找功能,输入
"SORRY !! ERROR SERIAL NO"一会就找到了!
本些也要说明些是从错误对话窗入手,而且字符串有时会找到一些"thank
you"之类的话也就是从注册完窗来开枪!这里本人也要多说几句了!
错误窗与完成窗有什么区别了?就有好像敌人与朋友你说有什么区别啊?
错误窗就要kill也就我们所说的跳过它,而且完成窗就是让它执行!
浪话少说来:
* Possible StringData Ref from Code Seg 001 ->"SORRY !! ERROR SERIAL NO"
|
:0001.3A43 68E45E push
5EE4
:0001.3A46 685D3A push
SEG ADDR of Segment 0001
* Possible StringData Ref from Code Seg 001 ->"ERROR !!"
|
:0001.3A49 68DA5E push
5EDA
:0001.3A4C 6A00
push 0000
:0001.3A4E 9A04170000 call USER.MESSAGEBOX
//->goodover讨厌的对话窗出来了?
第一步找出跳到些call,有时会问如何找了这样你就不要偷懒了要有纸和笔做记录!
记哪么些了?是偏移值,注意这里的偏移值是 0001.3a4e不是状态栏下的@offset!
而且还还要记些call跟着的东西?有时还要进去看一看?如果是带偏移值也要记住这个值为什么了?
激法些call有时不是直接,当你向上分析时有时出现je or jne之类后面是些call后面的值,通过复杂的运行
后也回到激活些call!也好像走路一样,可以走直路、弯曲山路或小径等多种走法但最终也是要到目的!
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.3937(C)
|
:0001.3A34 8B76F8 mov
si, [bp-08]
:0001.3A37 EB34
jmp 3A6D //->第一个跳过些些call
第二步是找出为什么来不到这里的原因?
:0001.3A39 90
nop
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.39F6(C)
|
:0001.3A3A BE0100 mov
si, 0001
:0001.3A3D FF760E push
word ptr [bp+0E]
:0001.3A40 68473A push
SEG ADDR of Segment 0001
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.39ED(C)
:0001.39F4 0BC0
or ax, ax
:0001.39F6 7542
jne 3A3A //->看到没有? 就是它了!我要寻根问底再向上分析!
:0001.39F8 C646FBFF mov byte
ptr [bp-05], FF
:0001.39FC 33F6
xor si, si
:0001.39FE 56
push si
:0001.39FF 66FF76FC push word
ptr [bp-04]
:0001.3A03 FF76F6 push
word ptr [bp-0A]
:0001.3A06 9A1A071B3A call 0001.071A
:0001.3A0B 83C408 add
sp, 0008
:0001.3A0E 6A04
push 0004
:0001.3A10 8D46EE lea
ax, [bp-12]
:0001.3A13 16
push ss
:0001.3A14 50
push ax
:0001.3A15 FF76F6 push
word ptr [bp-0A]
:0001.3A18 9A66092D3A call 0001.0966
:0001.3A1D 83C408 add
sp, 0008
:0001.3A20 6A01
push 0001
:0001.3A22 8D46FB lea
ax, [bp-05]
:0001.3A25 16
push ss
:0001.3A26 50
push ax
:0001.3A27 FF76F6 push
word ptr [bp-0A]
:0001.3A2A 9A6609413A call 0001.0966
:0001.3A2F 83C408 add
sp, 0008
:0001.3A32 EB1F
jmp 3A53 第二个跳过此call
:0001.39EB F3
repz
:0001.39EC A6
cmpsb
:0001.39ED 7405
je 39F4 //->是这里?
:0001.39EF 1BC0
sbb ax, ax
:0001.39F1 1DFFFF sbb
ax, FFFF
总结:je 39F4->jne 3A3A.....->call USER.MESSAGEBOX 完蛋!
jmp 3A6D and jmp 3A53 to good bye call USER.MESSAGEBOX!
Yeach!
所以我只要把jne 3a3a 不跳->jmp 3A53 跳过些call!
知道如何做了? 找3a3a,9090 如果你这样做不是改一个而是改了多个,很容易出错!
正确的是上面+3a3a也就是0BC0+3a3a(要改得)! seach 0BC0 3a3a->0BC0 9090现在只有个
^^^^
了,你再找就找不到也就是你改对!当然可以@offset值的用hiew640reg来改!
我试了试乱输入注册,程序不见了?见鬼我把时间调到2002年!难道还有时间限制?
不管了调回2001正常,注册变成灰色也就是成攻了!时间调前或后都没有时间了!
我初次暴力如何错误,请大家指教!thanks! 请问一下 jne 3a3a 能改成
je 3a3a or jmp3a3a我个人看应该不行这样也是跳得啊?程序是拿来练习已经删除了,
由于资料与软件太多了不知道放在哪儿了?
我破解完在整理资料时找到coolfly破解
★目标软件: KanjiWEB3.0
时间限制: 大约一个月
1998年12月25日晚23:14分
KANJIWEB 是个不错的内码转换程序,但是有时间限制,需要注册。
首先打开 MultiWord.exe 程序,然后选择 register,
在注册框中输入任意字符,切换到 winice ,输入:
bpx getdlgitemtext ,按F5键回到程序,按下OK按键,程序被中断,
我们就从这儿一路P下去,最后到了
....
....
....
30f7:39c9 xor byte ptr [si],86
:39cc inc si
:39cd lea ax,[bp+fe2f]
:39d1 cmp si,ax
:39d3 jb 39c9
程式到此循环九遍,程式在判断九位注册码,追到
30f7:3a4e call messagebox
此时出现注册失败的画面,因此我就从此开始逆查,往上一看,
xxxx:39eb repz cmpsb
:39ed jz 39f4 '判断语句,如果相等则跳到29f4继续执行。
xxxx:xxxx .
.
xxxx:39f4 or ax ax
xxxx:39f6 jnz 3a3a '比较,如果不等则跳到3a3a处。
按F10键执行到3a3a处一看:
xxxx:3a3a mov si,0001
...
...
xxxx:3a4e call user!messagebox '执行到此处就会出现上面的注册失败的画面。
....
xxxx:3a6d or si,si
xxxx:3a6f jnz 3a87 '跳到3a87,并结束注册
所以39f6 处的比较绝对有问题,假设相等就不会跳跃了,我们从39f6往下看:
....
....
xxxx:3a32 jmp 3a53
xxxx:3a34 mov si,[bp-08]
xxxx:3a37 jmp 3a6d
而跳到3a53处往下执行是:
....
....
xxxx:3a6f jnz 3a87
....
xxxx:3a74 call user!getparent '处理注册
....
xxxx:3a82 call user!sendmessage '发送注册信息。
....
xxxx:3a87 xxxx
....
xxxx:3a8c call user!enddialog '注册结束信息
我想上面的关键语句行一看就会明白39ed和39f6语句有问题
方法,下code on 命令将修改下列机械码:
30f7:39f6 jnz 3a3a -> nop nop (因为是两个字节,所以填两个nop)
退出后,注册成功,软件可以正常使用啦!
【结论】
查找: MULTWORD.EXE (49,008 BYTE)
<1> 0BC0 <7542> C646FBFF -> 0BC0 <9090> C646FBFF
^^^^
^^^^
破解完成,可以上床睡觉了。看看表,哇,很晚了吗?see you letter!
他是用softice来破解而我的是用w32am89!
这个软件的作者也太懒新版与旧版虽然汇编偏移不同,而汇编内容着不多是一样的!
最后结果是一样!softice和trw2000 破解暴力是就容易找准错误call如call USER.MESSAGEBOX如果
后面是一些偏移而且上下就不只一个call就比较麻烦?但分析汇编内容w32am89就比较好了!
所以他们各有千秋!如果你能把他们一起运用,会促进你的破解速度!很久没有打这样多字了,手都软了!
- 标 题:暴力破解3 (6千字)
- 作 者:peterchen
- 时 间:2001-2-18 20:26:15
- 链 接:http://bbs.pediy.com