簡單演算法――Cisco某個學習資料
簡單演算法――某個學習資料(FileOpen保護)
下載地址:http://www.helpexam.com/dow/UpLoad/640-910.exe
軟體大小:566K
【軟體簡介】:某個考試的資料。呵呵,我不考某某認證,沒用過。
【軟體限制】:必須註冊
【作者宣告】:初學Crack,只是感興趣,沒有其它目的。失誤之處敬請諸位大俠賜教!
【破解工具】:TRW2000娃娃修改版、Ollydbg1.09、PEiD、W32Dasm 10修改版
―――――――――――――――――――――――――――――――――
【過 程】:
640-910.exe
無殼。Visual C++編寫。
呵呵,終於有足夠的時間來看幾個程式了。
fnila兄出手真快,早已搞定了這個東東,我所做的只是再記錄一下而已。
另外,程式有好幾處大幅度的“星際跳躍”,如果沒有fnila
兄的指點,我肯定會暈頭轉向的。
Product
ID :1000630011
Input String:QTMRRMRJT
試 煉
碼:RSTUVWXYZ
―――――――――――――――――――――――――――――――――
* Referenced by
a (U)nconditional or (C)onditional Jump at Addresses:
|:0040779A(C), :00407828(C),
:00407831(C)
|
:0040784D 837C241409
cmp dword ptr [esp+14], 00000009
:00407852 7565
jne 004078B9
*
Possible StringData Ref from Data Obj ->"692837429"
|
:00407854 68744C4100
push 00414C74
:00407859 BF109E4100
mov edi, 00419E10
====>EDI=QTMRRMRJT
Input String
:0040785E
C7056440410001000000 mov dword ptr [00414064], 00000001
:00407868
6860724100 push 00417260
:0040786D
E8EE0E0000 call 00408760
====>還原我的硬碟序列號!
:00407872
83C408 add esp,
00000008
:00407875 B9FFFFFFFF mov
ecx, FFFFFFFF
:0040787A 2BC0
sub eax, eax
:0040787C F2
repnz
:0040787D AE
scasb
:0040787E F7D1
not ecx
:00407880
2BF9 sub
edi, ecx
:00407882 8BC1
mov eax, ecx
:00407884 C1E902
shr ecx, 02
:00407887 8BF7
mov esi, edi
====>ESI=EDI=555490825
:00407889
BF20A04100 mov edi, 0041A020
:0040788E
F3 repz
:0040788F
A5 movsd
:00407890
8BC8 mov
ecx, eax
:00407892 6820A04100 push
0041A020
:00407897 83E103
and ecx, 00000003
:0040789A 6840B04100
push 0041B040
:0040789F F3
repz
:004078A0 A4
movsb
:004078A1
E8BA0E0000 call 00408760
====>和上面還原硬碟序列號的演算法相同!
用我輸入的試煉碼和硬碟序列號計算得出一組新值!
:004078A6
83C408 add esp,
00000008
:004078A9 68109E4100 push
00419E10
:004078AE 6800B14100 push
0041B100
* Reference
To: KERNEL32.lstrcpyA, Ord:0296h
|
:004078B3
FF150CD34100 Call dword ptr [0041D30C]
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00407852(C)
|
:004078B9
682A994100 push 0041992A
*
Reference To: KERNEL32.lstrlenA, Ord:029Ch
|
:004078BE
FF1510D34100 Call dword ptr [0041D310]
:004078C4
83F802 cmp eax,
00000002
:004078C7 7E4A
jle 00407913
====>跳走!
…… ……省 略…… ……
:00407B3F
BE00B14100 mov esi, 0041B100
====>ESI=789;7A:A?
:00407B44
BFB6874100 mov edi, 004187B6
====>EDI=000630011 是Product
ID的後9位
:00407B49 B909000000
mov ecx, 00000009
:00407B4E
F3 repz
:00407B4F
A6 cmpsb
====>比較是否相同!
:00407B50
7525 jne
00407B77
====>跳則OVER!
:00407B52
6A01 push
00000001
:00407B54 53
push ebx
*
Reference To: USER32.EndDialog, Ord:00B4h
|
:00407B55
FF154CD44100 Call dword ptr [0041D44C]
:00407B5B
C7058840410000000000 mov dword ptr [00414088], 00000000
:00407B65
6A00 push
00000000
* Reference
To: USER32.PostQuitMessage, Ord:01B3h
|
:00407B67
FF1558D44100 Call dword ptr [0041D458]
:00407B6D
B801000000 mov eax, 00000001
:00407B72
E9F80A0000 jmp 0040866F
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00407B50(C)
|
:00407B77
BE00B14100 mov esi, 0041B100
:00407B7C
BFB6874100 mov edi, 004187B6
:00407B81
B909000000 mov ecx, 00000009
:00407B86
F3 repz
:00407B87
A6 cmpsb
:00407B88
746E je 00407BF8
:00407B8A
6A01 push
00000001
:00407B8C 53
push ebx
*
Reference To: USER32.EndDialog, Ord:00B4h
|
:00407B8D
FF154CD44100 Call dword ptr [0041D44C]
:00407B93
833D4440410001 cmp dword ptr [00414044], 00000001
:00407B9A
7530 jne
00407BCC
:00407B9C 6A10
push 00000010
*
Possible StringData Ref from Data Obj ->"Authorization Failure"
|
:00407B9E 68644B4100
push 00414B64
*
Possible StringData Ref from Data Obj ->"22"
|
:00407BA3 68004B4100
push 00414B00
:00407BA8 6A00
push 00000000
:00407BAA FFD5
call ebp
:00407BAC 6A10
push 00000010
*
Possible StringData Ref from Data Obj ->"OldstyleExpAuthString"
|
:00407BAE 68E84A4100
push 00414AE8
:00407BB3 6800B14100
push 0041B100
:00407BB8 6A00
push 00000000
:00407BBA
FFD5 call
ebp
:00407BBC 6A10
push 00000010
*
Possible StringData Ref from Data Obj ->"fo.OldstyleServiceNumberString"
|
:00407BBE 68C84A4100
push 00414AC8
:00407BC3 68B6874100
push 004187B6
:00407BC8 6A00
push 00000000
:00407BCA
FFD5 call
ebp
* Referenced by
a (U)nconditional or (C)onditional Jump at Address:
|:00407B9A(C)
|
:00407BCC
6A10 push
00000010
* Possible
StringData Ref from Data Obj ->"Authorization Failure"
|
:00407BCE 68644B4100
push 00414B64
*
Possible StringData Ref from Data Obj ->"The string you entered is incorrect."
====>BAD BOY!
―――――――――――――――――――――――――――――――――
兩次進入call
00408760
* Referenced
by a CALL at Addresses:
|:00403FD5 , :004040A1 , :0040786D
, :004078A1 , :004078DD
|:00407935 , :00407969
, :00407990 , :004079C4 , :00407A0C
|:00407A33
, :00407A6E , :00407DA6
|
:00408760 8B542404
mov edx, dword ptr [esp+04]
====>EDX=QTMRRMRJT
:00408764
83EC04 sub esp,
00000004
:00408767 53
push ebx
:00408768 56
push esi
:00408769 57
push edi
:0040876A
33DB xor
ebx, ebx
:0040876C 55
push ebp
:0040876D 85D2
test edx, edx
:0040876F 746A
je 004087DB
:00408771
8B74241C mov esi, dword
ptr [esp+1C]
====>ESI=692837429
:00408775
3BF3 cmp
esi, ebx
:00408777 7462
je 004087DB
:00408779 8BFA
mov edi, edx
====>EDI=EDX=QTMRRMRJT
:0040877B
B9FFFFFFFF mov ecx, FFFFFFFF
:00408780
2BC0 sub
eax, eax
:00408782 F2
repnz
:00408783 AE
scasb
:00408784 F7D1
not ecx
:00408786 49
dec ecx
:00408787
8BFE mov
edi, esi
:00408789 2BC0
sub eax, eax
:0040878B 894C2410
mov dword ptr [esp+10], ecx
:0040878F B9FFFFFFFF
mov ecx, FFFFFFFF
:00408794 F2
repnz
:00408795
AE scasb
:00408796
F7D1 not
ecx
:00408798 49
dec ecx
:00408799 33FF
xor edi, edi
:0040879B 395C2410
cmp dword ptr [esp+10], ebx
:0040879F 7E26
jle 004087C7
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004087C5(C)
|
:004087A1
3BF9 cmp
edi, ecx
:004087A3 7C02
jl 004087A7
:004087A5 33FF
xor edi, edi
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004087A3(C)
|
:004087A7
0FBE041A movsx eax, byte
ptr [edx+ebx]
一、 ====>依次取QTMRRMRJT字元的HEX值
1、 ====>EAX=51
2、 ====>EAX=54
3、 ====>EAX=4D
4、 ====>EAX=52
5、 ====>EAX=52
6、 ====>EAX=4D
7、 ====>EAX=52
8、 ====>EAX=4A
9、 ====>EAX=54
―――――――――――――――――――――――――――
二、
====>依次取RSTUVWXYZ字元的HEX值
……
……省 略…… ……
:004087AB
0FBE2C3E movsx ebp, byte
ptr [esi+edi]
一、 ====>依次取692837429字元的HEX值
1、 ====>EBP=36
2、 ====>EBP=39
3、 ====>EBP=32
4、 ====>EBP=38
5、 ====>EBP=33
6、 ====>EBP=37
7、 ====>EBP=34
8、 ====>EBP=32
9、 ====>EBP=39
―――――――――――――――――――――――――――
二、
====>依次取555490825字元的HEX值
……
……省 略…… ……
:004087AF
2BC5 sub
eax, ebp
一、 1、 ====>EAX=51 - 36=1B
2、
====>EAX=54 - 39=1B
3、 ====>EAX=4D - 32=1B
4、 ====>EAX=52 - 38=1A
5、
====>EAX=52 - 33=1F
6、 ====>EAX=4D - 37=16
7、 ====>EAX=52 - 34=1E
8、
====>EAX=4A - 32=18
9、 ====>EAX=54 - 39=1B
―――――――――――――――――――――――――――
二、
1、 ====>EAX=52 - 35=1D
2、 ====>EAX=53
- 35=1E
3、 ====>EAX=54 - 35=1F
4、
====>EAX=55 - 34=21
5、 ====>EAX=56 - 39=1D
6、 ====>EAX=57 - 30=27
7、
====>EAX=58 - 38=20
8、 ====>EAX=59 - 32=27
9、 ====>EAX=5A - 35=25
:004087B1
83F841 cmp eax,
00000041
:004087B4 7D03
jge 004087B9
:004087B6 83C01A
add eax, 0000001A
一、 1、 ====>EAX=1B + 1A=35
2、 ====>EAX=1B + 1A=35
3、
====>EAX=1B + 1A=35
4、 ====>EAX=1A + 1A=34
5、 ====>EAX=1F + 1A=39
6、
====>EAX=16 + 1A=30
7、 ====>EAX=1E + 1A=38
8、 ====>EAX=18 + 1A=32
9、
====>EAX=1B + 1A=35
―――――――――――――――――――――――――――
二、
1、 ====>EAX=1D + 1A=37
2、 ====>EAX=1E
+ 1A=38
3、 ====>EAX=1F + 1A=39
4、
====>EAX=21 + 1A=3B
5、 ====>EAX=1D + 1A=37
6、 ====>EAX=27 + 1A=41
7、
====>EAX=20 + 1A=3A
8、 ====>EAX=27 + 1A=41
9、 ====>EAX=25 + 1A=3F
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004087B4(C)
|
:004087B9
8883109E4100 mov byte ptr [ebx+00419E10],
al
====>AL 儲存在 [ebx+00419E10]處
一、
====>迴圈9次後得出555490825,呵呵,正是我硬碟序列號!
―――――――――――――――――――――――――――
二、
====>迴圈9次後得出789;7A:A? 這組字元進行比較!
:004087BF
47 inc
edi
:004087C0 43
inc ebx
:004087C1 3B5C2410
cmp ebx, dword ptr [esp+10]
:004087C5 7CDA
jl 004087A1
====>迴圈9次!
*
Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040879F(C)
|
:004087C7
B801000000 mov eax, 00000001
:004087CC
5D pop
ebp
:004087CD C683109E410000 mov byte ptr
[ebx+00419E10], 00
:004087D4 5F
pop edi
:004087D5 5E
pop esi
:004087D6 5B
pop ebx
:004087D7
83C404 add esp,
00000004
:004087DA C3
ret
―――――――――――――――――――――――――――――――――
【簡 單 求 逆】:
程式將硬碟序列號和我輸入的試煉碼進行簡單運算,然後與產品ID的後9位比較,若相同就OK了!
因此,我的目標是:000630011
:004087B6 83C01A add
eax, 0000001A
1、 ====>EAX=1D + 1A=37
①、30 - 1A=16
2、 ====>EAX=1E + 1A=38 ②、30
- 1A=16
3、 ====>EAX=1F
+ 1A=39 ③、30 - 1A=16
4、 ====>EAX=21 + 1A=3B
④、36 - 1A=1C
5、
====>EAX=1D + 1A=37 ⑤、33 -
1A=19
6、 ====>EAX=27 +
1A=41 ⑥、30 - 1A=16
7、 ====>EAX=20 + 1A=3A
⑦、30 - 1A=16
8、
====>EAX=27 + 1A=41 ⑧、31 -
1A=17
9、 ====>EAX=25 +
1A=3F ⑨、31 - 1A=17
:004087AF
2BC5 sub
eax, ebp
1、 ====>EAX=52 - 35=1D
①、16 + 35=4B
2、
====>EAX=53 - 35=1E ②、16 +
35=4B
3、 ====>EAX=54 -
35=1F ③、16 + 35=4B
4、 ====>EAX=55 - 34=21
④、1C + 34=50
5、
====>EAX=56 - 39=1D ⑤、19 +
39=52
6、 ====>EAX=57 -
30=27 ⑥、16 + 30=46
7、 ====>EAX=58 - 38=20
⑦、16 + 38=4E
8、
====>EAX=59 - 32=27 ⑧、17 +
32=49
9、 ====>EAX=5A -
35=25 ⑨、17 + 35=4C
所以,我的註冊碼應為:KKKPRFNIL
―――――――――――――――――――――――――――――――――
【註冊資訊儲存】:
註冊成功後會在目錄下生成一個同名的pdf檔案。
―――――――――――――――――――――――――――――――――
【整 理】:
Product
ID:1000630011
Input String:QTMRRMRJT
Authorization:KKKPRFNIL
―――――――――――――――――――――――――――――――――
Cracked By
巢水工作坊――fly【OCN】
2003-10-11 0:38
相關文章
- 演算法學習之簡單排序2016-04-23演算法排序
- Spring4.0MVC學習資料,簡單學習教程(一)2014-07-18SpringMVC
- 演算法學習---歸併演算法簡單記錄2020-10-29演算法
- 資料結構學習筆記-簡單選擇排序2024-06-04資料結構筆記排序
- JAVA簡單的複習資料2018-12-22Java
- 5個免費工具,讓資料科學更加簡單2019-02-26資料科學
- 簡單學習js2019-06-14JS
- Git簡單學習2018-12-12Git
- gin簡單學習2017-08-23
- 簡單Sql語句統計每年每個月的資料,每個月為資料的每列,簡單SQL練習2014-09-13SQL
- Cisco CCNA系列課程學習2015-09-05
- 大資料學習(hbase,hive,sqoop2對資料的簡單操作)2017-09-02大資料HiveOOP
- 學習一個簡單的儲存過程2012-04-06儲存過程
- 推薦演算法學習資料2012-09-22演算法
- JErasure庫簡單學習2020-11-13
- 單模式匹配 KMP 演算法 簡易版學習筆記2024-10-19模式KMP演算法筆記
- 個性化學習資料2012-02-18
- 《資料結構與演算法之美》資料結構與演算法學習書單 (讀後感)2019-04-30資料結構演算法
- 更快學習 JS 的 6 個簡單思維技巧2016-10-17JS
- 資料結構系列之單連結串列實現一個簡單的LRU演算法2019-04-03資料結構演算法
- Python學習之路1-變數和簡單資料型別2018-05-29Python變數資料型別
- Cisco sdm 簡介2007-01-02
- Bandit:一種簡單而強大的線上學習演算法2017-09-12演算法
- 一個“線上學習-練習“的簡單設計和應用2011-04-02
- 超級簡單的資料壓縮演算法—LZW演算法2021-09-09演算法
- 元學習簡單介紹2020-10-06
- AIX系統簡單學習2014-03-17AI
- LVM的簡單學習2008-04-03LVM
- 簡單的幾個排序演算法2018-04-10排序演算法
- 簡單演算法――CSDN資料庫(Mycsdn)
V1.242015-11-15演算法資料庫
- Redis 學習-資料結構基本簡介2020-04-27Redis資料結構
- 學習資料結構與演算法心得2021-01-04資料結構演算法
- 最簡單的深度學習演算法——感知器的前世今生2019-11-11深度學習演算法
- 演算法學習之路|POJ-2479最大子串和(簡單dp)2018-02-23演算法
- 強化學習之父Richard Sutton給出一個簡單思路,大幅增強所有RL演算法2024-11-01強化學習演算法
- 一個簡單的MySQL資料遷移示例2017-08-07MySql
- 簡單的SQL語句學習2020-07-07SQL
- Git 簡單使用學習筆記2018-08-28Git筆記