首页
社区
课程
招聘
[转帖]转载一片老文章,感觉很有用
发表于: 2008-12-5 13:34 4896

[转帖]转载一片老文章,感觉很有用

2008-12-5 13:34
4896
 [ 概說 - PostMessageA 的 NP攔截方式 ]
NP攔截PostMessage的方式很簡單,就把程式的開頭加上一個JMP把你跳掉回不去,使你BOT程式當掉
   因此,我們必須將原有的程式還原使用,才可不被NP破壞您的程式架構,通常沒有成功通過NP檢察,您
   都會收到一個訊息「XXXX 發生問題,必須關閉,僅此致歉。」(XP平台)
在討問這個問題時,您必須要對System提供的DLL,API有所了解,以及PostMessageA的使用方法。
   使用方法不說明,故您必須對此PostMessageA這個function有所了解,此文只說如何通過NP。
MLBOT 的 Re-hooked 也是利用此方法過NP的!
----------------------------------------------------------------------------------------------------------------------
 [ 原理 ]
到底如何不要讓程式被NP跳掉呢?
   讓我們來看一下,NP啟動時,他對楓之谷做了什麼蠢事
   比較一下兩張圖不同的地方
----------------------------------------------------------------------------------------------------------------------
【圖1】-NP啟動前,一切都正常

【圖2】-NP啟動後,程式碼竟然變了

----------------------------------------------------------------------------------------------------------------------
 [ 為什麼有了這個JMP會導致當機? ]
因為該JMP位址的記憶體是空的,回不來,而且原本該執行的程式碼也被吃掉了一些
----------------------------------------------------------------------------------------------------------------------
 [ 如何解決JMP問題呢 ]
方法可能有很多種,在【圖1】和【圖2】時,其實就透漏了一種方法
方法1:將整個User32.dll的PostMessageA部分Re-source
方法2:將失去的程式補齊,看一下以下範例  
mov edi,edi
push ebp
mov ebp,esp
jmp PostMessage+5

  說明:由於NP吃掉那5個Bytes,因此可在自己的程式,寫下了這幾行去呼叫PostMessageA,NP把那5個Bytes改掉
    我們沒辦法去修改他,所以可以在自己的程式把它補齊後再Jmp到原本+5的地方

----------------------------------------------------------------------------------------------------------------------
[ Q&A專區 ]
Q. 為何不能直接把jmp 458a7710直接改成jmp 77D1CB8A,讓程式繼續正常運作?
A. 有兩個原因:
     1.直接jmp到下一行,還是沒有還原原本NP吃掉的那些程式碼,一樣會當掉
     2. 此位址,有另外的CRC檢查,改了之後不是斷線就是重開機


Q. 為何我不能直接把那5 byte還原? 這樣也不會有上面那個問題「程式碼還是有少」了呀?
A. 別忘了,還有第二點,除了400000-7xxxxx外,還有另外的CRC CHECK

Q. 我能在它jmp的位址(458a7710) Alloc一個空間,並放上原本的程式碼並跳回原處嗎?
A. 答案是有可能的,意即不太確定,目前無實測!在ME裡,可以設定Alloc於哪<條件是要能過HSSDT>,在458a7710 alloc一個空間
    放上原碼再跳回即可,範例:
先用CE的DLL,CALL VAE(hProcess , 起始地址 , 長度 , 類型 , 寫入讀取模式),為458a7710 ALLOC 10 BYTES
458a7710: //(假設此空間,已被ALLOC)
mov edi,edi
push ebp
mov ebp,esp
jmp 77D1CB8A
這樣的程式,即可完全BYPASS PostMessageA
但是, 458a7710 這個位只是隨機抽選的,每此都不一樣 故此方法較不可靠



[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 346
活跃值: (1953)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
外挂的啊,讲这个的开始多了起来
2008-12-5 13:54
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
3
真在考虑向坛主请求是不是对游戏外挂的帖子采取绝杀态度.....
2008-12-5 15:11
0
雪    币: 360
活跃值: (77)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
4
一切也不能绝对!
2008-12-5 21:19
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
此言差矣~~~
其实外挂技术也是从破解里面发展而来的。

这篇文章重在破解NP的思路,万变不离其宗,如果以后遇到相似的问题,我们依然会用这个方法来解决啊。

搞外挂的不一定会破解,但是搞破解的未必不会外挂。
深入层次不同,发展方向不同而已。
2008-12-7 15:38
0
雪    币: 251
活跃值: (25)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
6
像是香港或台湾的牛人写的文章,很多繁体字
2008-12-7 16:25
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
7
看来这位版主还没不解我们坛主啊
要多和坛主通通气啊
2008-12-7 16:35
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
8
嘿嘿....
2008-12-7 17:47
0
雪    币: 155
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
外挂实用性要大些。。。。。。。
2008-12-7 19:16
0
游客
登录 | 注册 方可回帖
返回
//