搜尋引擎工廠(Search Engine Builder)V1.595
標 題:搜尋引擎工廠(Search Engine Builder)V1.595
發信人:fly
時 間:2003/02/28 08:43am
詳細資訊:
簡單演算法――搜尋引擎工廠(Search Engine Builder)V1.595
軟體大小:
604 KB
軟體語言: 英文
軟體類別: 國產軟體 / 共享版 / 網頁輔助
應用平臺: Win9x/NT/2000/XP
加入時間:
2002-12-28 09:32:11
下載次數: 3492
推薦等級: ***
開 發 商: http://www.seamoontech.com/
【軟體簡介】:
為你的網站自動生成一個站內搜尋引擎。很多人訪問您的網站只是為了得到其中一部分資訊而不想全部瀏覽完畢您的網站。如果讓您的客戶一頁頁的尋找這小部分資訊,無疑一部分客戶會失去耐心而轉向別處。Cool Search Maker 就是為了解決這個問題而產生的。它快速的索引整個網站並自動生成一個高效的搜尋引擎,這是一個HTML檔案,把它加入到您的網站上即可。使用 Cool Search Maker 生成搜尋引擎,您所須做的只是點幾下滑鼠而已。有了它,您不必耗費大量的時間親自去寫繁雜的搜尋程式碼了。Cool Search Maker還有許多附加的特性如:自定義摸板用來生成漂亮的搜尋頁面,自定義搜尋結果的輸出格式,為本地文字檔案生成搜尋引擎以便於查詢。
【軟體限制】:NAG、功能限制。
【作者宣告】:初學Crack,只是感興趣,沒有其它目的。失誤之處敬請諸位大俠賜教!
【破解工具】:TRW2000娃娃修改版、FI2.5、W32Dasm黃金版
―――――――――――――――――――――――――――――
【過
程】:
SearchMaker.exe是VC++6.0編寫。無殼。反彙編方便了。^-^
程式要求重啟驗證註冊碼。程式把試煉碼寫入了登錄檔,啟動時進行比較。
TRW除錯時當然可下斷點:BPX
Regqueryvalueexa do"dd*(esp+8)"
只是裝入後必須按很多下F5鍵,煩人。
於是想起以前破過的FlashGet、EZ Extract Resource等等同種驗證方式(重啟驗證),學習了許多大俠的經驗,想起了一點小辦法。
在反彙編程式碼裡查詢“RegCode”,一般會有2處,那麼其中的1處就是核心了。省我按幾十次F5鍵了。呵呵
OK,查到了。直接BPX
40DC92,重啟時攔下!
Let's Go!
--------------------------------------------------------
*
Possible StringData Ref from Data Obj ->"RegUserName"
|
:0040DC4C 682C194600
push 0046192C
:0040DC51 8D542418
lea edx, dword ptr [esp+18]
:0040DC55 B305
mov bl, 05
*
Possible StringData Ref from Data Obj ->"RegInfo"
|
:0040DC57 6824194600
push 00461924
:0040DC5C 52
push edx
:0040DC5D 8BCE
mov ecx, esi
:0040DC5F
889C247C050000 mov byte ptr [esp+0000057C],
bl
:0040DC66 E807920300 call
00446E72
:0040DC6B 50
push eax
:0040DC6C 8D4C2418
lea ecx, dword ptr [esp+18]
:0040DC70 C684247005000006
mov byte ptr [esp+00000570], 06
:0040DC78 E8387A0200
call 004356B5
:0040DC7D 8D4C2410
lea ecx, dword ptr [esp+10]
:0040DC81
889C246C050000 mov byte ptr [esp+0000056C],
bl
:0040DC88 E8EF780200 call
0043557C
:0040DC8D 68145C4600 push
00465C14
* Possible
StringData Ref from Data Obj ->"RegCode"
|
:0040DC92 681C194600
push 0046191C
====>中斷在這!
:0040DC97 8D442428 lea eax, dword ptr [esp+28]
* Possible
StringData Ref from Data Obj ->"RegInfo"
|
:0040DC9B 6824194600
push 00461924
:0040DCA0 50
push eax
:0040DCA1 8BCE
mov ecx, esi
:0040DCA3 E8CA910300
call 00446E72
:0040DCA8 50
push
eax
:0040DCA9 8D4C241C lea
ecx, dword ptr [esp+1C]
:0040DCAD C684247005000007 mov
byte ptr [esp+00000570], 07
:0040DCB5 E8FB790200
call 004356B5
:0040DCBA 8D4C2420
lea ecx, dword ptr [esp+20]
:0040DCBE 889C246C050000
mov byte ptr [esp+0000056C], bl
:0040DCC5
E8B2780200 call 0043557C
:0040DCCA
51 push
ecx
:0040DCCB 8D54241C lea
edx, dword ptr [esp+1C]
:0040DCCF 8BCC
mov ecx, esp
:0040DCD1 89642414
mov dword ptr [esp+14], esp
:0040DCD5 52
push
edx
:0040DCD6 E816760200 call
004352F1
:0040DCDB 51
push ecx
:0040DCDC 8D44241C
lea eax, dword ptr [esp+1C]
:0040DCE0 8BCC
mov ecx, esp
:0040DCE2
89642424 mov dword ptr
[esp+24], esp
:0040DCE6 50
push eax
:0040DCE7 C684247805000008
mov byte ptr [esp+00000578], 08
:0040DCEF E8FD750200
call 004352F1
:0040DCF4 8BCE
mov ecx, esi
:0040DCF6
889C2474050000 mov byte ptr [esp+00000574],
bl
:0040DCFD E86E160000 call
0040F370
:0040DD02 33FF
xor edi, edi
:0040DD04 3BC7
cmp eax, edi
:0040DD06 7408
je 0040DD10
:0040DD08
89AECC010000 mov dword ptr [esi+000001CC],
ebp
:0040DD0E EB52
jmp 0040DD62
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040DD06(C)
|
:0040DD10
39AEC0000000 cmp dword ptr [esi+000000C0],
ebp
:0040DD16 7444
je 0040DD5C
:0040DD18 51
push ecx
:0040DD19 8D54241C
lea edx, dword ptr [esp+1C]
:0040DD1D
8BCC mov
ecx, esp
:0040DD1F 89642420
mov dword ptr [esp+20], esp
:0040DD23 52
push edx
:0040DD24 E8C8750200
call 004352F1
:0040DD29 51
push
ecx
:0040DD2A 8D44241C lea
eax, dword ptr [esp+1C]
:0040DD2E 8BCC
mov ecx, esp
:0040DD30 89642418
mov dword ptr [esp+18], esp
:0040DD34 50
push
eax
:0040DD35 C684247805000009 mov byte ptr [esp+00000578],
09
:0040DD3D E8AF750200 call
004352F1
:0040DD42 8BCE
mov ecx, esi
:0040DD44 889C2474050000
mov byte ptr [esp+00000574], bl
:0040DD4B
E8C0070000 call 0040E510
====>核心CALL!
:0040DD50
3BC7 cmp
eax, edi
:0040DD52 7408
je 0040DD5C
====>不能跳!
:0040DD54
89AECC010000 mov dword ptr [esi+000001CC],
ebp
:0040DD5A EB06
jmp 0040DD62
--------------------------------------------------------
F8進入關鍵CALL。40DD4B
call 0040E510
*
Referenced by a CALL at Address:
|:0040DD4B
看看下面吧,藏了幾個黑名單:"ttdown"、"crsky"、".com"、"jetdown",這些都是破解網站,喜歡用自己的站名來做軟體的註冊名,統統禁殺了!
這些黑名單使我想起EZ
Extract Resource的黑名單,幾乎差不多,後來一看:這2個軟體是一個公司開發的(http://www.seamoontech.com/),怪不得如此相象。
:0040E510
6AFF push
FFFFFFFF
:0040E512 6870B64400 push
0044B670
:0040E517 64A100000000 mov
eax, dword ptr fs:[00000000]
:0040E51D 50
push eax
:0040E51E 64892500000000
mov dword ptr fs:[00000000], esp
:0040E525
81ECD4000000 sub esp, 000000D4
:0040E52B
53 push
ebx
:0040E52C 56
push esi
:0040E52D 8BF1
mov esi, ecx
:0040E52F B801000000
mov eax, 00000001
:0040E534 68145C4600
push 00465C14
:0040E539 898424E8000000
mov dword ptr [esp+000000E8], eax
:0040E540
8986D0010000 mov dword ptr [esi+000001D0],
eax
:0040E546 8B8424F0000000 mov eax, dword
ptr [esp+000000F0]
:0040E54D 50
push eax
:0040E54E E842620100
call 00424795
:0040E553 83C408
add esp, 00000008
:0040E556 85C0
test eax, eax
====>測試使用者名稱是否為空
:0040E558
0F8477010000 je 0040E6D5
====>不能跳!
:0040E55E
8B8C24F0000000 mov ecx, dword ptr [esp+000000F0]
:0040E565
68145C4600 push 00465C14
:0040E56A
51 push
ecx
:0040E56B E825620100
call 00424795
:0040E570 83C408
add esp, 00000008
:0040E573
85C0 test
eax, eax
====>測試註冊碼是否為空
:0040E575
0F845A010000 je 0040E6D5
====>不能跳!
*
Possible StringData Ref from Data Obj ->"ttdown"
====>黑名單!
|
:0040E57B 683C1A4600
push 00461A3C
:0040E580 8D8C24F0000000
lea ecx, dword ptr [esp+000000F0]
:0040E587 E846440200
call 004329D2
:0040E58C 33DB
xor ebx,
ebx
:0040E58E 83F8FF
cmp eax, FFFFFFFF
:0040E591 7542
jne 0040E5D5
====>不能跳!
*
Possible StringData Ref from Data Obj ->"crsky"
====>黑名單!
|
:0040E593 68341A4600
push 00461A34
:0040E598 8D8C24F0000000
lea ecx, dword ptr [esp+000000F0]
:0040E59F E82E440200
call 004329D2
:0040E5A4 83F8FF
cmp eax, FFFFFFFF
:0040E5A7
752C jne
0040E5D5
====>不能跳!
*
Possible StringData Ref from Data Obj ->".com"
====>黑名單!
:0040E5A9 682C1A4600
push 00461A2C
:0040E5AE 8D8C24F0000000
lea ecx, dword ptr [esp+000000F0]
:0040E5B5 E818440200
call 004329D2
:0040E5BA 83F8FF
cmp eax, FFFFFFFF
:0040E5BD
7516 jne
0040E5D5
====>不能跳!
*
Possible StringData Ref from Data Obj ->"jetdown"
====>黑名單!
|
:0040E5BF 68241A4600
push 00461A24
:0040E5C4 8D8C24F0000000
lea ecx, dword ptr [esp+000000F0]
:0040E5CB E802440200
call 004329D2
:0040E5D0 83F8FF
cmp eax, FFFFFFFF
:0040E5D3
7406 je 0040E5DB
====>應跳!
*
Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0040E591(C),
:0040E5A7(C), :0040E5BD(C)
|
:0040E5D5 899ED0010000
mov dword ptr [esi+000001D0], ebx
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040E5D3(C)
|
:0040E5DB
55 push
ebp
:0040E5DC 8BAC24F0000000 mov ebp, dword
ptr [esp+000000F0]
使用者名稱送eax
:0040E5E3
B165 mov
cl, 65
:0040E5E5 B061
mov al, 61
:0040E5E7 8B75F8
mov esi, dword ptr [ebp-08]
====>使用者名稱長度送esi
====>?
ESI=3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===>下面這段程式碼是從[esp+10]依次處放入“searmake”字串
:0040E5EA
884C240D mov byte ptr [esp+0D],
cl
:0040E5EE 884C2413 mov
byte ptr [esp+13], cl
:0040E5F2 33C9
xor ecx, ecx
:0040E5F4 3BF3
cmp esi, ebx
:0040E5F6 C644240C73
mov [esp+0C], 73
:0040E5FB
8844240E mov byte ptr [esp+0E],
al
:0040E5FF C644240F72 mov
[esp+0F], 72
:0040E604 C64424106D
mov [esp+10], 6D
:0040E609 88442411
mov byte ptr [esp+11], al
:0040E60D C64424126B
mov [esp+12], 6B
:0040E612 885C2414
mov byte ptr [esp+14], bl
:0040E616
7E3D jle
0040E655
:0040E618 57
push edi
:0040E619 8D7C341B
lea edi, dword ptr [esp+esi+1B]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040E650(C)
====>以下就是運算核心了!
:0040E61D
8A0429 mov al, byte
ptr [ecx+ebp]
====>依次取使用者名稱。
====>1、?AL=66 即f的HEX值
====>2、?AL=6C 即l的HEX值
====>3、?AL=79
即y的HEX值
:0040E620 8BD1
mov edx,
ecx
:0040E622 81E207000080 and edx,
80000007
:0040E628 7905
jns 0040E62F
:0040E62A 4A
dec edx
:0040E62B 83CAF8
or edx, FFFFFFF8
:0040E62E 42
inc edx
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040E628(C)
|
:0040E62F
0FBE541410 movsx edx, byte ptr
[esp+edx+10]
====>依次從“searmake”字串中取字元入EDX
====>1、?EDX=73 即s的HEX值
====>2、?EDX=65 即e的HEX值
====>3、?EDX=61 即a的HEX值
:0040E634 0FBEC0
movsx eax, al
====>1、?EAX=66 即f的HEX值
====>2、?EAX=6C 即l的HEX值
====>3、?EAX=79
即y的HEX值
:0040E637 8BD9
mov ebx,
ecx
====>1、?EBX=0
====>2、?EBX=1
====>3、?EBX=2
:0040E639
03DA add
ebx, edx
====>1、EBX=0+73=73
====>2、EBX=1+65=66
====>3、EBX=2+61=63
:0040E63B
03C3 add
eax, ebx
====>1、EAX=66+73=D9
====>2、EAX=6C+66=D2
====>3、EAX=79+63=DC
:0040E63D
BB09000000 mov ebx, 00000009
====>9送ebx
:0040E642
03C6 add
eax, esi
====>esi是使用者名稱長度
====>1、EAX=D9+3=DC
====>2、EAX=D2+3=D5
====>3、EAX=DC+3=DF
:0040E644
99 cdq
:0040E645
F7FB idiv
ebx
====>EAX依次除以9
====>1、EAX=DC/9=18餘4
====>2、EAX=D5/9=17餘6
====>3、EAX=DF/9=18餘7
:0040E647
80C230 add dl, 30
====>餘數入DL,依次加30
====>1、DL=4+30=34
====>2、DL=6+30=36
====>3、DL=7+30=37
:0040E64A 41
inc
ecx
====>ecx依次增1
:0040E64B
8817 mov
byte ptr [edi], dl
====>DL->[edi]
====>迴圈3次後,D EDI=764
****這是真碼的前3個數!!!
:0040E64D
4F dec
edi
:0040E64E 3BCE
cmp ecx, esi
====>比較使用者名稱是否取完
:0040E650 7CCB
jl 0040E61D
====>沒有取完,跳上去繼續迴圈
====>共迴圈3次。
:0040E652
33DB xor
ebx, ebx
:0040E654 5F
pop edi
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040E616(C)
|
:0040E655
8D4668 lea eax,
dword ptr [esi+68]
====>?ESI=3
實際上是使用者名稱長度加上68的結果送eax
====>過此
?EAX=6B
:0040E658 B909000000
mov ecx, 00000009
====>9送ecx
:0040E65D
99 cdq
:0040E65E
F7F9 idiv
ecx
====>EAX/9=B餘8
====>餘數8入DL
:0040E660
8B8424F4000000 mov eax, dword ptr [esp+000000F4]
====>使用者輸入的假註冊碼送eax
:0040E667
5D pop
ebp
:0040E668 80C230
add dl, 30
====>DL=8+30=38
****這是真碼的最後1個數!!!
:0040E66B
88543414 mov byte ptr [esp+esi+14],
dl
====>DL移入[esp+17]處
:0040E66F
885C3415 mov byte ptr [esp+esi+15],
bl
:0040E673 8D742414 lea
esi, dword ptr [esp+14]
====>真正的註冊碼送ESI
*****************************************************
至此演算法分析完畢。呵呵,追註冊碼挺快。
但是分析、整理成這篇心得卻花了我半天的工夫!
希望能夠給如我般的初學者一點用處!!!
*****************************************************
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040E695(C)
這裡向下是將真假註冊碼逐位的進行比較,一個經典的組合!
:0040E677
8A10 mov
dl, byte ptr [eax]
====>D EAX=試煉碼
:0040E679
8ACA mov
cl, dl
:0040E67B 3A16
cmp dl, byte ptr [esi]
====>D
ESI=真碼!!!!
:0040E67D
751C jne
0040E69B
:0040E67F 3ACB
cmp cl, bl
:0040E681 7414
je 0040E697
:0040E683 8A5001
mov dl, byte ptr [eax+01]
:0040E686
8ACA mov
cl, dl
:0040E688 3A5601
cmp dl, byte ptr [esi+01]
:0040E68B 750E
jne 0040E69B
:0040E68D 83C002
add eax, 00000002
:0040E690
83C602 add esi,
00000002
:0040E693 3ACB
cmp cl, bl
:0040E695 75E0
jne 0040E677
―――――――――――――――――――――――――――――
【KeyMake之記憶體序號產生器】:
中斷地址:40E67B
中斷次數:1
第一位元組:3A
指令長度:2
記憶體方式:ESI
―――――――――――――――――――――――――――――
【註冊資訊儲存】:
[HKEY_CURRENT_USER\Software\SeaMoonTech\SEARCHMAKER\RegInfo]
"RegUserName"="fly"
"RegCode"="7648"
―――――――――――――――――――――――――――――
【整
理】:
Registartion
Name:fly
Registartion Code:7648
―――――――――――――――――――――――――――――
Cracked By 巢水工作坊――fly【OCN】
2003-1-24 17:00
相關文章
- 關於 SAP 產品 UI 的搜尋引擎優化 SEO - Search Engine Optimization2021-08-07UI優化
- 谷歌上線資料搜尋引擎 Dataset Search2018-09-06谷歌
- 搜尋引擎-03-搜尋引擎原理2024-04-04
- tpextbuilder- Search 搜尋2021-08-29UI
- HTML input search搜尋域2019-01-15HTML
- 海量資料搜尋---搜尋引擎2018-11-13
- 搜尋引擎es-分詞與搜尋2024-08-27分詞
- 47_初識搜尋引擎_search api的基礎語法介紹2024-10-02API
- 搜尋引擎工廠專業版演算法分析+演算法序號產生器2015-11-15演算法
- ElasticSearch全文搜尋引擎2019-07-29Elasticsearch
- 搜尋引擎語法2016-05-09
- 搜尋引擎命令大全2013-07-31
- 搜尋引擎程式碼2005-05-08
- 搜尋引擎面試題2013-04-02面試題
- PDF Search for Macpdf檔案搜尋工具2020-12-03Mac
- AI研發者福利!谷歌推出資料集搜尋專用引擎Dataset Search2018-09-06AI谷歌
- PDF文件搜尋工具:PDF Search Mac版2022-04-17Mac
- PDF檔案搜尋工具PDF Search for Mac2022-07-22Mac
- PDF Search for Mac(pdf檔案搜尋工具)2022-07-18Mac
- pdf檔案搜尋工具:PDF Search Mac2022-03-27Mac
- [CareerCup] 18.8 Search String 搜尋字串2016-05-09字串
- 搜尋引擎優化(SEO)2020-05-17優化
- 搜尋引擎框架介紹2019-05-13框架
- Django整合搜尋引擎Elasticserach2019-06-04DjangoAST
- 認識搜尋引擎 Elasticsearch2021-07-15Elasticsearch
- 搜尋引擎與前端SEO2018-05-24前端
- 搜尋引擎原理及使用2017-03-03
- 直播開發app,實時搜尋、搜尋引擎框2022-03-29APP
- 搜尋引擎必看的入門書籍——《搜尋引擎:資訊檢索實踐》2011-06-09
- 57_初識搜尋引擎_分散式搜尋引擎核心解密之query phase2024-10-02分散式解密
- Nebula 基於 ElasticSearch 的全文搜尋引擎的文字搜尋2021-06-17Elasticsearch
- Scrapy分散式爬蟲打造搜尋引擎-(八)elasticsearch結合django搭建搜尋引擎2017-07-01分散式爬蟲ElasticsearchDjango
- item_search - 按關鍵字搜尋商品2023-04-15
- python 寫的搜尋引擎2019-08-31Python
- 設定搜尋引擎遮蔽 CSDN2022-02-15
- 搜尋引擎——Solr安裝、配置2017-10-24Solr
- 關於mongodb和搜尋引擎??2012-10-19MongoDB
- 搜尋引擎-01-概覽2024-04-02