電子書製作軟體
標 題:電子書製作軟體
發信人:飛狐
時 間:2002/08/18 07:56pm
詳細資訊:
(由於時間倉促,難免有不周之處。)
電子書製作軟體介紹:我想熟悉電子書製作的人,應該知道這個軟體。我喜歡它,是我常用的
一個工具。此軟體是用aspack加的殼,很容易去的。未註冊版本不能編輯和編譯大於15個節點的專案。此次pj只是為了學習它的演算法。為了作者的權益,我想各位如果喜歡這個軟體
的話,請購買正版軟體,以支援作者繼續開發下去。同時也請作者海涵。
使用工具:trw2000。win32dasm(我用它只是為了取它的程式碼)
你可以設中斷BPX
HMEMCPY 剩下怎麼追法就不用我說了吧。
:004F2440 8BD8
mov ebx, eax
:004F2442 8B55FC
mov edx, dword ptr [ebp-04]
:004F2445
8BC3 mov
eax, ebx
:004F2447 E89464FFFF call
004E88E0
:004F244C C6434400
mov [ebx+44], 00
*
Possible StringData Ref from Code Obj ->"F0E1"此字串的作用是與你的使用者名稱所計算
的數值相異或。
|
:004F2450 BA70254F00
mov edx, 004F2570此處地址存的就是F0E1
:004F2455 8BC3
mov eax, ebx
:004F2457
E82864FFFF call 004E8884
:004F245C
8BC3 mov
eax, ebx
:004F245E E81967FFFF call
004E8B7C按F8進入吧。
:004F2463 837B3400
cmp dword ptr [ebx+34], 00000000
:004F2467 0F84CB000000
je 004F2538
:004F246D 8B4334
mov eax, dword ptr [ebx+34]真碼
:004F2470
8B55F8 mov edx,
dword ptr [ebp-08]假碼
:004F2473 E83429F1FF
call 00404DAC比較二者是否相等。
如果你單純想找到註冊碼,那麼至此就可以了,如果你想學習它的演算法,就請繼續
往下看。
*******************************************************************
註冊演算法:
首先是計算註冊碼的前兩位。
:004E89AA
BF64000000 mov edi, 00000064它實際就是註冊碼的前兩位
:004E89AF
8D45F0 lea eax,
dword ptr [ebp-10]
:004E89B2 50
push eax
:004E89B3 897DDC
mov dword ptr [ebp-24], edi
:004E89B6 C645E000
mov [ebp-20], 00
:004E89BA
8D55DC lea edx,
dword ptr [ebp-24]
:004E89BD 33C9
xor ecx, ecx
*
Possible StringData Ref from Code Obj ->"%1.2x"
|
:004E89BF B8688B4E00
mov eax, 004E8B68
:004E89C4 E8CB17F2FF
call 0040A194按F8進入吧。
欲知它的作用請看下文
:00409F52 80F944
cmp cl, 44
:00409F55
7415 je 00409F6C
:00409F57
80F955 cmp cl, 55
:00409F5A
7422 je 00409F7E
:00409F5C
80F958 cmp cl, 58
:00409F5F
0F8530FFFFFF jne 00409E95
:00409F65
B910000000 mov ecx, 00000010除數
:00409F6A
EB17 jmp
00409F83
:00409F86 31D2
xor edx,
edx為零
:00409F88 F7F1
div ecx EAX為64
:00409F8A 80C230
add dl, 30餘數DL與30相加
:00409F8D 80FA3A
cmp dl, 3A
:00409F90 7203
jb 00409F95
:00409F92
80C207 add dl, 07
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00409F90(C)
|
:00409F95
4E dec
esi串首地址減1
:00409F96 8816
mov byte ptr [esi], dl把結果存入ESI中
:00409F98 09C0
or eax, eax為剛才計算時的商。
:00409F9A
75EA jne
00409F86不相等就繼續計算,
總結:此部分程式碼首先是計算註冊碼的第二位,然後再計算第一位,結果是64
:00409F9C 8D4D9F
lea ecx, dword ptr [ebp-61]
:00409F9F
29F1 sub
ecx, esi
:00409FA1 8B55DC
mov edx, dword ptr [ebp-24]
:00409FA4 83FA10
cmp edx, 00000010
:00409FA7 7601
jbe 00409FAA
:00409FA9
C3 ret
***************************
第二步是根據你的使用者名稱以及字串F0E1計算剩下的幾位註冊碼。注意所計算的ASCII值就是註冊碼,
使用者名稱的位數乘以2就是註冊碼的位數。
0167:004E89DC
MOV DWORD [EBP-14],01
0167:004E89E3 MOV
EAX,[EBP-04]你所輸入的使用者名稱
0167:004E89E6 MOV EDX,[EBP-14]使用者名稱的序號。
0167:004E89E9
MOVZX EAX,BYTE [EAX+EDX-01]取使用者名稱中的一個位元組
0167:004E89EE ADD
EAX,EDI EDI是上一次計算出的密碼。
0167:004E89F0 MOV
ECX,FF除數
0167:004E89F5 CDQ
0167:004E89F6 IDIV
ECX
0167:004E89F8 MOV EBX,EDX餘數存入EBX中
0167:004E89FA
CMP ESI,[EBP-0C] ESI是字串F0E1的序號,
[EBP-0C]是F0E1這個字串的個數(也就是4)
0167:004E89FD
JNL 004E8A02大於就跳
0167:004E89FF INC
ESI序號加1
0167:004E8A00 JMP SHORT 004E8A07
0167:004E8A02
MOV ESI,01重新賦值為1
0167:004E8A07 MOV
EAX,[EBP-08]<==為字串F0E1
0167:004E8A0A MOVZX EAX,BYTE
[EAX+ESI-01]從字串F0E1中取一個字元。
0167:004E8A0F XOR EBX,EAX二者相互異或。執行後EBX的值就是註冊碼。
0167:004E8A11
LEA EAX,[EBP-28]
0167:004E8A14 PUSH
EAX
0167:004E8A15 MOV [EBP-24],EBX把註冊碼存入[EBP-24]中。
0167:004E8A18
MOV BYTE [EBP-20],00
0167:004E8A1C LEA
EDX,[EBP-24]
0167:004E8A1F XOR ECX,ECX
0167:004E8A21
MOV EAX,004E8B68
0167:004E8A26 CALL
0040A194
0167:004E8A2B MOV EDX,[EBP-28]
0167:004E8A2E
LEA EAX,[EBP-10]
0167:004E8A31 CALL
00404C70
0167:004E8A36 MOV EDI,EBX
0167:004E8A38
INC DWORD [EBP-14]
0167:004E8A3B DEC
DWORD [EBP-1C]
0167:004E8A3E JNZ 004E89E3
舉例說明:使用者名稱:abcde(它們的ASCII值分別是61、62、63、64、65)
一、首先按照第一步的方法計算它的前兩位註冊碼即64。
二、根據你的使用者名稱以及字串F0E1計算後幾位註冊碼。
有幾位使用者名稱就得計算幾次。
1、計算3、4位的密碼。
取使用者名稱的首字a(61),與前一步的註冊碼(64)相加,結果為c5;然後c5除以FF,
餘數為c5,最後取F0E1中的F(ASCII值為46)相異或,結果為83,這就是第三、四
位的註冊碼。
2、計算5、6位的密碼。
取使用者名稱的第二個字元b(62),與前一步的註冊碼(83)相加,結果為e5;然後e5除以FF,
餘數為e5,最後取F0E1中的0(ASCII值為30)相異或,結果為D5,這就是第五、六
位的註冊碼。
3、計算7、8位的密碼。
取使用者名稱的第三個字元c(63),與前一步的註冊碼(D5)相加,結果為138;然後138除以FF,
餘數為39,最後取F0E1中的E(ASCII值為45)相異或,結果為7C,這就是第七、八
位的註冊碼。
4、計算9、10位的密碼。
取使用者名稱的第四個字元d(64),與前一步的註冊碼(7C)相加,結果為E0;然後E0除以FF,
餘數為E0,最後取F0E1中的1(ASCII值為31)相異或,結果為D1,這就是第九、十
位的註冊碼。
5、計算11、12位的密碼。
取使用者名稱的第五個字元e(65),與前一步的註冊碼(D1)相加,結果為136;然後136除以FF,
餘數為37,因為字串F0E1已經迴圈完畢,所以重新設指標,取F0E1中的F(ASCII值為46)相異或,結果為71,這就是第11、12
位的註冊碼。
也就是:使用者名稱:abcde
註冊碼:6483D57CD171
當使用者名稱為漢字時與此同。
另:因特殊原因,軟體名稱隱去。如果想知道這個軟體的名稱及下載地址請給我發訊息。
相關文章
- Jutoh(電子書編輯製作軟體)2020-12-04
- 使用Gitbook製作電子書2014-10-21Git
- Jutoh for Mac(電子書製作軟體)支援Big Sur v3.03.10中文註冊版2020-12-18Mac
- Epubor Ultimate for mac電子書轉換軟體2021-02-24Mac
- iOS製作電子簽章2017-12-14iOS
- Mac電影字幕製作軟體——iSubtitle for Mac2020-05-11Mac
- 《細說網頁製作》pdf電子書免費下載2021-07-03網頁
- 用Python抓取漫畫並製作mobi格式電子書2019-01-04Python
- 製作商場電子地圖的軟體,商場導購圖怎麼做2021-05-12地圖
- Jutoh for Mac(電子書製作工具)2020-12-01Mac
- Jutoh for Mac電子書製作工具2020-12-04Mac
- 電子書定製建立工具Vellum2022-07-04
- camLAPSE for mac(電影延時製作軟體)2022-02-21Mac
- 【電子沙漏】製作相關例程2024-10-11
- 《軟體測試自動化》電子書下載2007-10-08
- Mac電子書製作工具:Jutoh for Mac2021-12-13Mac
- E電子圖書製作軟體E-ditor 2破解手記暨回覆灰松鼠朋友的來信
(2千字)2000-12-28
- 智慧化園區電子地圖專業製作公司,智慧園區電子地圖怎麼製作?2022-03-10地圖
- 價目表製作報價單製作軟體2019-02-24
- blender for Mac動畫製作軟體2021-01-15Mac動畫
- mac動畫特效製作軟體2021-10-27Mac動畫特效
- 電子創客案例手冊 Arduino和Raspberry Pi電子製作實戰2018-10-29UI
- 流程圖繪製軟體,流程圖製作軟體哪個好2019-09-19流程圖
- 用PPT製作精美的專業電子相簿2016-09-29
- 企業電子商刊(雜誌)製作軟體國際標準 iebook超級精靈釋出2007-04-20
- Submerge for Mac字幕製作軟體2021-08-11Mac
- Submerge for Mac 字幕製作軟體2021-08-29Mac
- DoubleTake for Mac 全景圖製作軟體2022-06-13Mac
- DoubleTake for Mac(全景圖製作軟體)2021-11-10Mac
- 專業音樂製作軟體2021-11-10
- 教學工作表製作軟體2021-11-02
- 分享電子書2019-11-03
- 電子書,UML播種機--物件導向軟體工程文件庫 (轉)2007-12-04物件軟體工程
- 安卓觸控手勢翻頁製作電子相簿2018-11-05安卓
- 揭祕電子遊戲背後音效製作的故事2018-10-30遊戲
- 如何使用Akka Serverless製作電子商務應用?2021-11-16Server
- 怎麼製作地圖分佈圖,要製作電子地圖怎麼做2021-07-07地圖
- 有什麼製作軟體可以製作QQ鬥圖表情包2018-11-19