檔案閱讀器readbook v1.41 c (9千字)
檔案閱讀器readbook v1.41 crack by happyhackwang
軟體名稱:檔案閱讀器readbook v1.41
軟體功能:語音閱讀文字
註冊方式:name+serial
作者:餘民
作者主頁:http://ReadBook.126.com
作者郵箱:ReadBook@126.COM
破解者:happyhackwang
郵箱:happyhackwang@263.net
OICQ:4696993(不線上^^)
註冊方式:Patch(誰想寫序號產生器,自己寫吧!演算法見後)
工具:softice,w32dasm,my head,ultraedit(to write this article)
特別感謝:w32dasm作者,以及patch它的各位
反彙編以後,看到了註冊失敗的資訊提示的字串,向上看:
:0040A10F 3975FC
cmp dword ptr [ebp-04], esi ;這是關鍵
:0040A112 741D
je 0040A131
......
:0040A12C 3975FC
cmp dword ptr [ebp-04], esi ;關鍵的比較
:0040A12F 7547
jne 0040A178 ;相等則註冊,不等則失敗
[ebp-4]裡的數是怎麼來的?
:0040A09E C745F412320000 mov [ebp-0C], 00003212
;預定義的
:0040A0A5 C745E434120000 mov [ebp-1C], 00001234
;
:0040A0AC C745E888880000 mov [ebp-18], 00008888
;
:0040A0B3 C745F023230000 mov [ebp-10], 00002323
;
:0040A0BA E878D20000 call
00417337
:0040A0BF 83C410
add esp, 00000010
:0040A0C2 85C0
test eax, eax
:0040A0C4 7524
jne 0040A0EA
:0040A0C6 8D45F0
lea eax, dword ptr [ebp-10] ;2323
:0040A0C9 50
push eax
:0040A0CA 8D45E8
lea eax, dword ptr [ebp-18] ;8888
:0040A0CD 50
push eax
:0040A0CE 8D45E4
lea eax, dword ptr [ebp-1C] ;1234
:0040A0D1 50
push eax
:0040A0D2 8D45F4
lea eax, dword ptr [ebp-0C] ;3212
:0040A0D5 50
push eax
* Possible StringData Ref from Data Obj ->"C:\"
:0040A0D6 6860374600 push
00463760
* Reference To: KERNEL32.GetDiskFreeSpaceA, Ord:0100h
|
:0040A0DB FF15F8114500 Call dword
ptr [004511F8]
:0040A0E1 8B45F0
mov eax, dword ptr [ebp-10] ;總簇數
:0040A0E4 0FAF45F4
imul eax, dword ptr [ebp-0C] ;與每簇的扇區數乘
:0040A0E8 EB19
jmp 0040A103
......
:0040A103 F7D0
not eax
:0040A105 3145FC
xor dword ptr [ebp-04], eax ;這裡
看看GetDiskFreeSpace API的入口引數
?lpRootPathName
00463760
(根目錄)
?lpSectorsPerCluster ebp-0C
(每簇的扇區數目的指標)
?lpBytesPerSector ebp-1C
(每個扇區位元組數的指標)
?lpNumberOfFreeClusters ebp-18
(空閒的簇數的指標)
?lpTotalNumberOfClusters ebp-10
(總簇數的指標)
esi的數是怎麼來的?
:0040A03F E8829B0200 call
00433BC6
:0040A044 8B8548FFFFFF mov eax, dword
ptr [ebp+FFFFFF48] ;[72F8E8]@1
:0040A04A 8B8D4CFFFFFF mov ecx, dword
ptr [ebp+FFFFFF4C] ;[72F8EC]@2
:0040A050 8BB544FFFFFF mov esi, dword
ptr [ebp+FFFFFF44] ;[72F8E4]@3
:0040A056 03C1
add eax, ecx ;
:0040A058 038550FFFFFF add eax, dword
ptr [ebp+FFFFFF50] ;[72F8F0]@4
:0040A05E 69F631750000 imul esi,
00007531 ;
:0040A064 69C031750000 imul eax,
00007531 ;
* Possible StringData Ref from Data Obj ->"BIN_OR_TEXT"
|
:0040A06A C704240C334600 mov dword ptr [esp],
0046330C
:0040A071 68B5000000 push
000000B5
:0040A076 53
push ebx
:0040A077 2BF0
sub esi, eax ;這裡
[72F8E4]是存放名字字串的地方
所以@1是偏移地址的第四個位元組開始的4個位元組
@2 八
4
@3 零
4
@4 十二
4
例如:名字輸入 crack readbook
@1就是k re
@2就是adbo
@3就是crac
@4就是ok
名字字元不夠長的補以空格(ASCII 20)
自我病毒監測功能的實現:開啟RBBackup.DAT
|
:00417F6A FF1564124500 Call dword
ptr [00451264] ;FindCloseChangeNotification()
:00417F70 395DD4
cmp dword ptr [ebp-2C], ebx ;API函式
:00417F73 742D
je 00417FA2
:00417F75 6A14
push 00000014
* Possible StringData Ref from Data Obj ->"這裡是ReadBOOK的自我修復功能"
|
:00417F77 68B0594600 push
004659B0
* Possible StringData Ref from Data Obj ->" ReadBook察覺到自身有改變,如果不是檔案損壞"
->"的就是讓病毒感染了!
一般說來,硬碟很少損*"
->"擔綣ReadBook是安裝在硬碟上的,那麼
極大"
->"的可能是您的計算機中存在病毒。
"
->" 解決辦法是使用防毒軟體對計算機進行檢查。但*"
->"捎詡撲慊《久刻於*
有新的種類出現,請您一定要"
->"注意您的防毒軟體的版本(出版時間),確定
您使*"
->"玫氖親鈽擄奼鏡模ㄉ倍救砑陌奼靖輪芷諞話閌羌"
->"甘歟*
ReadBOOK具有自我修復功*"
|
:00417F7C 6894574600 push
00465794
:00417F81 53
push ebx
* Reference To: USER32.MessageBoxA, Ord:01BEh
|
:00417F82 FF1530164500 Call dword
ptr [00451630]
:00417F88 83F806
cmp eax, 00000006
:00417F8B 0F850D010000 jne 0041809E
:00417F91 E81AEFFFFF call
00416EB0
:00417F96 53
push ebx
* Reference To: USER32.PostQuitMessage, Ord:01E0h
|
:00417F97 FF15F0144500 Call dword
ptr [004514F0]
:00417F9D E9FC000000 jmp 0041809E
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00417EC6(C), :00417F73(C)
|
:00417FA2 6A10
push 00000010
* Possible StringData Ref from Data Obj ->"這裡是ReadBOOK的病毒監測功能"
|
:00417FA4 6874574600 push
00465774
* Possible StringData Ref from Data Obj ->" ReadBook察覺到自身有改變,如果不是檔案損壞"
->"的就是讓病毒感染了!
一般說來,硬碟很少損*"
->"擔綣ReadBook是安裝在硬碟上的,那麼
極大"
->"的可能是您的計算機中存在病毒。
"
->" 解決辦法是使用防毒軟體對計算機進行檢查。但*"
->"捎詡撲慊《久刻於*
有新的種類出現,請您一定要"
->"注意您的防毒軟體的版本(出版時間),確定
您使*"
->"玫氖親鈽擄奼鏡模ㄉ倍救砑陌奼靖輪芷諞話閌羌"
->"甘歟*
由於ReadBOOK的損壞嚴重*"
|
:00417FA9 6888554600 push
00465588
:00417FAE 53
push ebx
* Reference To: USER32.MessageBoxA, Ord:01BEh
|
:00417FAF FF1530164500 Call dword
ptr [00451630]
:00417FB5 E9E4000000 jmp 0041809E
如何繞過去呢?
向上看到,在這裡設斷點
:00417D96 E87AF5FFFF call
00417315 ;API GetPrivateProfileStringA
......
:00417DA7 E8E45A0100 call
0042D890
:00417DAC 83C418
add esp, 00000018
:00417DAF 85C0
test eax, eax
:00417DB1 0F84F9020000 je 004180B0
追進00417D96
:00417315 FF3580754B00 push dword
ptr [004B7580] ;readbook.ini
:0041731B FF742414
push [esp+14] ;10
:0041731F FF742414
push [esp+14] ;03
:00417323 6850844600 push
00468450 ;
:00417328 FF742418
push [esp+18] ;verify
:0041732C FF742418
push [esp+18] ;file
* Reference To: KERNEL32.GetPrivateProfileStringA, Ord:013Ah
|
:00417330 FF1568134500 Call dword
ptr [00451368]
GetPrivateProfileStringA的入口引數:
?lpAppName
esp+18
初始化檔案中section字串
?lpKeyName
esp+18
要得到的key的字串
?lpDefault
00468450
預設字串
?lpReturnedString esp+14
接收緩衝區
?nSize
esp+14
長度
?lpFileName
004B7580
初始化檔名
追進00417DA7
:0042D8B0 8A06
mov al, byte ptr [esi] ;預定義的字串"No"
:0042D8B2 46
inc esi
:0042D8B3 8A27
mov ah, byte ptr [edi] ;ini中得到的字串
:0042D8B5 47
inc edi
:0042D8B6 38C4
cmp ah, al
:0042D8B8 74F2
je 0042D8AC
在readbook.ini中新增
[File]
Verify=No
就可以繞過檢驗程式是否更改,當然也可以Patch
這在程式中 檢視->配置->控制->防病毒校驗 可以設定
總結:
Patch
00417DB1 0F84F9020000 je 004180B0
;patch病毒自檢
E9FA02000090
jmp 4180B0
0040A112 741D
je 0040A131 ;patch註冊失敗
EB1D
jmp 40A131
另外,readbook v1.42與1.41大同小異,不另行說明,Patch如下:
:0040A160 3975F8
cmp dword ptr [ebp-08], esi
:0040A163 741D
je 0040A182(A163)
EB1DS
:00417E53 E818620100 call
0042E070
:00417E58 83C418
add esp, 00000018
:00417E5B 85C0
test eax, eax
:00417E5D 0F84F9020000 je 0041815C(17E5D)
E9FA02000090
*********************************世間本無事,庸人自擾耳************************************
相關文章
- ReadBook v1.41註冊碼演算法,供參考! (1千字)2001-03-31演算法
- Android CHM檔案閱讀器2019-07-26Android
- Rss-Rome 閱讀器讀取XML檔案2010-10-09XML
- ReadBOOK v1.43 中文閱讀程式--註冊破解全攻略 一
(13千字)2001-04-14
- trace檔案閱讀2011-03-13
- C++:小說閱讀器2020-08-23C++
- chm格式檔案閱讀器:iCHM Reader for Mac2022-06-25Mac
- iCHM Reader for Mac chm格式檔案閱讀器2022-06-01Mac
- 「pdf檔案閱讀器」PDF Reader Pro 2.8.19.12022-11-20
- LNAV:基於 Ncurses 的日誌檔案閱讀器2015-12-02
- Qt使用綠色pdf閱讀器開啟檔案2024-09-10QT
- VSD Viewer for Mac(Visio繪圖檔案閱讀器)2023-11-20ViewMac繪圖
- Visio繪圖檔案閱讀器:VSD Viewer for Mac2023-12-29繪圖ViewMac
- 用VC++實現一個文字檔案閱讀器2016-03-23C++
- C/C++ 檔案讀寫2022-03-26C++
- Readbook 1.31破解心得
(3千字)2000-03-01
- C++檔案讀寫2021-05-23C++
- c fopen檔案讀寫2017-11-21
- C++讀寫檔案2024-04-03C++
- CHM Viewer Star for mac(CHM檔案閱讀器) 6.3.2免啟用版2023-11-29ViewMac
- mysql程式碼閱讀-frm檔案格式解析2016-01-06MySql
- C#文字閱讀2016-10-03C#
- C/C++讀取SEGY檔案(三)2022-03-16C++
- Readbook 1.42版 演算法分析。 (1千字)2015-11-15演算法
- C++讀寫檔案操作2021-02-14C++
- C#讀取Xml檔案2018-11-26C#XML
- C++檔案讀寫操作2018-09-09C++
- c風格讀寫檔案2018-12-20
- c#讀寫ini檔案2016-01-22C#
- C語言-檔案讀寫2024-05-20C語言
- readbook的序號產生器源程式(c++builder5)2002-01-30C++UI
- VSD Viewer for Mac(Visio繪圖檔案閱讀器) v6.16.12023-05-12ViewMac繪圖
- 電子小說閱讀器黃金版破解手記 (5千字)2001-11-14
- C#讀取文字檔案和寫文字檔案2018-05-24C#
- 可商用的手機app《9秒小說閱讀器》開源2014-06-26APP
- 打造web版epub閱讀器(閱讀設計)2017-06-14Web
- C語言/C++讀取檔案資訊2016-11-09C語言C++
- C/C++中檔案的讀寫格式2011-06-01C++