演算法分析: <獻給初學者> 之一 (4千字)
演算法分析: <獻給初學者> 之一
◆ 作 者 ◆ goodbao[P.J.CHINA]
◆軟體名稱◆
圖示更換器(ExeIco)1.63 版。下載地址:
http://www.softreg.com/download.asp?id={CD05D77E-E9F5-4445-9350-E2FFC8B4F89A}
◆破解難度◆
較難。對於初學者來說,這個是非明碼的,而且其演算法比較煩瑣,可能會覺得挺難。
◆破解簡述◆
此軟體其實與我以前的教程頗有類似之處,只是,可能大家還不習慣於F5的用法,因此破解起來難度挺大,分析演算法時也可能會被繞得頭暈腦脹。事實上,大家完全可以照搬我以前教程中的破解方法,一是巧用活用F5,二是妙用“r
fl z”這個偷天換日大法,必可建得奇功!關於F5的使用方法及含義,這裡不再贅述,請參照相關的教程,動手跟做練習就可以了。關於動態自動註冊及爆破,我們也不在這裡討論,都非常簡單。這裡只將其演算法的主要部分敘述如下。
◆演算法分析◆
0167:00403DF2 C605F0D3450001 MOV
BYTE [0045D3F0],01
0167:00403DF9 33C9
XOR ECX,ECX------------>ECX清零
0167:00403DFB
8D7D80 LEA EDI,[EBP-80]---------------------------------->
將字串‘1z1h+2a0-'0g8y*9a1n|’(此為定值)送EDI暫存器,後面計算用到,設為M。計算過程中,‘+’、‘-’、‘*’及‘|’不參與運算。
0167:00403DFE BE94474600 MOV ESI,00464794------->機器碼送ESI暫存器
0167:00403E03 8D5D98 LEA
EBX,[EBP-68]
0167:00403E06 8D4101 LEA
EAX,[ECX+01]------->EAX計數器,迴圈開始▲▲
0167:00403E09 51
PUSH ECX
0167:00403E0A B905000000
MOV ECX,05------------->ECX=$05。0167:00403E0F
99 CDQ------------------------->雙位擴充套件,即EDX清零
0167:00403E10 F7F9 IDIV
ECX---------------->EAX MOD ECX=EDX
0167:00403E12 59
POP ECX
0167:00403E13
85D2 TEST EDX,EDX------------>判斷餘數是否為0
0167:00403E15 7440 JZ
00403E57----------->為0則直接跳到後面並返回開始處重新迴圈計算過程
0167:00403E17 8A06
MOV AL,[ESI]------>AL=依次取去掉‘-’後的機器碼$
0167:00403E19 3207 XOR
AL,[EDI]------>AL=機器碼$ XOR 依次取M的$ ,結果設為M1
0167:00403E1B 0FBED0
MOVSX EDX,AL ------->EDX=M1
0167:00403E1E
8955B4 MOV [EBP-4C],EDX-->[EBP-4C]=M1
0167:00403E21 8B45B4 MOV
EAX,[EBP-4C]-->EAX=M1
0167:00403E24 51
PUSH ECX
0167:00403E25 99
CDQ -------------->EDX清零
0167:00403E26 33C2 XOR
EAX,EDX------->EAX MOR EDX=EAX=M1
0167:00403E28 B91A000000
MOV ECX,1A-------->ECX=$1A
0167:00403E2D 2BC2
SUB EAX,EDX------->EAX=M1-EDX=M1
0167:00403E2F 8BD0 MOV
EDX,EAX------->EDX=EAX=M1
0167:00403E31 C1E005
SHL EAX,05-------->EAX=M1 * 2^5 0167:00403E34
2BC2 SUB EAX,EDX------->EAX=M2-M1
設為M3
0167:00403E36 8D0482 LEA
EAX,[EDX+EAX*4]-->EAX=M3*4+M1 設為M4
0167:00403E39 C1E005
SHL EAX,05----------->EAX=M4 *
2^5 設為M5
0167:00403E3C 03C2
ADD EAX,EDX---------->EAX=M5+M1 設為M6
0167:00403E3E
03C0 ADD EAX,EAX---------->EAX=EAX+EAX=EAX*2
設為M7
0167:00403E40 99 CDQ
----------------->EDX清零
0167:00403E41 F7F9
IDIV ECX----------->EDX=M7 MOD ECX=M7 MOD $1A
設為M8。
0167:00403E43 0FBE03 MOVSX
EAX,BYTE [EBX]--->依次取輸入的註冊碼$
0167:00403E46 83C241
ADD EDX,BYTE
![演算法分析: <獻給初學者>
之一 (4千字)](https://i.iter01.com/images/f9fd220afdd1a829d7741d0f239ce6040b6641e734d34b3c17db2e8607e6c6b9.png)
![演算法分析: <獻給初學者>
之一 (4千字)](https://i.iter01.com/images/262c347b5ab96a06ebf029ce67266f328e74af83219952c08e89a9c4fecf6fcd.png)
![演算法分析: <獻給初學者>
之一 (4千字)](https://i.iter01.com/images/b0a28462bd0b9bfb00878ceccf46180022557ea129b266028b484c2bd1bc7d6b.png)
![演算法分析: <獻給初學者>
之一 (4千字)](https://i.iter01.com/images/a3defdb46cb9859505f4d4060a4bc344175a3dd59e0d9621936c345a34b4e9a8.png)
|
|
登入後即可評論 |
相關文章
- RCA---給初學者的根本原因分析案例2023-02-28
- 給初學者的Web安全指南2018-12-05Web
- 給初學者的 fc 示例教程2018-04-25
- 給初學者的 type 命令教程2018-04-06
- 給初學者看的 shuf 命令教程2018-05-14
- [譯] 給初學者的 Jupyter Notebook 教程2018-05-14
- 通訊框架 t-io 學習——給初學者的Demo:ShowCase設計分析2024-03-14框架
- [譯] 為 GitHub 專案做出貢獻的初學者指南2019-03-02Github
- 給初學者的RxJava2.0教程(三)2019-02-28RxJava
- 給初學者的RxJava2.0教程(七)2019-02-28RxJava
- 給初學者的 RxJava2.0 教程 (四)2019-03-04RxJava
- 寫給初學者的Linux餐前小菜2018-08-08Linux
- [譯]寫給初學者的Tensorflow介紹[2]2019-03-27
- 給Java初學者福利——Java語法基礎2019-01-19Java
- 給初學者的以太坊路線圖指南2018-04-07
- 一個牛人給Java初學者的建議2018-04-28Java
- 一份送給Java初學者的指南2018-06-26Java
- 給Python初學者的最好練手專案2018-04-04Python
- Linux入門(2)_給初學者的建議2018-04-06Linux
- c++ 中vector 常見用法(給初學者)2021-11-18C++
- 大資料學習入門難,給初學者支招2018-08-27大資料
- 零基礎學Java?給初學者的建議2021-08-13Java
- 給初學者一些學習Python的建議2021-09-11Python
- 給初學者的DLL Side Loading的UAC繞過2020-08-19IDE
- 想給視訊新增特效初學者怎麼辦?2022-03-11特效
- 寫給 Linux 初學者的一封信2021-01-22Linux
- 韓語學習經驗總結,給韓語初學者指路2018-03-12
- 寫給運營同學和初學者的SQL入門教程2018-12-27SQL
- 給Python初學者的一些程式設計技巧2020-02-15Python程式設計
- 寫給初學者的Linux errno 錯誤碼機制2021-11-10Linux
- SAP UI5 初學者教程之一:Hello World 試讀版2021-10-07UI
- 初學者學Java常遇到的問題,我都給你回答了!2020-02-01Java
- 給Java初學者的十條小建議,快來收藏吧!2021-11-30Java
- 給Java開發初學者的10個學習建議,助你學習事半功倍!2019-12-13Java
- 給Java開發初學者的10個學習建議,助你學習事半功倍2019-10-24Java
- 獻給 Dapper 使用者的一份禮物2020-12-07APP
- 寫給大資料開發初學者的話 | 附教程(轉)2019-04-16大資料
- 初學者Mybatis的初級使用2018-11-19MyBatis
- Java初學者必備4大核心基礎知識2019-05-20Java