能力值:
( LV6,RANK:90 )
|
-
-
2 楼
俺不懂溢出,不过你可以判断一下eip指的地方,比如是堆栈,heap,还是映射到内存的代码节等等之类,不过估计误判率会很高吧.
|
能力值:
( LV9,RANK:330 )
|
-
-
3 楼
毕竟不是个好办法~
|
能力值:
( LV9,RANK:250 )
|
-
-
4 楼
没有other的办法了
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
楼主,说说你怎么用一个线程监视eip?
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
执行一个指令停下判断eip
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
这个是关键,你线程运行的时候监视的eip也是在线程内吧
|
能力值:
( LV9,RANK:250 )
|
-
-
8 楼
写一个类似调试器的东东,调试加载目标程序,当然了,目前只是想象一下~~
|
能力值:
( LV6,RANK:90 )
|
-
-
9 楼
关于监视eip
如果ring3的话
你可以创建一个子函数,映射进内存
然后模仿调试器替换int3h的方法,先把监控目标的入口指令替换成 call 你自己创建的子函数
在子函数就可以得到下一条指令的eip了,做完判断后再替换下一条指令为call 你自己创建的子函数
,一步步替换下去就可以了,不过执行效率嘛,就不说了。做个玩具还可以
ps:替换成int3h,然后用seh来处理也一样啦,如果搂主能想办法解决误报和效率问题,期待Ing
现在那些杀毒的监控溢出一般都在某几个关键函数,如loadlibrary ,getprocaddress之类的返回时判断一下,全程判断估计也解决不了误报和效率问题吧,也许是俺见识少,反正还不大知道
|
能力值:
( LV9,RANK:250 )
|
-
-
10 楼
ring 0
|
|
|