專業掃雷v1.2版破解分析
標 題:專業掃雷v1.2版破解分析
發信人:billwfm
時 間:2003/05/12 08:28am
詳細資訊:
//
//
tHinkIng_v1.0
// 19:13 2003-5-9
//
說明:輸入註冊名:tHinkIng
註冊碼:14259775
使用TRW2000下斷點bpx
hmemcpy可跟蹤到此
* Reference To: USER32.GetDlgItemTextA,
Ord:0000h
|
:00404FEB E807600100
Call 0041AFF7
*
Possible Ref to Menu: PROFMINEMENU1, Item: "-[E]"
|
:00404FF0 6A0A
push 0000000A
:00404FF2 6818EE4100
push 0041EE18
*
Possible Reference to Dialog: DIALOG_ABOUT1, CONTROL_ID:0066, "Bojan Urosevic"
|
* Possible Reference
to String Resource ID=00102: "mb"
|
:00404FF7
6A66 push
00000066
:00404FF9 53
push ebx
* Reference To: USER32.GetDlgItemTextA,
Ord:0000h
|
:00404FFA E8F85F0100
Call 0041AFF7
:00404FFF 6818EE4100
push 0041EE18;[0041EE18] =
14259775
:00405004 68C8ED4100 push
0041EDC8;[0041EDC8] = tHinkIng
:00405009 E849060000
call 00405657;註冊碼驗證模組,跟入!
:0040500E 83C408
add esp, 00000008
:00405011
A222EE4100 mov byte ptr [0041EE22],
al
:00405016 84C0
test al, al
:00405018 7411
je 0040502B
:0040501A C60574C0410000
mov byte ptr [0041C074], 00
:00405021 6A00
push 00000000
:00405023
53 push
ebx
* Reference To: USER32.EndDialog, Ord:0000h
|
:00405024 E8EC5F0100
Call 0041B015
:00405029 EB13
jmp 0040503E
說明:進入註冊驗證模組
*
Referenced by a CALL at Addresses:
|:00401821 , :00405009
|
:00405657
55 push
ebp
:00405658 8BEC
mov ebp, esp
:0040565A 83C4E4
add esp, FFFFFFE4
:0040565D 53
push ebx
:0040565E 56
push
esi
:0040565F 57
push edi
:00405660 8B5D0C
mov ebx, dword ptr [ebp+0C];ebx = 14259775
:00405663
8B4D08 mov ecx,
dword ptr [ebp+08];ecx = tHinkIng
:00405666 33C0
xor eax, eax;eax = 0
說明:
序號:1
2 3 4
5 6 7
數字:1 4
2 5 9 7 7
位置:ebp-1C
ebp-18 ebp-14 ebp-10 ebp-C ebp-8 ebp-4
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004056A8(C)
|
:00405668
0FBE1403 movsx edx, byte
ptr [ebx+eax];edx = '1' = 31
:0040566C 83C2D0
add edx, FFFFFFD0;將對應的字元數字轉換為數字
:0040566F
895485E4 mov dword ptr
[ebp+4*eax-1C], edx;edx = 1
:00405673 837C85E400
cmp dword ptr [ebp+4*eax-1C], 00000000;判斷edx是否小於0
:00405678
7C07 jl 00405681
:0040567A
837C85E409 cmp dword ptr [ebp+4*eax-1C],
00000009;判斷edx是否小於等於9
:0040567F 7E23
jle 004056A4
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00405678(C)
|
*
Possible StringData Ref from Data Obj ->"-------"
|
:00405681 682DC44100
push 0041C42D
:00405686 51
push ecx
:00405687 E8F4F00000
call 00414780
:0040568C 83C408
add esp, 00000008
*
Possible StringData Ref from Data Obj ->"-------"
|
:0040568F 6835C44100
push 0041C435
:00405694 53
push ebx
:00405695 E8E6F00000
call 00414780
:0040569A 83C408
add esp, 00000008
:0040569D
33C0 xor
eax, eax
:0040569F E9A5000000 jmp
00405749
* Referenced by a (U)nconditional or (C)onditional
Jump at Address:
|:0040567F(C)
|
:004056A4 40
inc eax;eax++
:004056A5
83F807 cmp eax,
00000007;判斷eax是否小於7
:004056A8 7CBE
jl 00405668;僅僅取註冊碼的前7位
:004056AA 6945F4E8030000
imul eax, dword ptr [ebp-0C], 000003E8;eax
= 9 * 3E8 = 2328
:004056B1 6B55EC64
imul edx, dword ptr [ebp-14], 00000064;edx = 2 * 64 = C8
:004056B5
03C2 add
eax, edx;eax = eax + edx = 2328 + C8 = 23F0
:004056B7 8B55FC
mov edx, dword ptr [ebp-04];edx
= 7
:004056BA 03D2
add edx, edx;edx = edx + edx = E
:004056BC 8D1492
lea edx, dword ptr [edx+4*edx];edx
= 5*edx = 46
:004056BF 03C2
add eax, edx;eax = eax + edx = 23F0 + 46 = 2436
:004056C1
0345E4 add eax,
dword ptr [ebp-1C];eax = eax + 1 = 2437
:004056C4 6BF00D
imul esi, eax, 0000000D;esi
= eax * D = 2437 * D = 1D6CB
:004056C7 8BC6
mov eax, esi;eax = esi = 1D6CB
:004056C9
BEC5000000 mov esi, 000000C5;esi
= C5
:004056CE 99
cdq;edx = 0
:004056CF F7FE
idiv esi;eax = eax/esi = 1D6CB/C5 = 263
edx = 9C
:004056D1 8BF2
mov esi, edx;esi = edx = 9C
:004056D3 33FF
xor edi, edi;edi =
0
:004056D5 33C0
xor eax, eax;eax = 0
說明:esi = ([1]+[3]*64+[5]*3E8+[7]*A)*D/C5的餘數
= 9C
* Referenced by a (U)nconditional or (C)onditional Jump
at Address:
|:004056E7(C)
|
:004056D7 803C0100
cmp byte ptr [ecx+eax], 00
:004056DB 740C
je 004056E9
:004056DD
0FBE1401 movsx edx, byte
ptr [ecx+eax];edx = 74
:004056E1 03FA
add edi, edx;edi = edi + edx = 74
:004056E3
40 inc
eax
:004056E4 83F850
cmp eax, 00000050;取註冊名前50個
:004056E7 7CEE
jl 004056D7
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004056DB(C)
|
:004056E9
8BC6 mov
eax, esi;eax = esi = 9C edi = 31C
:004056EB 51
push ecx;ecx為註冊名位置,入棧
說明:edi = 註冊名所有ASCII碼的和 = 31C
* Possible Ref to Menu: PROFMINEMENU1,
Item: "-[E]"
|
:004056EC B90A000000
mov ecx, 0000000A;ecx = A
:004056F1
99 cdq;edx
= 0
:004056F2 F7F9
idiv ecx;eax = eax/ecx = 9C/A = F edx = 6
:004056F4
59 pop
ecx;ecx為註冊名位置,出棧
:004056F5 03C7
add eax, edi;eax = eax + edi = F + 31C = 32B
:004056F7
BF64000000 mov edi, 00000064;edi
= 64
:004056FC 99
cdq;edx = 0
:004056FD F7FF
idiv edi;eax = eax/edi = 32B/64 = 8 edx
= B
:004056FF 8BFA
mov edi, edx;edi = edx = B
:00405701 8BC6
mov eax, esi;eax = esi = 9C
說明:edi = (31C(edi) + 9C(esi)/A)/64的餘數 = B
* Possible Ref
to Menu: PROFMINEMENU1, Item: "-[E]"
|
:00405703 BE0A000000 mov
esi, 0000000A;esi = A
:00405708 99
cdq;edx = 0
:00405709 F7FE
idiv esi;eax = eax/esi
= 9C/A = F edx = 6
:0040570B 8BC7
mov eax, edi;eax = edi = B
:0040570D
03C0 add
eax, eax;eax = eax + eax = 16
:0040570F 8D0480
lea eax, dword ptr [eax+4*eax];eax = 5*eax
= 6E
:00405712 03D0
add edx, eax;edx = edx + eax = 6 + 6E = 74
:00405714 8BF2
mov esi,
edx;esi = edx = 74
:00405716 6B45F064
imul eax, dword ptr [ebp-10], 00000064;eax = 5*64 = 1F4
:0040571A
8B55E8 mov edx,
dword ptr [ebp-18];edx = 4
:0040571D 03D2
add edx, edx;edx = edx + edx = 8
:0040571F
8D1492 lea edx,
dword ptr [edx+4*edx];edx = 5*edx = 28
:00405722 03C2
add eax, edx;eax = eax + edx
= 1F4 + 28 = 21C
:00405724 0345F8
add eax, dword ptr [ebp-08];eax = eax + 7 = 223
:00405727
3BC6 cmp
eax, esi
:00405729 741E
je 00405749
說明:esi = B(edi)*A+9C(esi)/A的餘數
= 74
eax = [2]*A+[4]*64+[6] = 223
註冊成功就是需要讓esi和eax相等,很明顯修改esi比較麻煩,修改eax最為方便。
經過調整得到:註冊名:tHinkIng
註冊碼:1121967
*
Possible StringData Ref from Data Obj ->"-------"
|
:0040572B 683DC44100
push 0041C43D
:00405730 51
push ecx
:00405731 E84AF00000
call 00414780
:00405736 83C408
add esp, 00000008
*
Possible StringData Ref from Data Obj ->"-------"
|
:00405739 6845C44100
push 0041C445
:0040573E 53
push ebx
:0040573F E83CF00000
call 00414780
:00405744 83C408
add esp, 00000008
:00405747
33C0 xor
eax, eax
* Referenced by a (U)nconditional or (C)onditional
Jump at Addresses:
|:0040569F(U), :00405729(C)
|
:00405749 5F
pop edi
:0040574A
5E pop
esi
:0040574B 5B
pop ebx
:0040574C 8BE5
mov esp, ebp
:0040574E 5D
pop ebp
:0040574F C3
ret
相關文章
- 專業掃雷 1.2破解過程 (4千字)2001-02-17
- 掃雷小遊戲-網頁版2019-06-14遊戲網頁
- 經典掃雷遊戲Web版2021-09-09遊戲Web
- pycharm專業版破解2018-11-16PyCharm
- Qt學習- (掃雷專案初學)2016-12-26QT
- Flutter版的Wanandroid專案(V1.2)2019-03-14FlutterNaNAndroid
- 厲害了,一個自動掃雷遊戲專案!2019-01-08遊戲
- JS實現掃雷2020-12-12JS
- 自動掃雷程式2006-10-26
- [JAVAFX基礎]掃雷經典入門低配版2018-03-01Java
- 《魔窟掃雷》給掃雷遊戲指明瞭一個進化的方向2019-12-31遊戲
- 用ncurses庫寫掃雷2020-09-27
- java掃雷遊戲程式碼2012-11-10Java遊戲
- 遊戲安全入門-掃雷分析&遠端執行緒注入2024-08-13遊戲執行緒
- win10有掃雷嗎?Win10系統掃雷遊戲在哪裡2020-03-02Win10遊戲
- 生成一個掃雷矩陣2020-08-20矩陣
- 掃雷--C語言實現2018-05-28C語言
- 掃雷遊戲作弊逆向菜文2015-11-15遊戲
- 掃雷程式思想講解 (轉)2008-01-05
- go語言實現掃雷2024-03-02Go
- win10如何安裝掃雷遊戲_win10系統怎麼玩掃雷2020-08-10Win10遊戲
- Linux系統安裝Pycharm專業版【附破解方法】2024-10-05LinuxPyCharm
- Java Swing掃雷遊戲demo分享2017-06-11Java遊戲
- python寫的自動掃雷2010-10-11Python
- RadarScope for Mac(專業天氣雷達)2021-11-28Mac
- 破解“沸點郵件群發系統v1.2標準版” (3千字)2001-08-17
- win10掃雷怎麼換主題 如何更換win10的掃雷主題2020-11-26Win10
- 掃描王 for Mac專業圖片掃描工具2020-12-04Mac
- 安全測試之探索 windows 遊戲掃雷2023-03-27Windows遊戲
- CSS3雷達掃描效果2017-02-20CSSS3
- 雷達圖繪製軟體那個專業,怎麼畫雷達圖2019-09-24
- Wemall外賣版商城原始碼更新v1.2版2019-05-11原始碼
- 專業核磁資料處理必備:MestReNova 破解中文版2023-12-14
- win10沒有掃雷遊戲怎麼辦_win10自帶遊戲沒有掃雷如何解決2020-03-02Win10遊戲
- 掃路車的維護,掃路車專業保養2022-03-04
- python之掃雷小遊戲(附程式碼)2020-12-08Python遊戲
- 探秘掃雷遊戲的C語言實現2023-12-16遊戲C語言
- Android自定義View 雷達掃描效果2018-05-16AndroidView