Shiznit Scanner V2.1簡單演算法學習手記(期中考完總算有一點時間玩Crack,希望大家多多幫幫我,謝謝^_^) (14千字)
軟體名稱:Shiznit Scanner V2.1
軟體介紹:Fast configurable highly featured UDP/TCP
Port/Subnet Scanner for windows. Some key features are: TCP Port scanning of stealth
and non-stealth hosts, Extreme UDP Port scanning, UDP Subnet scanning!, High speed
ping scanning of subnets, TCP Subnet scanning of stealth and non-stealth hosts,
Setting of start and stop ports, Gives you the ability to save results, Nice looking
interface, Tells you if remote computer being scanned is stealth, You choose the
speed of scan, Tells you the host responses for TCP Port scan and Subnet scan,
Tells you the port use from huge lists of ports as found, Port scanner & Subnet
scanner integration, so as though you can double click an IP found with the Subnet
scanner to port scan with the Port scanner... Many new features in V2.0, a must
have for TCP/IP network administrators.
破解人:BurSH[FCG][BCG][DFCG] (於2003.4.20)
破解工具:Trw2000 1.23
Ok,Let's begin now!
Ctrl+n撥出Trw2000,下斷點BPX
GetDlgItemTextA,輸入任意註冊資訊,點選Register Shiznit Scanner 2.1.攔住了!我們下PMODULE指令回到軟體領空,然後下BC指令清除斷點,按三下F10,看到下面的程式碼:
016F:00406DB7 PUSH BYTE +01
016F:00406DB9
PUSH BYTE +00
016F:00406DBB PUSH DWORD 0421
016F:00406DC0 MOV ECX,[EBP+FFFFFBEC]
016F:00406DC6
CALL 004379C8==>取輸入的註冊碼
016F:00406DCB PUSH
EAX==>輸入的註冊碼入棧
016F:00406DCC LEA EAX,[EBP-20]==>將取得到的使用者名稱放到EAX中
016F:00406DCF PUSH EAX==>使用者名稱入棧
016F:00406DD0
CALL 00406870==>關鍵Call,進行了註冊碼的計算與校驗!F8跟進去~
016F:00406DD5
AND EAX,FF
016F:00406DDA TEST EAX,EAX==>註冊碼正確嗎?
016F:00406DDC JZ NEAR 00406E98==>不正確就跳去死:(
016F:00406DE2 PUSH BYTE +00
016F:00406DE4 PUSH
DWORD 00448C98
016F:00406DE9 PUSH DWORD 00448BCC
016F:00406DEE MOV ECX,[EBP+FFFFFBEC]
016F:00406DF4
CALL 004368A5
F8跟入406DD0的關鍵後看到:
016F:00406870
PUSH EBP
016F:00406871 MOV EBP,ESP
016F:00406873 SUB ESP,0430
016F:00406879
PUSH EBX
016F:0040687A PUSH ESI
016F:0040687B
PUSH EDI
016F:0040687C MOV EDI,[EBP+08]
016F:0040687F LEA EDX,[EBP-2C]
016F:00406882
OR ECX,BYTE -01
016F:00406885 XOR
EAX,EAX
016F:00406887 REPNE SCASB
016F:00406889 NOT
ECX
016F:0040688B SUB EDI,ECX
016F:0040688D MOV ESI,EDI
016F:0040688F MOV
EAX,ECX
016F:00406891 MOV EDI,EDX
016F:00406893 SHR ECX,02
016F:00406896
REP MOVSD ==>這句彙編指令我不明白,哪位高手教我一下?若F8跳過就會出現註冊失敗:(所以,我就直接g 到了下一條指令
016F:00406898
MOV ECX,EAX
016F:0040689A AND
ECX,BYTE +03
016F:0040689D REP MOVSB ==>g 40689F
016F:0040689F
MOV DWORD [EBP-08],00
016F:004068A6 JMP
SHORT 004068B1==>跳到下面4068B1處
016F:004068A8 MOV
ECX,[EBP-08]
016F:004068AB ADD ECX,BYTE
+01==>ECX加1!
016F:004068AE MOV [EBP-08],ECX==>將ECX值賦給[EBP-08]
016F:004068B1 MOV EDX,[EBP-08]==>EDX為計數器
016F:004068B4
MOVSX EAX,BYTE [EBP+EDX-2C]==>依次取出使用者名稱的十六進位制放入EAX([EBP-2C]放的是使用者名稱)
016F:004068B9 TEST EAX,EAX==>使用者名稱所有字元取出了沒有?
016F:004068BB
JZ 004068D0==>沒有則繼續往下
016F:004068BD MOV
ECX,[EBP-08]==>ECX為計數器
016F:004068C0 MOV
DL,[EBP+ECX-2C]==>依次取出使用者名稱的十六進位制放入DL([EBP-2C]放的是使用者名稱)
016F:004068C4 ADD
DL,0A==>依次將使用者名稱的十六進位制加AH,結果放入DL!
016F:004068C7 MOV
EAX,[EBP-08]
016F:004068CA MOV [EBP+EAX-2C],DL==>將使用者名稱逐個轉換後放入[EBP-2C]
016F:004068CE JMP SHORT 004068A8
016F:004068D0
MOV DWORD [EBP+FFFFFBE0],00448B50==>448B50處放的是一串字元:^OKW*V_MsN(逐個減AH後為:TEAM
LUiD.黑名單喲!^0^)
016F:004068DA LEA ECX,[EBP-2C]==>將上面轉換後的使用者名稱放入ECX
016F:004068DD MOV [EBP+FFFFFBDC],ECX------------
016F:004068E3 MOV EDX,[EBP+FFFFFBDC]
\
016F:004068E9 MOV
AL,[EDX]
|
016F:004068EB MOV [EBP+FFFFFBDB],AL
|這
016F:004068F1 MOV
ECX,[EBP+FFFFFBE0] |段
016F:004068F7 CMP AL,[ECX]
|逐
016F:004068F9 JNZ
00406941
|位
016F:004068FB CMP BYTE
[EBP+FFFFFBDB],00 |比
016F:00406902 JZ
00406935
|較
016F:00406904 MOV EDX,[EBP+FFFFFBDC]
|用
016F:0040690A MOV
AL,[EDX+01]
|戶
016F:0040690D MOV [EBP+FFFFFBDA],AL
|名
016F:00406913 MOV
ECX,[EBP+FFFFFBE0] |是
016F:00406919 CMP AL,[ECX+01]
|否
016F:0040691C JNZ
00406941
|屬
016F:0040691E ADD DWORD
[EBP+FFFFFBDC],BYTE +02 |於
016F:00406925 ADD
DWORD [EBP+FFFFFBE0],BYTE +02 |黑
016F:0040692C CMP
BYTE [EBP+FFFFFBDA],00 |名
016F:00406933
JNZ 004068E3
|單
016F:00406935 MOV
DWORD [EBP+FFFFFBD4],00 |.
016F:0040693F
JMP SHORT 0040694C
|不
016F:00406941 SBB EDX,EDX
|是
016F:00406943 SBB EDX,BYTE -01
|就
016F:00406946 MOV
[EBP+FFFFFBD4],EDX |跳
016F:0040694C MOV EAX,[EBP+FFFFFBD4]
|去
016F:00406952 MOV [EBP+FFFFFBD0],EAX
|4
016F:00406958 CMP
DWORD [EBP+FFFFFBD0],BYTE +00 |0
016F:0040695F JNZ
NEAR 00406AB1
|6
016F:00406965 MOV DWORD [EBP+FFFFFBE8],00
|A
016F:0040696F CMP DWORD
[EBP+FFFFFBE8],BYTE +00 |C
016F:00406976 JNZ
0040697F
|3
016F:00406978 XOR AL,AL==>註冊碼校驗錯誤的標誌!
/
016F:0040697A JMP 00406D61==>黑名單?你死定了^_^--
016F:0040697F MOV EDI,00448B48
016F:00406984
LEA EDX,[EBP-2C]
016F:00406987 OR
ECX,BYTE -01
016F:0040698A XOR EAX,EAX
016F:0040698C REPNE SCASB
016F:0040698E NOT
ECX
016F:00406990 SUB EDI,ECX
016F:00406992
MOV ESI,EDI
016F:00406994 MOV
EAX,ECX
上面羅裡羅嗦半天就是校驗一個黑名單-_-0作者"不好意思"把黑名單直接寫出來,搞成"f(使用者名稱)=特定字串"進行比較……
…………
016F:00406ABA MOV EAX,[EBP-04]
016F:00406ABD
ADD EAX,BYTE +01
016F:00406AC0 MOV
[EBP-04],EAX
016F:00406AC3 MOV ECX,[EBP+08]==>ECX為計數器!
016F:00406AC6 ADD ECX,[EBP-04]==>
016F:00406AC9
MOVSX EDX,BYTE [ECX]==>逐位使用者名稱十六進位制放入EDX
016F:00406ACC TEST
EDX,EDX==>迴圈完了?
016F:00406ACE JZ 00406AD2==>完了就走人!這段是為了使用者名稱位數(放在EAX)
016F:00406AD0 JMP SHORT 00406ABA
016F:00406AD2
MOV DWORD [EBP-0C],00==>[EBP-0C]清空
016F:00406AD9
MOV EAX,[EBP+08]==>將使用者名稱放入EAX
016F:00406ADC MOVSX
ECX,BYTE [EAX]==>逐位取出第一位使用者名稱的十六進位制放入EAX
016F:00406ADF IMUL
ECX,ECX,54BF==>將第一位使用者名稱的十六進位制乘以54BFH,結果放入ECX
016F:00406AE5 MOV
EDX,[EBP-0C]==>將[EBP-0C]值(開始為空,因為406AD2處的運算)放入EDX
016F:00406AE8
ADD EDX,ECX==>相加
016F:00406AEA MOV
[EBP-0C],EDX==>再放回去,[EBP-0C]放的上面的計算結果
016F:00406AED MOV
EAX,[EBP+08]
016F:00406AF0 MOVSX ECX,BYTE
[EAX+01]==>取使用者名稱第二位
016F:00406AF4 MOV EDX,[EBP-0C]==>去得前面計算的結果放入EDX
016F:00406AF7 LEA EAX,[EDX+ECX+00205FDF]==>EAX=EDX+ECX+205FDFH!
016F:00406AFE MOV [EBP-0C],EAX==>結果仍然還是放入到[EBP-0C]中去
016F:00406B01 MOV ECX,[EBP+08]
016F:00406B04
MOVSX EDX,BYTE [ECX+02]
016F:00406B08 IMUL EDX,EDX,5C8F
016F:00406B0E MOV EAX,[EBP-0C]
016F:00406B11
ADD EAX,EDX
016F:00406B13 MOV
[EBP-0C],EAX
016F:00406B16 MOV ECX,[EBP+08]
016F:00406B19 MOVSX EDX,BYTE [ECX+03]
016F:00406B1D
MOV EAX,[EBP-0C]
016F:00406B20 LEA
ECX,[EAX+EDX+00987227]
016F:00406B27 MOV
[EBP-0C],ECX
016F:00406B2A MOV EDX,[EBP+08]
016F:00406B2D MOVSX EAX,BYTE [EDX+04]
016F:00406B31
IMUL EAX,EAX,645F
016F:00406B37 MOV
ECX,[EBP-0C]
016F:00406B3A ADD ECX,EAX
016F:00406B3C
MOV [EBP-0C],ECX
016F:00406B3F MOV
EDX,[EBP+08]
016F:00406B42 MOVSX EAX,BYTE [EDX+05]
016F:00406B46 MOV ECX,[EBP-0C]
016F:00406B49
LEA EDX,[ECX+EAX+006A595F]
016F:00406B50 MOV
[EBP-0C],EDX
016F:00406B53 MOV EAX,[EBP+08]
016F:00406B56 MOVSX ECX,BYTE [EAX+06]
016F:00406B5A
IMUL ECX,ECX,6C2F
016F:00406B60 MOV
EDX,[EBP-0C]
016F:00406B63 ADD EDX,ECX
016F:00406B65
MOV [EBP-0C],EDX
016F:00406B68 MOV
EAX,[EBP+08]
016F:00406B6B MOVSX ECX,BYTE [EAX+07]
016F:00406B6F MOV EDX,[EBP-0C]
016F:00406B72
LEA EAX,[EDX+ECX+00140B9F]
016F:00406B79 MOV
[EBP-0C],EAX
016F:00406B7C MOV ECX,[EBP+08]
016F:00406B7F MOVSX EDX,BYTE [ECX+08]
016F:00406B83
IMUL EDX,EDX,73FF
016F:00406B89 MOV
EAX,[EBP-0C]
016F:00406B8C ADD EAX,EDX
016F:00406B8E
MOV [EBP-0C],EAX
016F:00406B91 MOV
ECX,[EBP+08]
016F:00406B94 MOVSX EDX,BYTE [ECX+09]
016F:00406B98 IMUL EDX,EDX,29C7
016F:00406B9E
MOV EAX,[EBP-0C]
016F:00406BA1 ADD
EAX,EDX
016F:00406BA3 MOV [EBP-0C],EAX
016F:00406BA6 MOV ECX,[EBP+08]
016F:00406BA9
MOVSX EDX,BYTE [ECX+0A]
016F:00406BAD MOV
EAX,[EBP-0C]
016F:00406BB0 LEA ECX,[EAX+EDX+00020A3F]
016F:00406BB7 MOV [EBP-0C],ECX
016F:00406BBA
MOV EDX,[EBP+08]
016F:00406BBD MOVSX
EAX,BYTE [EDX+0B]
016F:00406BC1 IMUL EAX,EAX,0001DF47
016F:00406BC7 MOV ECX,[EBP-0C]
016F:00406BCA
ADD ECX,EAX
016F:00406BCC MOV
[EBP-0C],ECX
016F:00406BCF MOV EDX,[EBP+08]
016F:00406BD2 MOVSX EAX,BYTE [EDX+0C]
016F:00406BD6
MOV ECX,[EBP-0C]
016F:00406BD9 LEA
EDX,[ECX+EAX+0001B44F]
016F:00406BE0 MOV
[EBP-0C],EDX
016F:00406BE3 MOV EAX,[EBP+08]
016F:00406BE6 MOVSX ECX,BYTE [EAX+0D]
016F:00406BEA
IMUL ECX,ECX,00018957
016F:00406BF0 MOV
EDX,[EBP-0C]
016F:00406BF3 ADD EDX,ECX
016F:00406BF5
MOV [EBP-0C],EDX
016F:00406BF8 MOV
EAX,[EBP+08]
016F:00406BFB MOVSX ECX,BYTE [EAX+0E]
016F:00406BFF MOV EDX,[EBP-0C]
016F:00406C02
LEA EAX,[EDX+ECX+00030FF7]
016F:00406C09 MOV
[EBP-0C],EAX
016F:00406C0C MOV ECX,[EBP+08]
016F:00406C0F MOVSX EDX,BYTE [ECX+0F]
016F:00406C13
IMUL EDX,EDX,000365E7
016F:00406C19 MOV
EAX,[EBP-0C]
016F:00406C1C ADD EAX,EDX
016F:00406C1E
MOV [EBP-0C],EAX
016F:00406C21 MOV
ECX,[EBP+08]
016F:00406C24 MOVSX EDX,BYTE [ECX+10]
016F:00406C28 MOV EAX,[EBP-0C]
016F:00406C2B
LEA ECX,[EAX+EDX+0005177F]
016F:00406C32 MOV
[EBP-0C],ECX
016F:00406C35 MOV EDX,[EBP+08]
016F:00406C38 MOVSX EAX,BYTE [EDX+11]
016F:00406C3C
IMUL EAX,EAX,0006C917
016F:00406C42 MOV
ECX,[EBP-0C]
016F:00406C45 ADD ECX,EAX
016F:00406C47
MOV [EBP-0C],ECX
016F:00406C4A MOV
EDX,[EBP+08]
016F:00406C4D MOVSX EAX,BYTE [EDX+12]
016F:00406C51 MOV ECX,[EBP-0C]
016F:00406C54
LEA EDX,[ECX+EAX+00087AAF]
016F:00406C5B MOV
[EBP-0C],EDX
016F:00406C5E MOV EAX,[EBP+08]
016F:00406C61 MOVSX ECX,BYTE [EAX+13]
016F:00406C65
IMUL ECX,ECX,3039
016F:00406C6B MOV
EDX,[EBP-0C]
016F:00406C6E ADD EDX,ECX
016F:00406C70
MOV [EBP-0C],EDX
016F:00406C73 MOV
EAX,[EBP+08]
016F:00406C76 MOVSX ECX,BYTE [EAX+14]
016F:00406C7A IMUL ECX,ECX,D431
016F:00406C80
MOV EDX,[EBP-0C]
016F:00406C83 ADD
EDX,ECX
016F:00406C85 MOV [EBP-0C],EDX
016F:00406C88 MOV EAX,[EBP+08]
016F:00406C8B
MOVSX ECX,BYTE [EAX+15]
016F:00406C8F IMUL
ECX,ECX,372B
016F:00406C95 MOV EDX,[EBP-0C]
016F:00406C98 ADD EDX,ECX
016F:00406C9A MOV
[EBP-0C],EDX
016F:00406C9D MOV EAX,[EBP+08]
016F:00406CA0 MOVSX ECX,BYTE [EAX+16]
016F:00406CA4
IMUL ECX,ECX,DE0D
016F:00406CAA MOV
EDX,[EBP-0C]
016F:00406CAD ADD EDX,ECX
016F:00406CAF
MOV [EBP-0C],EDX
016F:00406CB2 MOV
EAX,[EBP+08]
016F:00406CB5 MOVSX ECX,BYTE [EAX+17]
016F:00406CB9 IMUL ECX,ECX,00010104
016F:00406CBF
MOV EDX,[EBP-0C]
016F:00406CC2 ADD
EDX,ECX
016F:00406CC4 MOV [EBP-0C],EDX
016F:00406CC7 MOV EAX,[EBP+08]
016F:00406CCA
MOVSX ECX,BYTE [EAX+18]
016F:00406CCE IMUL
ECX,ECX,8711
016F:00406CD4 MOV EDX,[EBP-0C]
016F:00406CD7 ADD EDX,ECX
016F:00406CD9 MOV
[EBP-0C],EDX
016F:00406CDC MOV EAX,[EBP+08]
016F:00406CDF MOVSX ECX,BYTE [EAX+19]
016F:00406CE3
IMUL ECX,ECX,00010845
016F:00406CE9 MOV
EDX,[EBP-0C]
016F:00406CEC ADD EDX,ECX
016F:00406CEE
MOV [EBP-0C],EDX
016F:00406CF1 MOV
EAX,[EBP+08]
016F:00406CF4 MOVSX ECX,BYTE [EAX+1A]
016F:00406CF8 IMUL ECX,ECX,8711
016F:00406CFE
MOV EDX,[EBP-0C]
016F:00406D01 ADD
EDX,ECX
016F:00406D03 MOV [EBP-0C],EDX
016F:00406D06 MOV EAX,[EBP+08]
016F:00406D09
MOVSX ECX,BYTE [EAX+1B]
016F:00406D0D IMUL
ECX,ECX,FFBA
016F:00406D13 MOV EDX,[EBP-0C]
016F:00406D16 ADD EDX,ECX
016F:00406D18 MOV
[EBP-0C],EDX
016F:00406D1B MOV EAX,[EBP+08]
016F:00406D1E MOVSX ECX,BYTE [EAX+1C]
016F:00406D22
IMUL ECX,ECX,000181B7
016F:00406D28 MOV
EDX,[EBP-0C]
016F:00406D2B ADD EDX,ECX
016F:00406D2D
MOV [EBP-0C],EDX
016F:00406D30 MOV
EAX,[EBP+08]
016F:00406D33 MOVSX ECX,BYTE [EAX+1D]
016F:00406D37 IMUL ECX,ECX,85BA
016F:00406D3D
MOV EDX,[EBP-0C]
016F:00406D40 ADD
EDX,ECX
016F:00406D42 MOV [EBP-0C],EDX
016F:00406D45 MOV EAX,[EBP-0C]==>將正確註冊碼放入EAX
016F:00406D48
CMP EAX,[EBP+0C]==>真假註冊碼比較!
016F:00406D4B JNZ
00406D58
016F:00406D4D MOV DWORD
[EBP-0C],00
016F:00406D54 MOV AL,01
016F:00406D56
JMP SHORT 00406D61
016F:00406D58 MOV
DWORD [EBP-0C],00
016F:00406D5F XOR AL,AL
016F:00406D61 POP EDI
016F:00406D62
POP ESI
016F:00406D63 POP EBX
016F:00406D64 MOV ESP,EBP
016F:00406D66
POP EBP
016F:00406D67 RET
08
406B01--406D42這段進行一些跟上面(406AD9--406AFE)類似的運算,第2n+1位乘以某一個數後,與前面的計算結果(放在[EBP-0C])相加,結果在繼續與下一位和某一定值相加,[EBP-0C]放著地最終計算結果就是真正的註冊碼!!
BTW:軟體的註冊資訊儲存在C:\WINDOWS\Srpesg.dat
Ok,that's all!謝謝你耐心看完:)
相關文章
- 安裝是遇到錯誤,大家幫我看看,謝謝2003-10-20
- 一個關於mysql方面的問題,希望斑竹和大家能幫忙,謝謝!!2002-09-11MySql
- 請求幫助!謝謝!2004-04-07
- 請幫我看看呼叫webservice的問題謝謝!2005-04-26Web
- benq大哥,幫忙,請進入,謝謝!2006-05-18ENQ
- 希望高手幫助一下 ,小弟在這裡感謝了2004-08-17
- 請大家幫忙,關於儲存過程分頁的問題...謝謝2008-04-17儲存過程
- 來幫我看看這個簡單的遠端客戶端呼叫EJB出錯的例子,謝謝了2004-01-25客戶端
- 請各位高人幫我指點一下我的職業規劃!謝謝了!(5年多工作經驗)2006-04-08
- 謝謝斑竹能否幫個忙!! (改個小程式)2005-05-25
- 有關javaAPI,請各位高手幫忙,拜謝2004-03-20JavaAPI
- 做交叉編譯時候的一點問題,麻煩有這方面經驗的人幫個忙,謝謝了啊(轉)2007-08-12編譯
- 《謝謝你遲到》學習筆記2018-05-15筆記
- 各位高手來幫我看看sql的問題吧,謝謝啦,線上等答案啊2009-07-10SQL
- jive配置中的database問題?!請幫忙阿謝謝!2003-01-02Database
- 請問java行集如何理解,哪裡有較詳細的幫助?謝謝2002-11-20Java
- 我下載新的論壇,安裝出現錯誤,誰幫我解決下,謝謝2008-04-22
- 幫忙看看如何設定,跪謝!2004-11-02
- 請教關於jive原始碼,請各位高手幫忙 ,謝謝!!!2003-07-04原始碼
- Tomcat服務問題,Cpu100%,急需幫助,請高手指點,謝謝!!!2004-05-19Tomcat
- Oracle在UNIX上實施的新書就要面市,還請大家幫忙看看,書名怎麼定合適?謝謝大家!2009-08-18Oracle新書
- Jdon版jive安裝過程中,mysql資料庫連線出錯!(請幫幫忙,謝謝!)2005-12-31MySql資料庫
- 《程式人生》一個月了,我要謝謝,你、你、還有你2019-11-28
- jboss3安裝有問題多謝幫忙看一下2005-04-04S3
- 測試問題思考,有些問題我自己有答案,但是我想聽聽大家的見解,謝謝!2020-09-02
- 我是初學者,請老師指點我該怎麼學JAVA,謝謝啦2007-12-05Java
- 我的第一個entity Ejb就出錯!大家幫幫忙2004-03-20
- 關於資料庫的問題。請幫忙看下,在下先謝謝了2004-02-06資料庫
- Vsftpd匿名無法上傳,配置如下,幫忙找下原因,謝謝~!(轉)2007-08-12FTP
- 誰有Oracle Support Identifier帳號,幫我下載一個漏洞補丁,萬分感謝。。膜拜。。2022-06-22OracleIDE
- 高手幫忙解決兩道JAVA題,跪謝!!2007-10-23Java
- 在weblogic中配置mysql的連線池的問題??希望大家進來看看了,謝謝了2004-07-28WebMySql
- 學習謝永生 影片2012-08-14
- 擼一個 webpack 外掛,希望對大家有所幫助2021-12-16Web
- 請bang老師幫我看下這樣說面向服務和麵向物件的關係是否正確,謝謝2008-11-12物件
- 總結大學裡JavaWeb期末考試的重點,希望有幫助!2020-11-26JavaWeb
- 限界上下文和四色原型,請banq大牛幫助解答一下疑問吧,謝謝2015-01-28原型
- 板橋及各位高手,幫我看看遠端呼叫這個難題,非常感謝。2004-11-16