史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2003-12-12, 03:09 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 VB輸入限制的記憶體破解

破解的程序:Windows超級設定723。
前幾天在論壇上看了一篇破解文本框輸入限制的文章,得到些啟示,於是有了這篇破文。
執行程序,提示註冊,可輸入框竟不能輸入,嘗試用貼上法也行。註冊碼很容易找到,用__vbastrcomp比較,

ollydbg跟蹤即可看到。可無論如何無法輸入。555!!!
跟蹤regform_load,發現不像是text1.enabled=false,因為如果那樣,輸入框沒有游標閃動,且不接受右鍵點

擊。反彙編找__vbaobjectset,看看前面是否有push 00(enabled=false)沒找到。用vbded反編譯也沒看出什麼

東西。看來是另做了手腳。
沒辦法,只好想辦法改記憶體來給它資料。以下用另一VB程序來模擬輸入。
00413013 LEA ECX,DWORD PTR SS:[EBP-38] --->文本框游標
00413016 PUSH ECX
00413017 PUSH EDI
00413018 MOV EAX,DWORD PTR DS:[EDI]
0041301A CALL DWORD PTR DS:[EAX+A0] --->讀文本框資料
00413020 TEST EAX,EAX
00413022 FCLEX
00413024 JGE SHORT EX611.00413038
00413026 PUSH 0A0
0041302B PUSH EX611.00411A48
00413030 PUSH EDI
00413031 PUSH EAX
00413032 CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>;

MSVBVM60.__vbaHresultCheckObj
00413038 MOV EDX,DWORD PTR SS:[EBP-38] --->得到輸入碼
0041303B LEA ECX,DWORD PTR SS:[EBP-34]
0041303E MOV DWORD PTR SS:[EBP-38],0
00413045 CALL ESI
00413047 LEA ECX,DWORD PTR SS:[EBP-48]
0041304A CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeO>;

MSVBVM60.__vbaFreeObj
00413050 MOV EDX,DWORD PTR SS:[EBP-30]
00413053 MOV EAX,DWORD PTR SS:[EBP-34]
00413056 PUSH EDX --->輸入碼
00413057 PUSH EAX --->正確碼
00413058 PUSH 0
0041305A CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCo>;

MSVBVM60.__vbaStrComp --->比較是否相等

在0041301A處跟入,裡面還有個call,再跟入,直到:
****CED2 PUSH DWORD PTR SS:[EBP+10]
****CED5 PUSH DWORD PTR SS:[EBP+C] --->輸入碼。在OllyDbg中轉存跟隨數值,如果輸入為空,

可能顯示ABEF0108等亂碼。將其改為正確註冊碼即可。注意不要用寬字串,輸完後以00結束(98中好像用0001結

束)。
****CED8 CALL MSVBVM60.733BD01B
(以上位址前四位可能不同,但後四位應該是一樣的。)
再次執行Windows超級設定723,出現註冊提示直接點擊確定,在****CED5處中斷。修改記憶體,收工。
本人水準不高,不能破解輸入限制,只能改記憶體。麻煩哪位高手看看怎麼破解,我等也好學習。
輸入註冊碼的控件是在form7中的第5個控件text1
作者沒有用text1.enabled=false來限制輸入;
而是用了text1.locked=true下套。
所以用ultraedit在Form7區域中定位至offset 33523H
注意這裡
offset 3353dH 2D FF --> text1.locked=true
改為 2D 00 --> text1.locked=false
job done!

BTW:看了這個軟體,才發現vbde對很多控件內容並沒有反編譯;但要編程實現這個,也真的很煩;懶人於我也就手工完成了。
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 03:03 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1