IrfanView 序號產生器分析(初級版) (13千字)
初學解密,很想做一個 KeyGen,這是低階菜鳥向高階菜鳥升級的必經之路。於是駕貓尋得一看圖軟體
IfanView 效果不錯,功能強大,可和 ACDSee
相媲美。這個軟體不需要註冊即可使用其全部功能,不過他
還是設定了註冊選項,註冊成功後,在關於對話方塊中就有你的大名了。正好那他開刀。拿寶刀 Trw2000
。
下 bpx hmemcpy,截下後 bc *,再 pmodule,這時已得到輸入的名字,F10 跟下去,又得到輸入的假註冊
碼(d
eax 看看,裡面放著輸入資料的長度)。再跟下去領空會進入系統核心,下 pmodule 跳出來,往下
走來到一個迴圈,別管它,用 g 命令跳過去,接下來就是本文的正題了:(順便提一下,姓名必須大於
2
各字元且小於 85 個字元。仔細看就會發現)
..................................
0167:0044FC1E
LEA ECX,[ESP+11D0]----放入你輸入的假註冊碼
0167:0044FC25
LEA EDX,[ESP+10D0]----放入你輸入的名字
0167:0044FC2C PUSH
ECX
0167:0044FC2D PUSH EDX
0167:0044FC2E
CALL 00435F40----應該有點感覺吧,真正的註冊碼就在裡面產生
//這個CALL下面的內容我就省略了,應位於主題無關。
...................................
0167:00435F40 MOV
EAX,[ESP+08]----從上面的CALL跳過來的。開工哦^o^
0167:00435F44 SUB
ESP,BYTE +14
0167:00435F47 PUSH EBX
0167:00435F48 PUSH EBP
0167:00435F49 PUSH
ESI
0167:00435F4A PUSH EDI
0167:00435F4B
PUSH EAX
0167:00435F4C XOR EBX,EBX
0167:00435F4E CALL 004B0863----這個CALL可能有用,不過隨叫我們還是菜鳥,別管它,抓住關鍵最重要
0167:00435F53 MOV ESI,[ESP+2C]
0167:00435F57
MOV EBP,EAX
0167:00435F59 MOV
EDI,ESI
0167:00435F5B OR ECX,BYTE -01
0167:00435F5E
XOR EAX,EAX
0167:00435F60 ADD
ESP,BYTE +04
0167:00435F63 XOR EDX,EDX
0167:00435F65
REPNE SCASB
0167:00435F67 NOT ECX
0167:00435F69
DEC ECX
0167:00435F6A TEST ECX,ECX
0167:00435F6C JNG 00435F85
0167:00435F6E
MOVSX ECX,BYTE [EDX+ESI]----從這裡開始工作哦
0167:00435F72 ADD
EBX,ECX
0167:00435F74 MOV EDI,ESI
0167:00435F76 OR ECX,BYTE -01
0167:00435F79
XOR EAX,EAX
0167:00435F7B INC
EDX
0167:00435F7C REPNE SCASB
0167:00435F7E NOT
ECX
0167:00435F80 DEC ECX
0167:00435F81
CMP EDX,ECX----EDX放名字的長度
0167:00435F83 JL
00435F6E----將名字的各個ASCII碼相加後放入EBX
0167:00435F85 MOV
EAX,0104----以下各部生成密文
0167:00435F8A PUSH
BYTE +0A
0167:00435F8C SUB EAX,EBX
0167:00435F8E
CDQ
0167:00435F8F XOR EAX,EDX
0167:00435F91 SUB EAX,EDX
0167:00435F93 ADD
EAX,014C
0167:00435F98 LEA EDX,[EAX*8+00]
0167:00435F9F SUB EDX,EAX
0167:00435FA1
LEA ECX,[EAX+EDX*4]
0167:00435FA4 LEA
EDX,[ESP+14]
0167:00435FA8 PUSH EDX
0167:00435FA9
LEA ESI,[EAX+ECX*2]
0167:00435FAC SHL
ESI,03
0167:00435FAF PUSH ESI----到此為止輸入? esi後看到的十進位制數即為密文
0167:00435FB0 CALL 004BB8D4----處理密文的有效性,並且將十進位制密文轉換為ASCII碼
0167:00435FB5 ADD ESP,BYTE +0C
0167:00435FB8
CMP ESI,000F423F----檢視十進位制的密文是否大於999999按它的演算法大於999999的
//可能性不大。不過我還是寫了C原始碼。你可以忽略不管。
0167:00435FBE JA
NEAR 004360B3----大就跳,一般是小
0167:00435FC4 MOV
CL,[ESP+14]----開始進行密文資料的移位,大致順序是:(第一位記為0)
//第4位到第6位,第5位到第8位,第3位到第5位,
//第2位到第3位,第1位到第2位
0167:00435FC8 MOV
AL,[ESP+15]
0167:00435FCC MOV DL,[ESP+13]
0167:00435FD0 MOV [ESP+16],CL
0167:00435FD4
MOV CL,[ESP+11]
0167:00435FD8 MOV
[ESP+18],AL
0167:00435FDC MOV AL,[ESP+12]
0167:00435FE0 MOV [ESP+15],DL
0167:00435FE4
MOV [ESP+12],CL
0167:00435FE8 MOV
ECX,[ESP+14]
0167:00435FEC AND ECX,FF----和上面的一句加起來其實就是一句MOV
CL,[ESP+14]。這樣的語句後面還
//有,要注意哦。
0167:00435FF2 MOV
[ESP+13],AL-------資料移位結束,多看看就明白了^_^
0167:00435FF6 MOV
EAX,ECX----ECX裡放的是第4位,不瞭解就再仔細看看上面的資料移位方法
0167:00435FF8
SHL EAX,05----接下來是一大堆無聊的操作,大家都是菜鳥,每句用C語言表示就可以了
0167:00435FFB
SUB EAX,ECX
0167:00435FFD MOV
ECX,[ESP+18]
0167:00436001 AND ECX,FF
0167:00436007
LEA EDX,[EAX+EAX*2]----無聊,不就是EAX*3嗎!_^
0167:0043600A
LEA EAX,[ECX+ECX*4]
0167:0043600D SHL
EAX,03
0167:00436010 SUB EAX,ECX
0167:00436012
SUB EAX,EDX
0167:00436014 CDQ
----把EAX的符號擴充套件到EDX中去(若EAX為負,則EDX為-1,否則為0)後面
//也有這樣的語句
0167:00436015 MOV ECX,EAX
0167:00436017
XOR ECX,EDX
0167:00436019 SUB
ECX,EDX
0167:0043601B LEA EAX,[ECX+ECX*4]又來了,寫成C語言的時候可別範傻
0167:0043601E SHL EAX,03
0167:00436021
SUB EAX,ECX
0167:00436023 MOV
ECX,09
0167:00436028 CDQ
0167:00436029 IDIV
ECX
0167:0043602B MOV EAX,[ESP+13]
0167:0043602F AND EAX,FF
0167:00436034 ADD
DL,30
0167:00436037 MOV [ESP+17],DL
0167:0043603B LEA EDX,[EAX+EAX*2]
0167:0043603E
SHL EDX,04
0167:00436041 SUB
EDX,EAX
0167:00436043 MOV EAX,[ESP+15]
0167:00436047
AND EAX,FF
0167:0043604C LEA
ECX,[EAX+EAX*8]
0167:0043604F LEA EAX,[EAX+ECX*4]
0167:00436052 LEA EAX,[EDX+EAX*2]
0167:00436055
CDQ
0167:00436056 XOR EAX,EDX
0167:00436058 SUB EAX,EDX
0167:0043605A LEA
ECX,[EAX+EAX*8]
0167:0043605D LEA
EAX,[EAX+ECX*4]
0167:00436060 MOV ECX,09
0167:00436065
SHL EAX,1
0167:00436067 CDQ
0167:00436068
IDIV ECX
0167:0043606A MOV ECX,[ESP+10]
0167:0043606E AND ECX,FF
0167:00436074
LEA EAX,[ECX+ECX*2]
0167:00436077 LEA
EAX,[EAX+EAX*8]
0167:0043607A SHL EAX,1
0167:0043607C SUB EAX,ECX
0167:0043607E
ADD DL,30
0167:00436081 MOV
[ESP+14],DL
0167:00436085 MOV ECX,[ESP+11]
0167:00436089 AND ECX,FF
0167:0043608F LEA
EDX,[ECX*8+00]
0167:00436096 SUB
EDX,ECX
0167:00436098 LEA EDX,[EDX+EDX*4]
0167:0043609B SUB EAX,EDX
0167:0043609D CDQ
0167:0043609E MOV ECX,EAX
0167:004360A0
XOR ECX,EDX
0167:004360A2 SUB
ECX,EDX
0167:004360A4 LEA EAX,[ECX+ECX*2]
0167:004360A7 LEA EAX,[EAX+EAX*8]
0167:004360AA
SHL EAX,1
0167:004360AC SUB
EAX,ECX----慢慢長路。吾等菜鳥,就把上面的彙編語句
//一句一句翻成C語句吧!!!_!
0167:004360AE JMP
004361A8----跳過去檢測生成的註冊碼的正確性
0167:004360B3 MOV
AL,[ESP+15]----密文大於999999時的處理方法,和前面的有些相識
0167:004360B7 MOV
DL,[ESP+16]
0167:004360BB MOV CL,[ESP+14]
0167:004360BF MOV [ESP+16],AL
0167:004360C3
MOV AL,[ESP+11]
0167:004360C7 MOV
[ESP+18],DL
0167:004360CB MOV DL,[ESP+12]
0167:004360CF MOV [ESP+12],AL
0167:004360D3
MOV EAX,[ESP+16]
0167:004360D7 MOV
[ESP+15],CL
0167:004360DB AND EAX,FF
0167:004360E0 MOV [ESP+13],DL
0167:004360E4
MOV ECX,EAX
0167:004360E6 SHL
ECX,06
0167:004360E9 SUB ECX,EAX
0167:004360EB
MOV EAX,[ESP+18]
0167:004360EF AND
EAX,FF
0167:004360F4 LEA EAX,[EAX+EAX*8]
0167:004360F7 SHL EAX,02
0167:004360FA
SUB EAX,ECX
0167:004360FC MOV
ECX,09
0167:00436101 CDQ
0167:00436102 XOR
EAX,EDX
0167:00436104 SUB EAX,EDX
0167:00436106 LEA EAX,[EAX+EAX*8]
0167:00436109
SHL EAX,02
0167:0043610C CDQ
0167:0043610D IDIV ECX
0167:0043610F ADD
DL,30
0167:00436112 MOV [ESP+17],DL
0167:00436116 MOV EAX,[ESP+14]
0167:0043611A
AND EAX,FF
0167:0043611F ADD
EAX,BYTE +20
0167:00436122 LEA EDX,[EAX*8+00]
0167:00436129 SUB EDX,EAX
0167:0043612B LEA
EAX,[EAX+EDX*4]
0167:0043612E LEA
ECX,[EAX+EAX*2]
0167:00436131 MOV EAX,[ESP+13]
0167:00436135 AND EAX,FF
0167:0043613A
LEA EDX,[EAX+EAX*4]
0167:0043613D SHL
EDX,03
0167:00436140 SUB EDX,EAX
0167:00436142
LEA EAX,[ECX+EDX*2]
0167:00436145 CDQ
0167:00436146 XOR EAX,EDX
0167:00436148
SUB EAX,EDX
0167:0043614A LEA
ECX,[EAX*8+00]
0167:00436151 SUB ECX,EAX
0167:00436153
LEA EAX,[EAX+ECX*4]
0167:00436156 MOV
ECX,09
0167:0043615B LEA EAX,[EAX+EAX*2]
0167:0043615E CDQ
0167:0043615F IDIV
ECX
0167:00436161 MOV EAX,[ESP+10]
0167:00436165 AND EAX,FF
0167:0043616A ADD
DL,30
0167:0043616D MOV [ESP+14],DL
0167:00436171 LEA EDX,[EAX*8+00]
0167:00436178
SUB EDX,EAX
0167:0043617A LEA
EAX,[EAX+EDX*4]
0167:0043617D MOV EDX,[ESP+11]
0167:00436181 AND EDX,FF
0167:00436187
MOV ECX,EDX
0167:00436189 SHL
ECX,04
0167:0043618C ADD ECX,EDX
0167:0043618E
SHL EAX,1
0167:00436190 LEA
ECX,[ECX+ECX*4]
0167:00436193 SUB EAX,ECX
0167:00436195 CDQ
0167:00436196 XOR
EAX,EDX
0167:00436198 SUB EAX,EDX
0167:0043619A
LEA EDX,[EAX*8+00]
0167:004361A1 SUB
EDX,EAX
0167:004361A3 LEA EAX,[EAX+EDX*4]
0167:004361A6 SHL EAX,1
0167:004361A8
CDQ ---上面的正確性檢測跳轉語句跳過來的。這裡也是一條語句別忘哦!
0167:004361A9 MOV ECX,09
0167:004361AE
MOV BYTE [ESP+19],00----加上字串結尾符'\0',這裡可知註冊碼必為10位
0167:004361B3
IDIV ECX
0167:004361B5 ADD DL,30
0167:004361B8 MOV [ESP+11],DL
0167:004361BC
LEA EDX,[ESP+10]
0167:004361C0 PUSH
EDX----一般來說到這裡就能找到正確的註冊碼了,打d esp+10看看
0167:004361C1 CALL
004B0863----這裡開始對生成的註冊碼進行正確性檢測。不過用處不大,不需要
//為他編寫源程式,通常都能校驗透過(隨叫我是菜鳥,只要把問題大
//致解決就可以了,想要進一步瞭解的話,自己進去就是了吧)
0167:004361C6 ADD ESP,BYTE
|
|
登入後即可評論 |
相關文章
- 序號產生器制分析: (1千字)2001-11-19
- 一個PostScript(RoPS)序號產生器分析。初學者看。 (21千字)2001-07-08
- winzip序號產生器 (1千字)2001-04-12
- supercapture3.0的版序號產生器!
(4千字)2002-04-23APT
- 製作mIRC6.02序號產生器(給別人寫的初學者序號產生器教材) (14千字)2015-11-15
- 美萍安全衛士V8.45序號產生器制作分析過程,及序號產生器! (11千字)2001-10-28
- winzip的通用序號產生器 (2千字)2001-12-10
- 《DesktopX v1.0》PJ 記錄 + 序號產生器原始碼 (13千字)2015-11-15原始碼
- 序號產生器合集2024-03-17
- NewsReactor 1.0 Build 5009的序號產生器制分析 (16千字)2001-08-07ReactUI
- Turbo Note+ V4.4序號產生器制分析 (19千字)2001-11-07
- WinAmp V2.11的序號產生器制分析(一)(初學者必讀) (12千字)2001-04-08
- Gif2Swf Ver 2.1 TC20序號產生器 && MASM32序號產生器 (4千字)2001-12-10ASM
- BadCopy99V2.0序號產生器(MASM版) --by fpx
(4千字)2002-07-22ASM
- SWF探索者XP 1.2(swfexplorer)破解+分析+序號產生器
(18千字)2002-04-14
- EmEditor V3.29和它的序號產生器 (12千字)2015-11-15
- Myeclipse 6.5 序號產生器2020-04-06Eclipse
- Advanced Dialer v2.5演算法分析(附序號產生器) (3千字)2002-04-17演算法
- 【原創】FileRecoveryAngel 演算法分析+序號產生器2015-11-15演算法
- HappyIcon序號產生器TC原始碼 (1千字)2001-04-08APP原始碼
- NetTalk破解與序號產生器(高手勿進) (10千字)2001-09-20
- 橋牌軟體Deep Finesse的序號產生器 (1千字)2015-11-15
- 豪傑超級解霸3000英雄版序號產生器(MASM32),比較老 (6千字)2015-11-15ASM
- SitMan v2.0 beta版的序號產生器(TC2.0編譯) (3千字)2001-10-28編譯
- 分享一個navicat序號產生器2024-04-02
- Universe 1.63註冊碼生成分析及序號產生器原碼(上) (2千字)2001-11-12
- Kalua Cocktails 1.1完全破解,內附彙編序號產生器(用序號產生器編寫器,並有它的使用教程)
(22千字)2002-02-27AI
- win10如何執行序號產生器_win10怎麼執行序號產生器2020-08-28Win10
- 如何製作VB程式記憶體序號產生器--國內某軟體的序號產生器(隱去軟體資訊)
(14千字)2002-08-04記憶體
- Audio compositor註冊碼及序號產生器 (5千字)2002-04-06
- 另類序號產生器(一MFC程式的改造心得) (3千字)2001-09-10C程式
- 用keymake制序號產生器實戰~高手莫入~~ (1千字)2001-09-30
- 破解accoustica
2.21(帶序號產生器)----讓高手見笑了:) (11千字)2002-03-31
- Resource
Builder 1.1.0 完全破解~~附彙編序號產生器 (10千字)2015-11-15UI
- 守財奴1.9註冊分析+序號產生器原始碼2015-11-15原始碼
- 超級公式計算器 V4.5x 演算法分析+序號產生器原始碼2015-11-15公式演算法原始碼
- 網頁加密器(HTMLEncryptor1.1)破解及序號產生器 (1千字)2001-04-22網頁加密HTML
- 俠客系統修改器 V1.21 序號產生器 (2千字)2001-09-01