- Nov 22 Sat 2014 00:47
DOS簡單教學
- Nov 20 Thu 2014 18:36
[C#]資管題目練習(6)
- Nov 17 Mon 2014 11:40
Undefined Behavior
http://blog.ez2learn.com/2008/09/27/evil-undefined-behavior/
如上 超邪惡的 ... 0.0 會了好像也沒用處 就像在背bool 內有true,false.
- Nov 12 Wed 2014 17:49
[C++]程式設計練習(6)
- Nov 12 Wed 2014 17:44
[C++]程式設計練習(7)
- Nov 11 Tue 2014 20:03
CRC轉ICS(1)
來騙一下血幣 分享CRC轉ICS的經驗、方法 TMS_v150.2 接觸這塊領域也才短短一個月,僅能提供一些小小的心得供大家參考 洋蔥大網誌裡的"楓之谷更新必備"那區及各種舊的代碼 是我最開始學習、參考的地方 大家可以先拜讀一下 收獲應該會不少^^ http://knowlet3389.blogspot.tw/ 排版方面我不太在行,可能會寫得有些亂,請見諒^^" 我自己覺得需要的能力: ★★★★★ 邏輯 ★★★★ 程式語法的了解 ★★★★ 耐心、毅力 ★★★ 查找資料 ★★★ 經驗 ★ 組合語言 所需工具:UCE、有CRCbypass佳 -------------------------------------------------------- 一、要先有CRC代碼 -------------------------------------------------------- 首先就從 物理無敵CRC 開始說起吧,這應該是數據界的HelloWorld!!! 最簡短的CRC版 [Enable] 00615994: DB 75 //短程jne跳躍 [Disable] 00615994: DB 74 //短程je跳躍 常見版本2 [Enable] 00615994: jne 006159A2 // DB 75 0E 83 4D FC FF [Disable] 00615994: je 006159A2 // DB 74 0E 83 4D FC FF 從aob可以看出以上兩個數據是等價的 -------------------------------------------------------- 二、找call dword ptr -------------------------------------------------------- 而要如何從CRC轉成ICS 基本上需要有3個地址 (1) ptr基址 (2) 被hook函數地址 (3) call的反回地址 基本形式如: Addr_0 call dword ptr [Addr_1] : [Addr_2] Addr_3 ***any code*** (1)=Addr_1 (2)=Addr_2 (3)=Addr_3 一般來說只要"往前"找到call dword ptr,(3)便可知 至於(1)、(2)通常都要用一些手段來得到 這數據往前多看兩行,就發現了!! 0061598C - FF 15 8C5EE200 - call dword ptr [00E25E8C] : [IsRectEmpty] 00615992 - 85 C0 - test eax,eax 00615994 - 74 0E - je 006159A4 感謝Inndy大大指點,winapi還是用函數名比較好XD ps.758D0903 = IsRectEmpty,函數名本身即代表起始地址,用哪個都可以 這是最幸運的情況,3個願望一次滿足 (1)=Addr_1=00E25E8C (2)=Addr_2=IsRectEmpty (3)=Addr_3=00615992 -------------------------------------------------------- 三、改寫 -------------------------------------------------------- 3個地址都有了,那麼該如何改寫成ICS呢? 基本形如下: CheckEsp:自定函數名 Size:大小 FunName:自定標籤名 [Enable] Alloc(CheckEsp,Size) Label(FunName) CheckEsp: cmp [esp],Addr_3 //看返回地點是不是我們要的 jne Addr_2 //不是則跳回原函數 mov [esp],FunName //將反迴值改成自己的函數 jmp Addr_2 //改變反迴值後一樣跳回原函數 FunName: ***copy code*** //把 [call dword ptr 下一行] 到 [je 006159A4] 之間的code複製過來 jne 006159A2 //從crc [enable]中copy過來 Addr_1: DD CheckEsp [Disable] Addr_1: DD Addr_2 DeAlloc(CheckEsp) -------------------------------------------------------- 成果如下 [Enable] Alloc(CheckEsp,32) Label(PGod) CheckEsp: cmp [esp],00615992 jne IsRectEmpty mov [esp],PGod jmp IsRectEmpty PGod: test eax,eax jne 006159A2 00E25E8C: DD CheckEsp [Disable] 00E25E8C: DD IsRectEmpty DeAlloc(CheckEsp) 理解程式碼後可再自行縮減精簡代碼 |
評分次數
- Nov 11 Tue 2014 19:52
讀取webbroewsr網址
- Text4.Text = WebBrowser1.LocationURL
Text4.Text = WebBrowser1.Url.ToString() 應該是這個吧0.0, Google一下很快就知道了.. |
- Nov 11 Tue 2014 19:49
獲得pid
我用以下方法可以對付一般遊戲,可是爆爆王和跑跑有HS的問題,所以無法打開進程。 hwn = FindWindow(vbNullString, strGame) GetWindowThreadProcessId(hwn, Pid) hProcess = OpenProcess(&H1F0FFF, False, Pid) 要如何直接由.exe處理程序獲得Pid,而不用上面的由視窗碼獲得Pid?! |
那不是重點... HS並沒有Hook FindWindow這個函數(吧)NP倒是有... 重點是HS的進程保護會使你OpenProcess失敗 你真的要解決的是這個問題~ 你有幾種解決方法 1. Change ImagePath (Inndy大神的clsHack裡面有,或者使用InlineHook.dll、taskmgr.dll、LifeBot之類的東西都可以...) 2. Zombie Process (原理其實跟上面差不多只是達成方式不同) 3. HackShield Driver(Debug) Bypass 4. Ring0 Driver 我只想到了這些,我這個小嫩嫩什麼都不會寫~ //----------------------------------------------------------- 回完才發現我的回答偏離你的問題重點了 :D 順便議題VB.Net有個很方便的函數~ 你只需要 Dim MSProcess As Process = Process.GetProcessesByName("MapleStory")(0) 就可以了 (P.s 是A大教我的,我什麼都不會喔XD |
回完才發現我的回答偏離你的問題重點了 :D
順便議題VB.Net有個很方便的函數~
你只需要
Dim MSProcess As Process = Process.GetProcessesByName("MapleStory")(0)
就可以了 (P.s 是A大教我的,我什麼都不會喔XD
1. 這不是函數,這是物件
2. 這是.NET都能用的
3. 這樣寫的話...萬一沒開楓之谷會噴Error