Advanced Evaluator 3.5 (另一強大的科學計算器--註冊運算也很強大喲)破解~~新手請進~~有詳細註解~高手們做... (12千字)
標題: Advanced Evaluator 3.5 (另一強大的科學計算器--註冊運算也很強大喲)破解~~新手請進~~有詳細註解~高手們做個序號產生器吧~~~呵呵
內容:
差點就要放棄啦~~~~~~~
軟體名稱:Advanced Evaluator 3.5 (功能強大的科學計算器)
下載地址:http://61.134.4.193:8080/appsoftware/calculator/ae35.zip (708KB)
註冊形式:Name & Key (我用了Name:Sam Von Key:67676767) 30天限制,過了30天就不能用了
破解原因:同上次一樣,找了一大堆計算器想算註冊碼,這個也一樣不合我心意,但它有註冊保護,剛好可以練一下
但這個比上次那個難多啦(對於我來說),看我的標題就知道啦,不過這次可增加了我不少經驗值,順便問
下大家,有哪個計算器軟體或其它工具可以進行彙編的shl,nor,rol,xor等這些邏輯運算的請告訴我下載
地址~~~~謝謝大家~~~~
破解過程及心得:
這次破解簡直是瞎貓捉到死老鼠,一開始當然是例行公事一樣的填入我的Name&Key,開啟Trw2000,輸入bpx
hmemcpy,然後按確定,Booom~~~Trw攔下來啦,然後就bd、pmodule,來到了程式的程式碼中,呵呵~~~~有誰算過這個過程要多長時間。通常來說這時我都會看看各個暫存器的值,一般來說這時eax的值就是你Name
or Key的長度,而我這裡是我Name的長度7,好啦它讀了我的Name,馬上用s命令查詢'Sam Von'(s命令會用吧,反正我剛學的時候就不怎麼會用,誰不懂就問吧),找到啦,當然是“bpm
地址 rw”啦,這個命令很好用的,只要任何程式讀寫了存放我的Name的地址,Trw就會中斷了,我的猜想是程式讀我的Name作比較或者作運算或者把它放到第二個地址去,所以我通常有個習慣就是用bpm把所有存放我Name
& Key的地址都設中斷,反正程式一讀我的Name&Key就是要做小動作啦,所以這樣比較容易跟也容易找到核心,當程式再次中斷時,我發現它在拿我的Name和sudi比較,但我用sudi來註冊時一樣出錯,那這個可能是黑名單吧,這裡應該不是重點,再跟~~~~~~~又發現程式在查我Name的二進位制,要用到二進位制來運算,麻煩啦,繼續~~~~~~中間好多F8
F10的不停的按,反正要注意各暫存器的值,在Trw中的彙編程式碼視窗右上角的提示很重要,多多留意,一發現出現有疑的資料就要d來看看。其中有幾個地方應該都是運算重點,但我沒有貼出程式碼,只給出地址,有興趣的就自己看看吧:在4027EC處程式用我Name的16進位制加上某個地址再與另一地址比較;在478B1B處程式作了運算(用了除法等命令);在479471-->4794B0處程式將我Name的二進位制連續放在記憶體中然後比較、查表、運算。最下面我貼出那些程式碼是對Key的比較運算,反正我再跟下去就暈啦,因為後面的call很多,運算也很複雜,我看不懂程式碼,但我想後面應該就是運算核心啦,高手們可以研究一下。上面的過程我花了兩天時間,始終搞不懂,你一定想問我為什麼不用反彙編呢,其實我一早用過啦,程式是Delphi寫的,裡面一點有用的字串都沒有,只有十多行而已(BTW:為什麼純Delphi的程式用W32dasm反彙編後在字串表中都只有幾行呢,是程式本身的設計還是Delphi的限制呢),我開始懷疑是否是我的起點過高呢~~~~~~~~~~~~呵呵
眼花啦~~~~每次看下面運算的程式碼都不得重點,我實在看不懂運算的過程,而且後面的call太多啦,唉沒心機啦,於是像傻子一樣不停的按F10~~~~忽然在4799AB處停了下來,其實這裡我以前也來過幾次,不過總覺得比較語句應該是cmp
al,01之類的才是重要的判斷,不會同2比吧,給騙了~~~這時將al改為2就完全破解啦,這完全是我無路可走才想到亂改一氣的,所以說捉到死老鼠啦~~~~~呵呵
再說兩句,破解真的好累,寫文章就更累~~~~這是我寫的第三篇,這幾天都沒精神啦,另外我寫的可能很亂很羅嗦,請大家原諒,我文筆本來就不好,加上我寫的這些都是想保留下來以後溫習用的,所以寫的很詳細(因為我是一個新手,功力0.6級),記得我剛開始學破解時到處找教程,但幾乎每個教程都那麼簡單,可能我人蠢吧,很多東西看不懂,所以我就將破解的過程整理後貼出來咯,希望能幫得了一些新手,也請高手指正,畢竟這些都是我自己理解的東西~~~~難免有錯的~~~~謝了~~~~~~~~~~~~~
以下為核心判斷的call
* Referenced by a CALL at Addresses:
|:00478C93 , :00478CA2 , :00479039 , :00479049 , :0047974C
|:00479780 , :004799A6
|
:00478A48 53
push ebx
:00478A49 56
push esi
:00478A4A 57
push edi
:00478A4B 55
push ebp
:00478A4C 8BEA
mov ebp, edx
:00478A4E B202
mov dl, 02 <----dl=2 此為註冊標誌想辦法保持這個數就行啦
:00478A50 8B7504
mov esi, dword ptr [ebp+04]<---[C60994]=252E---假密碼
:00478A53 8B4804
mov ecx, dword ptr [eax+04]<---[C67F88]=1CD3---真密碼
-------------------------------------------------------------------------------------------------
To:新手~~~~~~~~~~
我不知道程式將我的Name和Key作了什麼運算,反正到了此處程式就拿這兩個數作比較,我就稱它們為真假密碼吧,請留意程式並沒有將密碼連續放在記憶體中,而是分散的,它的存放是這樣的[ebp(eax)]是密碼的基地址,[ebp(eax)+4]是密碼的值,[ebp(eax)+8]是下一個密碼的基地址,程式先比較第一個密碼,不等的話還會去比較第二個,這一點我就不明白啦,第一個不等就算啦嘛,為何還做下面的比較,就算後面的密碼相等bl也不可能變為2呀,這是我第一次碰到的情況,所以我把它記了下來,不要說我羅嗦呀~~~~~~~~~~
-------------------------------------------------------------------------------------------------
:00478A56 3BF1
cmp esi, ecx
:00478A58 7D04
jge 00478A5E <---此處esi>ecx所以跳啦
:00478A5A 33D2
xor edx, edx <---不跳的話edx就被清為0啦
:00478A5C EB20
jmp 00478A7E
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00478A58(C)
|
:00478A5E 3BF1
cmp esi, ecx <----再比不等dl就變為1啦
:00478A60 7E1C
jle 00478A7E
:00478A62 B201
mov dl, 01
:00478A64 EB18
jmp 00478A7E <----一定跳啦,不過dl為1啦
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00478A90(C)
|
:00478A66 8BC6
mov eax, esi <----基地址
:00478A68 8BEF
mov ebp, edi
:00478A6A 8B7504
mov esi, dword ptr [ebp+04]<----第二個密碼22B4
:00478A6D 8B4804
mov ecx, dword ptr [eax+04]<----211
:00478A70 3BF1
cmp esi, ecx
:00478A72 7D04
jge 00478A78 <------看~~就算相等也沒用,剛才dl已經為1啦
:00478A74 33D2
xor edx, edx
:00478A76 EB06
jmp 00478A7E
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00478A72(C)
|
:00478A78 3BF1
cmp esi, ecx
:00478A7A 7E02
jle 00478A7E
:00478A7C B201
mov dl, 01
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00478A5C(U), :00478A60(C), :00478A64(U), :00478A76(U), :00478A7A(C)
|
:00478A7E 8B7008
mov esi, dword ptr [eax+08]<----下一個密碼的基地址
:00478A81 85F6
test esi, esi
:00478A83 0F95C1
setne cl <----在Trw中此句是"setnz cl" 所以cl=1
:00478A86 8B7D08
mov edi, dword ptr [ebp+08]<----下一個密碼的基地址
:00478A89 85FF
test edi, edi
:00478A8B 0F95C3
setne bl <----bl=1,第二次到此bl=0下面就不跳啦共比較了四次
:00478A8E 22CB
and cl, bl
:00478A90 75D4
jne 00478A66 <----在Trw中此句是jnz 所以跳了
:00478A92 8B7808
mov edi, dword ptr [eax+08]
:00478A95 85FF
test edi, edi
:00478A97 0F94C1
sete cl
:00478A9A 8B7508
mov esi, dword ptr [ebp+08]
:00478A9D 85F6
test esi, esi
:00478A9F 0F95C3
setne bl
:00478AA2 22CB
and cl, bl
:00478AA4 7402
je 00478AA8
:00478AA6 B201
mov dl, 01
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00478AA4(C)
|
:00478AA8 85F6
test esi, esi
:00478AAA 0F94C1
sete cl
:00478AAD 85FF
test edi, edi
:00478AAF 0F95C0
setne al
:00478AB2 22C8
and cl, al
:00478AB4 7402
je 00478AB8
:00478AB6 33D2
xor edx, edx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00478AB4(C)
|
上面的程式碼沒能將dl=02
:00478AB8 8BC2
mov eax, edx <---此處edx=0所以al=0 注意ret後就是比較啦
:00478ABA 5D
pop ebp
:00478ABB 5F
pop edi
:00478ABC 5E
pop esi
:00478ABD 5B
pop ebx
:00478ABE C3
ret
=================================================================================================
:0047999A 8B45EC
mov eax, dword ptr [ebp-14]
:0047999D 8945F0
mov dword ptr [ebp-10], eax
:004799A0 8B55F4
mov edx, dword ptr [ebp-0C]
:004799A3 8B45F0
mov eax, dword ptr [ebp-10]
:004799A6 E89DF0FFFF call
00478A48 <----上面的程式碼
:004799AB 3C02
cmp al, 02 <----呵呵~~~~~~~看下面的程式碼,根本沒有跳轉語句,跟
進後面的call找不到重點,所以說我是瞎撞的
-------------------------------------------------------------------------------------------------
在此如果將al改成02就OK啦(這裡看起來很簡單,當然啦這是結果,但想想之前的過程真的很恐怖,好多次想放棄啦,有耐心才會成功的,不過還要有點運氣,有時按著F8就睡著啦,等你睡醒後看一眼,可能關鍵處就在那等左你呢~~~~~~哈哈)NAG消失,進入程式,再次執行,完全沒問題,看看About沒我的名字,Why??程式怎麼判斷我註冊呢?登錄檔???好了,Regmon出手,程式讀了HKEY_CURRENT_USER\AppEvents\precomp,好啦,試試改名,呵呵~~~~~~~出來啦,要我註冊,其實程式並沒有儲存我的Name&Key只是如果不註冊,此鍵值就有個標誌,註冊了就改為另一個標誌(都不是明文,記不下來),氣死我啦,把它改為Sam.com~~~~咦!!眼花了????怎麼沒叫我註冊呢?再改為Sam
Von~~~~我拷~~~還是進去了,原來程式只有一個不註冊的標誌,只要鍵值不是它就行啦,這東西註冊挺貴的,不會這麼兒戲吧,不過這I不是這麼容易就能找得到的(找到也不敢亂動它吧呵呵~~~~~~~~~~~~),而且它的註冊碼演算法很複雜(個人認為),請留意下面我提供的演算法程式碼,註冊碼保護得這麼好這裡卻~~~~~這該怎麼形容呀~~~~哈哈哈哈~~~想不起~~~我語文很差的~~~~呵呵
-------------------------------------------------------------------------------------------------
:004799AD 8B4508
mov eax, dword ptr [ebp+08]
:004799B0 0F9400
sete byte ptr [eax]
:004799B3 8D45F0
lea eax, dword ptr [ebp-10]
:004799B6 E869EEFFFF call
00478824
:004799BB 8D45F4
lea eax, dword ptr [ebp-0C]
:004799BE E861EEFFFF call
00478824
:004799C3 33C0
xor eax, eax
:004799C5 5A
pop edx
:004799C6 59
pop ecx
:004799C7 59
pop ecx
:004799C8 648910
mov dword ptr fs:[eax], edx
:004799CB 68E5994700 push
004799E5
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004799E3(U)
|
:004799D0 8D45F8
lea eax, dword ptr [ebp-08]
:004799D3 BA02000000 mov edx,
00000002
:004799D8 E8AF9FF8FF call
0040398C
:004799DD C3
ret
以下應該是註冊碼演算法的核心開始,想研究密碼演算法的請看看吧,我功力還不夠~~~~~~~~~~~
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00479592(C)
|
:0047956D 8D45F8
lea eax, dword ptr [ebp-08]
:00479570 8B55FC
mov edx, dword ptr [ebp-04]<---此行執行過後d edx=>[edx]=67676767
是我輸入的註冊碼,已變為Hex的啦
:00479573 4E
dec esi
:00479574 3B72FC
cmp esi, dword ptr [edx-04]
:00479577 7205
jb 0047957E
:00479579 E80697F8FF call
00402C84
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00479577(C)
|
:0047957E 46
inc esi
:0047957F 0FB65432FF movzx
edx, byte ptr [edx+esi-01]<---註冊碼第一位edx=67
:00479584 8B9495F8FBFFFF mov edx, dword
ptr [ebp+4*edx-00000408]<--注意edx參與了運算我猜
它在查表,過了這行就d edx,二進位制??算一算原來
是67的二進位制,所以我開始怕了,這兩個call我跟進
去卻搞不懂,頭暈啦,高手請吧
:0047958B E85CA6F8FF call
00403BEC
:00479590 46
inc esi
:00479591 4B
dec ebx
:00479592 75D9
jne 0047956D
:00479594 EB12
jmp 004795A8 <---這裡跳過去後應該就是演算法的核心,高手研究一下吧
這段程式碼要執行好幾次,因為註冊碼和姓名的每一位查表運算都要經過這裡,我覺得好複雜呀,後面的程式碼我就不貼了,因為有很多call很難寫清楚,請大家反彙編後找一找吧~~~~~~~~不說啦~~~~~~我開始眼花啦~~~~~~~
13:33 2001-3-10
相關文章
- 新手請進~~~~~SN Calculator v2.2(科學計算器)破解過程~~~~~
(4千字)2001-03-08
- 財智證券結算軟體2.5 破解註冊碼分析!使用ollydbg 破解註冊動畫!高手莫入! (1千字)2001-11-20動畫
- FolderView註冊部分的計算 (13千字)2001-05-27View
- Nktools(手機工具箱)註冊碼計算處,請高手指點~~~~ (15千字)2001-03-06
- 破解音樂賀卡廠4.04,註冊碼也可用於4.10,高手勿進 (1千字)2001-08-14
- Smultron for Mac(強大的網頁文字編輯器) v12.2.5中文註冊版2020-12-17Mac網頁
- 結對專案-增強型科學計算器2015-05-14
- 《ICONSCAN 2.4》註冊碼破解 高手莫入! (3千字)2001-05-06
- 《MAGICWIN RELEASE 1.2》註冊碼破解 高手莫入! (2千字)2001-05-07
- FINAL DATA註冊碼計算 (2千字)2000-07-24
- 強大的程式碼編輯器Sublime Text for Mac註冊啟用版2023-11-27Mac
- 神秘又強大的@SpringBootApplication註解2021-04-14Spring BootAPP
- 註冊時間差計算2017-06-13
- vfp&exe1.70註冊碼計算 (2千字)2001-06-04
- 如何計算 批量檔案設定器 2.05 的註冊碼 (6千字)2000-04-24
- 《EASY MP3 2.2》的註冊碼破解 高手莫入! (2千字)2001-05-05
- 某電子書註冊破解實錄,高手莫入。 (6千字)2002-10-05
- 請教關於DremEdit2.28如何算註冊碼? (3千字)2000-07-13REM
- IP搜尋客 1.61 註冊碼計算 (2千字)2000-05-16
- estiprojm 註冊 (12千字)2001-11-08
- 強大的Git客戶端:Tower for Mac註冊啟用版2023-11-02Git客戶端Mac
- 《OFFLINE EXPLORER 1.0》的註冊碼破解 高手莫入!! (2千字)2001-05-18
- getPassword2.3註冊碼計算分析過程 (3千字)2001-11-07
- 《 ACDSEE 2.3 》的另類註冊碼破解 高手請看最後的問題(謝了)!!! (5千字)2001-05-26
- 請問各位高手這個程式能不能寫註冊器出來?還是要用窮舉法來算註冊碼?
(802字)2001-03-29
- Prism 10 for Mac 附註冊碼 強大的資料分析能力 統計分析繪圖2024-01-08Mac繪圖
- 《TxEdit 4.6》的註冊碼破解 (11千字)2001-07-28
- 功能強大的相片管理軟體ACDSee Photo Manager 12.0.342註冊碼序列號中文版2010-05-14
- Diskbase 5.11的破解和註冊演算法(俺是新手) (18千字)2001-05-21演算法
- AI助力環保遙感監測,強大算力很關鍵2019-09-15AI
- ChatGPT最詳細註冊教程+不註冊直接使用教程2023-02-09ChatGPT
- 註冊PSXVIDEO Ver1.12詳細演算法 (14千字)2001-04-11IDE演算法
- system mechanic3.5g破解註冊手記 (927字)2001-02-01
- Tower for Mac(強大的Git客戶端)10.1.1註冊啟用版2023-11-06MacGit客戶端
- Tower for Mac(強大的Git客戶端) v10.1.1註冊版2023-11-02MacGit客戶端
- SecureCRT 註冊碼啟用版最新:mac上強大的ssh工具推薦2023-12-08SecurecrtMac
- XnViewMP 註冊碼啟用版:mac電腦強大的看圖軟體2023-12-13ViewMac
- HEdit 2.0 的註冊破解過程 <<-------可能過時了高手末入
(8千字)2001-02-23