《贏證股市分析軟體》V2.01 高階版的破解 (10千字)
《贏證股市分析軟體》V2.01 高階版的破解
軟體名稱:《贏證股市分析軟體》V2.01
釋出日期: 2001.3.5
軟體來源:《軟體》雜誌第4期配套光碟。
軟體簡介:
《贏證股市分析軟體》主要面向廣大中小投資者,特別是上班族股民,為他們提供一種功能強大,價廉物美的炒股工具。
軟體分為共享版,標準版和高階版三個版本,使用者可以完全免費地,無期限地試用共享版軟體,充分體會軟體強大的功能。如果使用者感到軟體的功能能夠滿足自己的需要,就可以註冊成為標準版或高階版,以獲取更多更全面的功能和廠家提供的更多服務內容。
高階版是《贏證股市分析軟體》系列產品中最優秀的版本。與標準版的唯一區別就是增加了“贏證紅綠燈”訊號。該訊號是一種全新的選股方式,是由計算機透過對大量的歷史資料進行智慧分析總結出來的具有普遍規律性的選股法。經過實際驗證,該訊號能夠獲得非常準確清晰的買賣結果,以紅綠燈的方式直接表現在K線圖中。
【宣告】
我寫這篇文章是以技術交流為主,希望大家在轉載時能保持文章的完整性。
作 者:佳潔士
解密日前:2001年4月26日
解密工具:1、Trw2000 1.22
2、W32Dasm 8.93 超級中文版
從軟體幫助檔案的介紹上可以得知,軟體的使用許可權越高,功能越強大,而使用許可權是同過註冊碼來確定的,小弟的功力太菜。追不到它的註冊碼。不得已用爆破手段來搞定它。
找到我們的神兵利器W32Dasm 8.93 超級中文版反彙編《贏證股市分析軟體》的主程式StockNT.exe。靜態分析看看能夠有什麼收穫。皇天不負有心人。讓我找到了共享版、標準版、高階版等關鍵字串。並記下了他們的記憶體地址(memory
offset)。
共享版: 0042AE28 MOV EAX,005135E0
標準版: 0042AE35 PUSH DWORD 005135D0
高階版: 0042AE41 PUSH DWORD 005135C0
我們可以利用在W32Dasm 8.93 超級中文版找到的記憶體地址(memory offset),在Trw2000中下中斷點。
在TRW2000執行視窗用Browse選中StockNT.exe,然後用Loaf按鈕裝載。裝載檔案後,將中斷在這檔案的主函式(即程式的入口處)。
將中斷點下在共享版上:bpx 0042AE28
..............
0167:0042ADE9 LEA ECX,[EDI+EDI*4]
0167:0042ADEC PUSH BYTE +00
0167:0042ADEE LEA ECX,[ECX+ECX*4]
0167:0042ADF1 LEA ECX,[EBX+ECX*4]
0167:0042ADF4 LEA ECX,[ECX+ECX*4]
0167:0042ADF7 LEA EDX,[ECX+ECX*4]
0167:0042ADFA LEA ECX,[EBP+EDX*4+00]
0167:0042ADFE MOV EDX,[EAX+1C]
0167:0042AE01 PUSH ECX
0167:0042AE02 PUSH DWORD 05C2
//將05C2壓入堆疊. 關鍵哦!
0167:0042AE07 PUSH EDX
0167:0042AE08 CALL `USER32!SendMessageA` ==>重點!!! 按F8進入此CALL.
0167:0042AE0E TEST EAX,EAX
試著下 EAX=1(這是以EAX為旗幟)
0167:0042AE10 JNZ 0042AE30
可以看見變成標準版。隨便移動滑鼠,
0167:0042AE12 CALL 004CFC96
又變回共享版了。
0167:0042AE17 MOV ECX,[EAX+04]
0167:0042AE1A CALL 00499610
0167:0042AE1F TEST EAX,EAX
0167:0042AE21 MOV EAX,005135F0
0167:0042AE26 JNZ 0042AE2D
0167:0042AE28 MOV EAX,005135E0 <<=共享版
0167:0042AE2D PUSH EAX
0167:0042AE2E JMP SHORT 0042AE46
0167:0042AE30 CMP EAX,BYTE +01
//比較EAX是不是等於1
0167:0042AE33 JNZ 0042AE3C
//不相等就跳,
0167:0042AE35 PUSH DWORD 005135D0 <<=標準版
0167:0042AE3A JMP SHORT 0042AE46
0167:0042AE3C CMP EAX,BYTE +02
//比較EAX是不是等於2
0167:0042AE3F JNZ 0042AE4F
//不相等就跳,
0167:0042AE41 PUSH DWORD 005135C0 <<=高階版
0167:0042AE46 LEA ECX,[ESP+14]
0167:0042AE4A CALL 004B7D9F
0167:0042AE4F MOV EAX,[ESP+10]
0167:0042AE53 MOV EDX,[ESI]
0167:0042AE55 MOV ECX,[EAX-08]
.....................
看到共享版、標準版、高階版的區別了嗎! 他們都是以EAX的值作為判斷共享版、標準版、高階版的!
也就是說:當EAX=0 為共享版
當EAX=1 為標準版
當EAX=2 為高階版
向上看看,看何處使EAX可為1、2 。可以找到這裡:
0167:0042AE08 CALL `USER32!SendMessageA`
0167:0042AE0E TEST EAX,EAX <<-強制使EAX=1,軟體將變成標準版。
0167:0042AE10 JNZ 0042AE30
強制使Eax=2,軟體會變成高階版。
如果在上述部位強制使EAX=1。雖然在使用許可權中會變成了標準版、高階版,但是還是有很多的功能不能正常使用。比如紅綠燈功能就不能使用,也就是說軟體表面上變成是標準版、高階斑,但同實際上還是共享版。只是文字改變了。可以肯定程式在某處有全域性變數註冊旗幟。
現在要做的事情就是找到這個註冊旗幟!!!
按F8進入0167:0042AE08 CALL `USER32!SendMessageA`
這時將來到系統檔案USER32.dll的鄰空。
按F10慢慢走,看看程式要把我們帶到什麼地方?
....................
0167:BFF559E6 CALL BFF55000
0167:BFF559EB PUSH DWORD [ESP+04]
0167:BFF559EF CALL BFF5506B
0167:BFF559F4 TEST EAX,EAX
0167:BFF559F6 JZ BFF55A5E
0167:BFF559F8 TEST BYTE [EAX+2F],02
0167:BFF559FC JZ BFF55A5E
0167:BFF559FE MOV CX,[FS:28]
0167:BFF55A06 CMP [EAX+20],CX
0167:BFF55A0A JNZ BFF55A5E
0167:BFF55A0C MOV EDX,[BFF5D5D2]
0167:BFF55A12 ADD EDX,1112
0167:BFF55A18 CMP WORD [EDX+0A],BYTE +00
0167:BFF55A1D JNZ BFF55A5E
0167:BFF55A1F CMP WORD [EDX+1A],BYTE +00
0167:BFF55A24 JNZ BFF55A5E
0167:BFF55A26 PUSH EAX
0167:BFF55A27 PUSH CX
0167:BFF55A29 PUSH WORD 00
0167:BFF55A2D CALL `KERNEL32!MapSL`
0167:BFF55A32 MOV ECX,EAX
0167:BFF55A34 POP EAX
0167:BFF55A35 ADD ECX,BYTE +5E
0167:BFF55A38 CMP WORD [ECX+0A],BYTE +00
0167:BFF55A3D JNZ BFF55A5E
0167:BFF55A3F CMP WORD [ECX+1A],BYTE +00
0167:BFF55A44 JNZ BFF55A5E
0167:BFF55A46 MOV CX,[EAX+2A]
0167:BFF55A4A MOV ES,CX
0167:BFF55A4D MOVZX EAX,WORD [EAX+28]
0167:BFF55A51 MOV EAX,[ES:EAX+02]
0167:BFF55A55 PUSH DS
0167:BFF55A56 POP ES
0167:BFF55A57 CALL BFF5500C
0167:BFF55A5C JMP EAX
<<==回到StockNT.exe
......................
經過上面不長不短的程式碼。突然從系統檔案USER32.dll的領空返回到了StockNT.exe的領空。
這可是軟體的關鍵的部位,好好的分析一下。
......................
EAX=004B440A EBX=00000005 ECX=C174DC30 EDX=000194C4
ESI=0079F7DC
EDI=000007D1 EBP=00000008 ESP=0079F730 EIP=004B440A
o d I s Z a P c
CS=0167 DS=016F SS=016F ES=016F FS=0FAF GS=0000
SS:0079FA04=000005C2 看這兒! ==================================================byte==============PROT========
0030:00000000 9E 0F C9 D8 65 04 70 00-16 00 E9 CD 65 04 70 00 ....e.p.....e.p.
0030:00000010 65 04 70 00 54 FF 00 F0-08 80 00 F0 6F EF 00 F0 e.p.T.......o...
0030:00000020 00 00 EF 08 8C 19 CA CE-6F EF 00 F0 6F EF 00 F0 ........o...o...
0030:00000030 6F EF 00 F0 6F EF 00 F0-9A 00 E9 CD 65 04 70 00 o...o.......e.p.
==========================================================================ROT32
0167:004B4409 RET
0167:004B440A PUSH EBP
0167:004B440B MOV EBP,ESP
0167:004B440D CMP DWORD PTR [EBP+0C],00000360
0167:004B4414 JNZ 004B441B
0167:004B4416 PUSH 01
0167:004B4418 POP EAX
0167:004B4419 JMP 004B4435
0167:004B441B PUSH DWORD PTR [EBP+08]
0167:004B441E CALL 004B4385
0167:004B4423 PUSH DWORD PTR [EBP+14]
0167:004B4426 PUSH DWORD PTR [EBP+10]
0167:004B4429 PUSH DWORD PTR [EBP+0C]
0167:004B442C PUSH DWORD PTR [EBP+08]
0167:004B442F PUSH EAX
0167:004B4430 CALL 004B419D
0167:004B4435 POP EBP
0167:004B4436 RET 0010
0167:004B4439 MOV EAX,004B440A
0167:004B443E RET
0167:004B443F MOV EAX,004E24A0
0167:004B4444 CALL 004A3488
0167:004B4449 SUB ESP,40
0167:004B444C PUSH EBX
0167:004B444D PUSH ESI
====================================STOCKNT!.text+000B3409======================
Break due to BPX #0167:0042AE02 (ET=2.31 seconds)
:pagein n 23.txt
.................
0167:004B440A PUSH EBP
0167:004B440B MOV EBP,ESP
0167:004B440D CMP DWORD PTR [EBP+0C],00000360
取堆疊的值與0360作比較
0167:004B4414 JNZ 004B441B
0167:004B4416 PUSH 01
//將01壓入堆疊 <<=註冊旗幟哦
0167:004B4418 POP EAX
//從堆疊取出01到EAX
0167:004B4419 JMP 004B4435
[EBP+0C]=05C2,05C2是不是很眼熟,在什麼地方見過。找一找?
把0167:004B440D CMP DWORD PTR [EBP+0C],00000360 改成0167:004B440D
CMP DWORD PTR [EBP+0C],000005C2。來改變軟體的跳轉方向。
按F5回到程式,這時可以發現軟體在使用許可權上已經變成了標準版。試一試各種功能。都可以正常使用(除紅綠燈功能外)。從前面的分析我們知道!高階版與標準版的區別!只是EAX值的不同,EAX=2就是高階版。
0167:004B440D CMP DWORD PTR [EBP+0C],000005C2
0167:004B4414 JNZ 004B441B
0167:004B4416 PUSH 01
改為:PUSH 02
0167:004B4418 POP EAX
0167:004B4419 JMP 004B4435
這樣一來,不就使EAX=2了嘛。看使用許可權中是不是就變成了高階版。 試一下高階版中的紅綠燈功能。可以正常使用了。
最後整理一下:
高階版的修改方法:
找到:817D0C6003000075056A01
改成:------C205----------02 注:“ - ” 表示不用改!
佳潔士
2001.04.26
後記:在寫《贏證股市分析軟體》破解記錄時,發現一個有趣的現象。我寫破解錄時喜歡把軟體的名稱作為檔名稱,比如說:"贏證股市分析軟體.txt".此時再執行贏證,贏證會提示軟體已經在執行之中。不知這算不算軟體的Bug。
廣告: 我們的目標,沒有加密! -----佳潔士
相關文章
- 分析破解某個軟體公司出的理財東東!
(14千字)2015-11-15
- 財智證券結算軟體2.5 破解註冊碼分析!使用ollydbg 破解註冊動畫!高手莫入! (1千字)2001-11-20動畫
- 一個超容易破解的軟體! (5千字)2001-01-21
- 菜鳥破解實錄(五)之 EditPlus v2.01 (7千字)2000-08-01
- unix軟體ncftpd 2.7.1之破解(11千字)2002-04-07FTP
- 兩個月的破解回顧以及7個軟體的破解! (3千字)2000-12-28
- 高階軟體工程筆記2024-04-30軟體工程筆記
- 具體的破解過程來也! (10千字)2001-04-21
- 如何破解掉vt4.0的軟體狗(一種醫藥用影像分析軟體) 不錯的文章
(7千字)2015-11-15
- 軟體 system menachinc 的它用(附:序列號破解)
(1千字)2000-03-19
- mago進來,要漢化的軟體己破解 (1千字)2000-07-05Go
- 英語全文朗讀軟體---破解 (1千字)2000-10-04
- 一個典型的時間限制軟體的破解 (4千字)2001-01-29
- 再來篇輸入驗證+重啟驗證的軟體破解2015-11-15
- 破解瑞星防毒軟體2001版,半位元組,沒搞錯吧??(破解手記) (1千字)2001-02-12防毒
- 《卜運算元_權謀個人彩票分析助理軟體》V6.00的破解 (2千字)2001-05-13
- 菜鳥初鳴--最易破解的軟體 supercleaner (2千字)2001-10-11
- 破解一個CCG的軟體,改半位元組! (6千字)2002-01-27
- 軟體破解初體驗之 MacroClip 2000.2.7 程式碼修改破解 (15千字)2001-10-09Mac
- 高階圖形繪製軟體的原理猜想2020-10-08
- 股市風暴4.0的外殼分析與脫殼方法(一) (7千字)2001-06-10
- 軟體破解2008-06-02
- 『軟體推薦』錄屏大師破解版2019-01-15
- 破解ACD Systems試用軟體的三步曲 (1千字)2000-03-04
- 贏家股票盤後分析1.2 (8千字)2001-07-07
- TDMD軟體狗破解方法(帶狗殺狗) (6千字)2001-10-25
- CSSEE7023高階軟體工程2024-03-27CSS軟體工程
- 再貼:軟體管理專家(Flashsoft) 1.05的破解(高手莫入)
(3千字)2001-04-22
- 小小助手V2.01的破解過程-----算是我留給初學者的一偏破文
(7千字)2015-11-15
- 股票賬戶管理軟體 1.12(破解手記) (9千字)2002-02-16
- 超級個人軟體 V2.5 破解過程! (3千字)2002-03-04
- 破解flash32(抓圖軟體)實站錄 (2千字)2000-05-28
- FINDITNOW!1.25 or 102 中文版 破解心得 (14千字)2002-02-09
- 事實證明,國產BI軟體的財務資料分析價效比極高!2023-05-16
- Prism 10 for Mac(統計分析繪圖軟體)10.0.0.3啟用版2023-10-15Mac繪圖
- bi軟體有哪些,哪些bi軟體的資料分析效率高?2022-12-06
- 破解勒索軟體2020-08-19
- IPTools 1.10 破解 (5千字)2001-02-11