初級~~初級~~~初初級~~~KanjiWeb 3.0 (漢字通)破解~~~~~~~~~ (8千字)
初級~~初級~~~初初級
軟體名稱:KanjiWeb 3.0 (漢字通)--臺灣出的多語言支援軟體,任何Windows 無需漢字版本,均可讀寫簡體中文、
繁體中文、日文。大小:1812KB 安裝後也只有 2920KB(自帶11種輸入法)
下載地址: ftp.s2net.org.tw/pub/kanjiweb 這兩個是官方網址,這軟體到處都是,搜尋一下吧,我不記得地址啦
Http://kanjiweb.com
註冊形式:在Register選單裡有個REGISTERED NO:1242637882(我這裡是這個數,每次安裝都不同),按RegisterI
程式要求輸入Serial No。程式肯定要用到上邊這個數來運算的,到底是如何呢???
破解原因:這個程式我一直都在用,因為我臺電腦很低階(和我一樣)MMX166而已,這個小軟體就很合適我用啦,雖然
它的字型檔不夠大,但也足夠應付啦,另外它很穩定,我的電腦用其它類似的軟體在某些時候一定會出錯,用
這個就絕對沒事。其實這個軟體我一早就破掉啦,在網上找的時候看到別人留下的SN,抄下一用,錯的!看
來這個RN是重點,這軟體很容易破,看下面的程式碼就知道啦,所以我當時只花了幾分鐘就搞掂了,但卻沒有
把過程記下來,而且我想為這個簡單的東西做個序號產生器,於是有了這篇文章。但為此我卻要重新安裝它,因
為我根本找不到它的已註冊標誌在哪,有誰找到請指點一二。
下面有兩種方法可以註冊成功:一是找到註冊碼;二是半暴力破解(不用真正改動程式本身,只用改一次記憶體裡的程式碼就OK啦),大家自己選擇(我是完美主義追求者,儘量不用暴力),好啦請先從39EC處看起,因為這裡是我最先發現的要害(請跟著我的思路走因為我是從後面往前找的)。另外這個程式是16位的,有點落後的感覺,除錯時很不習慣。
:0001.39B4 8D8626FE lea ax,
[bp+FE26]
:0001.39B8 16
push ss
:0001.39B9 50
push ax
:0001.39BA FF76F6 push
word ptr [bp-0A]
:0001.39BD 9AEE07093A call 0001.07EE<----此call是運算RN的地方,但~~~~~唉~呼叫了系統call
:0001.39C2 83C408 add
sp, 0008
:0001.39C5 8DB626FE lea si,
[bp+FE26]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.39D3(C)
|
:0001.39C9 803486 xor
byte ptr [si], 86<---此處用86 xor 記憶體[si]裡的數就得到真碼啦
-------------------------------------------------------------------------------------------------
2.....此時我記憶體裡的數是:B7 CC C9 C9 DF D0 C7 DF F4每位數與86相xor就得到了一個共9位的註冊碼,真碼就放在[si]中替代了上面的這些數。我想這幾個數一定是根據那個REGISTERED
NO運算得來的,那如果找到了程式是如何運算那個RN的不就可以寫出序號產生器啦嗎?我用了個蠢辦法來確定,我重新註冊,當然是填入假註冊碼,因為我還不想它註冊成功,然後中斷,d剛才[si]的地方然後一直按F10,當經過39BD這個call後[si]就被寫上以上的資料啦,但是當我跟進去的時候發現程式呼叫了call
KERNEL.DOS3CALL這個call來運算以上資料的這個怎麼跟呢,我在此就被阻了,這裡請高手指點~~~~~~
-------------------------------------------------------------------------------------------------
:0001.39CC 46
inc si
:0001.39CD 8D862FFE lea ax,
[bp+FE2F]
:0001.39D1 3BF0
cmp si, ax
:0001.39D3 72F4
jb 39C9
:0001.39D5 8DBE26FE lea di,
[bp+FE26]
:0001.39D9 8D76B6 lea
si, [bp-4A]
:0001.39DC 8CD1
mov cx, ss
:0001.39DE 8EC1
mov es, cx
:0001.39E0 B9FFFF mov
cx, FFFF
:0001.39E3 33C0
xor ax, ax
:0001.39E5 F2
repnz
:0001.39E6 AE
scasb
:0001.39E7 F7D1
not cx
:0001.39E9 2BF9
sub di, cx
:0001.39EB F3
repz
:0001.39EC A6
cmpsb <----比較註冊碼的地方,這條語句很明顯吧!!
-------------------------------------------------------------------------------------------------
1......除錯時一樣是用bpx hmemcpy,bd,pmodule來到程式領空(這裡不能直接設bpx 39EB,因為程式是16位的,16位的程式地址是這樣的:前面部分是段地址,後面部分是偏移地址,而段地址不是固定的,所以要用bpx
hmemcpy來做個橋樑才能找到程式的領空---我這樣說對嗎??),一直按F10想看它幾時出錯,誰知走到此處我就停下來啦,因為這條語句太刺眼啦,好啦馬上d
ds:si看到了我輸入的67676767,再d ds:di就可以看到真的註冊碼1JOOYVAYb啦,試一試~~~~Ok啦~~~當然因為我想做個序號產生器,所以要研究那個真註冊碼是怎麼來的啦:-)於是往上看39C9處有可疑喲~~~~~
-------------------------------------------------------------------------------------------------
:0001.39ED 7405
je 39F4
:0001.39EF 1BC0
sbb ax, ax
:0001.39F1 1DFFFF sbb
ax, FFFF
* 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 <----看這個call如果它不跳的話下面會不會還有呢??
-------------------------------------------------------------------------------------------------
4.....把它改成je 3A3A就不會跳啦,往下執行就註冊成功了,但要退出程式再次進入才行,這時Register選單就灰掉啦,程式作了標記,但我找不到!!!不過說真的我到現在都還不知道此軟體如果不註冊的話會有什麼限制~~~~~呵呵~~~破了再說~~~~~~~
-------------------------------------------------------------------------------------------------
: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如果不跳的話就只有這個啦,而且還是一定
會跳的,跳到了出錯資訊的後面去啦,上面的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
: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
* Possible StringData Ref from Code Seg 001 ->"SORRY !! ERROR SERIAL NO"<----出錯資訊!!!
-------------------------------------------------------------------------------------------------
3.....其實現在此軟體已破掉了,現在說說用W32dasm來破解吧,相對來說應該容易一點。上面這個出錯資訊可以在W32dasm裡的資料串裡找到,只有一個地方。要想程式避開此處就要往前找啦
-------------------------------------------------------------------------------------------------
|
: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
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.3A32(U)
|
:0001.3A53 66FF76F2 push word
ptr [bp-0E]
:0001.3A57 FF76F6 push
word ptr [bp-0A]
:0001.3A5A 9ADC11683A call 0001.11DC
:0001.3A5F 83C406 add
sp, 0006
:0001.3A62 FF76F6 push
word ptr [bp-0A]
:0001.3A65 9AC6105D38 call 0001.10C6
:0001.3A6A 83C402 add
sp, 0002
24:07 2001-3-10
相關文章
- WinRAR 2.71的初級破解 (4千字)2001-02-16
- 初學者Mybatis的初級使用2018-11-19MyBatis
- ActiveMQ初級教程2014-05-20MQ
- 破解Visual Zip Password Recovery Processor
v3.2 初級 (3千字)2000-02-27
- LINUX初級命令2019-01-03Linux
- 初級演算法2020-12-15演算法
- grafana初級入門2022-03-28Grafana
- 初學者(8) (4千字)2000-05-07
- 初學者(10) (8千字)2000-05-14
- PHP 初級 試崗要求2019-10-15PHP
- 資料結構(初級)2021-09-09資料結構
- 初級演算法-樹2018-08-12演算法
- 初級Vue以及基本指令2020-12-14Vue
- 動態規劃初級2020-11-21動態規劃
- 學習Grafana初級使用2020-11-22Grafana
- java初級面試題(二)2020-10-24Java面試題
- 初級資料結構2020-11-01資料結構
- 初級行轉列示例2009-03-04
- IrfanView 序號產生器分析(初級版)
(13千字)2015-11-15View
- Java初級~中級~高階進階之路2020-10-24Java
- WinRAR初級中級高階等應用2024-04-12
- Python初級面試語法2018-08-23Python面試
- Vuex 的使用方式(初級版)2018-12-24Vue
- 尚矽谷_初級_java基礎2020-10-20Java
- oracle語句練習--初級2021-12-16Oracle
- Excel函式的初級用法2021-10-29Excel函式
- nmap的理解與利用(初級)2021-01-24
- nsight 初級使用指南2016-05-06
- 解除DLSupCBT的NAG窗和KEY檔案製作[原創] OLLYDBG初級教程,給初學者 (13千字)2015-11-15
- 二、Java初級--8、繼承和重寫方法2018-03-06Java繼承
- 2020年焊工(初級)考試試題及焊工(初級)考試軟體2020-10-29
- 2021年美容師(初級)考試APP及美容師(初級)試題及答案2020-12-30APP
- NUXT SSR初級入門筆記2019-12-14UX筆記
- 前端面試總結篇(初級)2019-02-25前端面試
- 小程式·雲開發初級FAQ2019-03-04
- shell初級-----資料呈現方式2019-05-23
- Es6初級入門(一)2019-04-19
- 初級前端開發面試總結2019-02-16前端面試