[簡易篇]ICS解析(利用Call達到無須Bypass就可以使用的數據)
好擔心講錯> < ...歡迎高手指正,只是最最簡單的講解(感覺上好像簡寫淫水機大大那篇~)而已...
最簡單(常見)的ICS是利用Call跳轉時儲存的Esp修改來達成...甚麼意思呢?
Call 與其他 Jmp Jne ...(J開頭的) 差別在於它執行完會返回原來位置
所以為了知道要跳回的地址因此要儲存於Esp當中~
這邊用 TwMS 138 完全無敵 ICS 來示範
重點:
簡單來說...要找ICS數據
在你想的數據上面找像call dword ptr [00c967dc]這種樣子的Call (小提示:請UCE 檢視->顯示符號(Show Symbol)別勾)
就這樣啦~這是看起來最簡單的利用Call達成的ICS數據寫法...
最簡單(常見)的ICS是利用Call跳轉時儲存的Esp修改來達成...甚麼意思呢?
Call 與其他 Jmp Jne ...(J開頭的) 差別在於它執行完會返回原來位置
所以為了知道要跳回的地址因此要儲存於Esp當中~
- 005C9F67 - ff 15 dc 67 c9 00 - call dword ptr [00c967dc] : 76DA561E //IsRectEmpty
- 005C9F6D - 85 c0 - test eax,eax
- 005C9F6F - 74 0e - je 005c9f7f
重點:
- 00c967dc: //此為Call所存放位置的地址...
- DD AwesomeMan
- AwesomeMan: //這邊是要檢查是否進行Hook動作
- cmp [esp],005C9F6D //不進行-跳回原本Call位置的下一行~
- jne IsRectEmpty
- mov [esp],Invincible //Hook,跳至我們的數據
- jmp IsRectEmpty
- Invincible: //這邊就是進行Hook的數據啦!(Call的下一行)
- test eax,eax
- jmp 005C9F71
IsRectEmpty這東西是甚麼 ? 00c967dc原先存放的地址是IsRectEmpty這個地址
我們判斷不是我們要修改的之後 , 跳過去IsRectEmpty , 因為我們沒有修改到ESP , 當返回時還是返回到005C9F6D
所以程式可以正常的繼續執行而不會崩潰 ~ 那如果當判斷到是我們要搞的人要如何動作呢 ??
mov [esp],Invincible (我們將ESP寫入我們的地址 , 並讓程式繼續執行原先動作 , 當執行完返回到我們的地址 )
所以程式是返回到我們這邊 , 我們這邊就可以加入HOOK的數據 , 來實現無敵功能囉 ~
-引用 淫水機 ICS解析
簡單來說...要找ICS數據
在你想的數據上面找像call dword ptr [00c967dc]這種樣子的Call (小提示:請UCE 檢視->顯示符號(Show Symbol)別勾)
就這樣啦~這是看起來最簡單的利用Call達成的ICS數據寫法...
你好
回覆刪除我對此也小有研究
但苦無入門之道
寫了幾年的C/C++ java C# VB
也對OS 組語 計算機組織有了解
格主您如不吝賜教
可否給我連絡方式
賜教不敢,可相互討論
刪除小弟才疏學淺也正在學習
不知是否有即時通
你好 請問可以做一段輸入TWMS數據的影片嗎?
回覆刪除我想問問一些問題
回覆刪除我對ICS不太了解,我沒玩過楓之谷,希望解答一下
找00C967DC 是找CRC數據向上看最接近的那一個call dword ptr嗎?
我發現很多值也是傳入00C967DC
把它寫成自己的數據遊戲就整個斷了
在本篇教學中,的確就是找最近的Call點
刪除至於很多地址會經過所以才需要用cmp [esp],005C9F6D
來確定是否是我們要修改的那個地址...
大大所以cmp [esp],005C9F6D 是把
刪除call dword ptr [00c967dc]裡的00c967dc
跳到005C9F6D嗎?
" 00c967dc原先存放的地址是IsRectEmpty這個地址"
回覆刪除IsRectEmpty 是從哪看出來的?..怎麼還原?...
1.那是API
刪除2.在CE(LE)後面有附註欄
ㄜ..原來讀138版CEM之後到005C9F67 後面沒有 IsRectEmpty
刪除但直接讀取遊戲再到005EA1C3(146.3的無敵)就可以看到
摁....難怪我看好久 啥都沒看到-.-
那請問如果是 Call XXXXXXXX 這種的呢
回覆刪除就沒辦法寫成ICS那樣了嗎
不一定,通常會牽扯到Esp的運算,不再本篇的教學範圍內
刪除我都和你同一個問題
刪除Albert大,如果想修改的基址上面只有Call XXX
沒有call dword ptr [XXX]
那應該如何做,請教大大
另外,如果能與你直接交流,能加我即時通:alanlei22@yahoo.com.hk?
Albert大,如果想修改的基址上面只有Call XXX
回覆刪除沒有call dword ptr [XXX]
那應該如何做,請教大大
另外,如果能與你直接交流,能加我即時通:alanlei22@yahoo.com.hk?
請教像call dword ptr [eax+58]這種的該如何寫ICS呢
回覆刪除請問
回覆刪除005C9F6F - 74 0e - je 005c9f7f
和這個
jmp 005C9F71
應該是有一個打錯!?
還是005C9F71是從別的地方找到的?
Jmp 005C9F71
刪除是je 005c9f7f的下一行,005C9F7有兩Byte所以下一行的Adr就是005C9F71...
跳過那個Je即是無敵
感謝大大^^
刪除原來如此@@
小弟之前 也有學過基礎的C語言~
回覆刪除小弟想問 大大以上所談 都是用組合語言 去寫的程式嗎?
想徹底了解一下 感恩!
以上所談是單純的組合語言,並不包含程式部分
刪除本人C++也還在學習階段...
可是大大這篇(疾風合併法則,學會.. ICS不是問題)
回覆刪除和現在這篇(利用Call達到無須Bypass就可以使用的數據)疾風合併法則他是用CMP?
則這篇是用CALL嗎?
請大大賜教~~