PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   請教有除錯大師 組合語言的高手嗎 拜託別沉下去 (https://www.pcdvd.com.tw/showthread.php?t=670893)

DDTJK 2006-11-12 11:33 AM

請教有除錯大師 組合語言的高手嗎 拜託別沉下去
 
假設得到記憶體 03700000h 的數據 大小 25 byte

edx 為指標 = 03700000h
eax 為大小 = 25 byte (HEX)

數據如下

03700000 02 02 25 00 64 6C 20 73 65 6E 64 20 64 61 74 61 %.dl send data
03700010 20 31 30 31 00

第1部分
-------------------------------
將eax暫時存放在 10051300
03700011 03700013 移動到 ax
比較ax 是否等於3131
正確則跳
不跳則又將 10051300 存放的數據放回eax
返回

-------------code--------------
mov dword ptr ds:[10051300],eax
mov ah,byte ptr ss:[edx+11]
mov al,byte ptr ss:[edx+13]
cmp ax,3131
je 跳到第2部分
mov eax,dword ptr ds:[10051300]
retn
--------------------------------


第2部分
-------------------------------
跳以後將 10051310h 位置上的5個位元組 01 01 05 00 01 寫到 edx 的指標 03700000h 位置上
變成
03700000h 01 01 05 00 01
把eax變為00000005
返回

-------------code--------------
?????????
mov eax,5
retn
-------------------------------
第1部分我知道是這樣 但是第二部分 把1005310h 的五個位元組 寫到03700000h該怎麼表現出來呢 也就是問號???部分

我想用SoftICE打個patch但無奈初學者 能力有限

麻煩眾高手大濕指導一下 感謝 :p

ouchman 2006-11-12 04:11 PM

我不太熟..可不可以這樣寫:p
mov dl,byte ptr [0x10051310]
mov byte ptr edx,dl
重複五次..每次edx和0x10051310的值都加1

sega 2006-11-15 07:02 PM

我把你從第18頁頂回去
日行一善是應該的,不用謝謝

mirage5e 2006-11-15 07:25 PM

引用:
作者sega
我把你從第18頁頂回去
日行一善是應該的,不用謝謝


為人民服務嗎.. :laugh:

kenchen1226 2006-11-15 07:46 PM

可惡
以前學過masm
,以前也是很喜歡用 softice 破解軟體
也寫了一些破解程式,註冊機啦...
再不在新竹?
立刻過去跟你研究一下
麻煩準備 masm 的書
我要複習一下
好像要用到 lea 這個指令...
忘了... :p

一直想複習一下..

如果你在台北...假日有空去找你複習 一下 masm

如果你只是想個 patch , 應該有更簡單的辦法
就是跳過他檢查的地方就好了
如果是想寫註冊機...那只好多花一點手腳了...
你想破解什麼程式, 現在很多程式都有加殼
我那時候最強的殼是 asprotect 吧..
我有點忘了...對 function address table 嚴重加密
還要把他解出來...還要還原...
等等...
以前玩過..太久沒完都忘了...

kenchen1226 2006-11-16 04:43 PM

幫樓主推一下...

asccpu 2006-11-16 09:39 PM

你只要傳5BYTES而已,直接搬不就行了,第一次4BYTE,第2次1BYTE,不就行了,你想的太複雜了。

MDFMK 2006-11-24 05:44 PM

幫台法雞乖人工置頂!! :D :D :D


所有的時間均為GMT +8。 現在的時間是02:08 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。