首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
经典问答
发新帖
4
0
[转帖]转载一片老文章,感觉很有用
发表于: 2008-12-5 13:34
4922
[转帖]转载一片老文章,感觉很有用
小花
2008-12-5 13:34
4922
[ 概說 - 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 這個位只是隨機抽選的,每此都不一樣 故此方法較不可靠
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
收藏
・
4
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
8
)
sungy
雪 币:
547
活跃值:
(2185)
能力值:
( LV7,RANK:100 )
在线值:
发帖
146
回帖
665
粉丝
31
关注
私信
sungy
1
2
楼
外挂的啊,讲这个的开始多了起来
2008-12-5 13:54
0
北极狐狸
雪 币:
2368
活跃值:
(81)
能力值:
(RANK:300 )
在线值:
发帖
46
回帖
1342
粉丝
0
关注
私信
北极狐狸
7
3
楼
真在考虑向坛主请求是不是对游戏外挂的帖子采取绝杀态度.....
2008-12-5 15:11
0
popeylj
雪 币:
360
活跃值:
(77)
能力值:
( LV9,RANK:250 )
在线值:
发帖
133
回帖
865
粉丝
1
关注
私信
popeylj
6
4
楼
一切也不能绝对!
2008-12-5 21:19
0
小花
雪 币:
92
活跃值:
(10)
能力值:
( LV2,RANK:10 )
在线值:
发帖
60
回帖
215
粉丝
0
关注
私信
小花
5
楼
此言差矣~~~
其实外挂技术也是从破解里面发展而来的。
这篇文章重在破解NP的思路,万变不离其宗,如果以后遇到相似的问题,我们依然会用这个方法来解决啊。
搞外挂的不一定会破解,但是搞破解的未必不会外挂。
深入层次不同,发展方向不同而已。
2008-12-7 15:38
0
newjueqi
雪 币:
251
活跃值:
(25)
能力值:
( LV9,RANK:290 )
在线值:
发帖
22
回帖
392
粉丝
2
关注
私信
newjueqi
7
6
楼
像是香港或台湾的牛人写的文章,很多繁体字
2008-12-7 16:25
0
shoooo
雪 币:
398
活跃值:
(343)
能力值:
(RANK:650 )
在线值:
发帖
91
回帖
2169
粉丝
5
关注
私信
shoooo
16
7
楼
看来这位版主还没不解我们坛主啊
要多和坛主通通气啊
2008-12-7 16:35
0
北极狐狸
雪 币:
2368
活跃值:
(81)
能力值:
(RANK:300 )
在线值:
发帖
46
回帖
1342
粉丝
0
关注
私信
北极狐狸
7
8
楼
嘿嘿....
2008-12-7 17:47
0
greatbob
雪 币:
155
活跃值:
(10)
能力值:
( LV3,RANK:20 )
在线值:
发帖
39
回帖
184
粉丝
0
关注
私信
greatbob
9
楼
外挂实用性要大些。。。。。。。
2008-12-7 19:16
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
小花
60
发帖
215
回帖
10
RANK
关注
私信
他的文章
[求助] 请教一个win32界面方面的问题?(菜鸟级)
4940
怎么获得函数的地址而不是输入表?
4412
[求助]关于PE输入表修复的问题——源自linxer代码
5216
[求助]如何有效的关闭有循环操作线程的内核对象
3422
[求助]在VC里面,为什么不能够loadlibrary运行库函数?
8908
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部