求思路, 关于64位debugport清零的方法
一直在逛论坛。 关于debugport清零,应该是更具 进程的 eprocess结构定位debugport这个地址,然后一直对其写0。有一种思路避免因为debugport清零不能被调试的思路是 把所有用到 debugport 这个地址的 值改成到其它位置,那么目标如果继续 对debugport地址清零,就让他清就行了。
在xp下,找到所以访问或改写debugport的地址很好得到。网上的资料也一大堆。 但在win764位下,就没资料了。
我的操作是在VMware里 用od附加一个进程, 用windbg 对这个程序的eprocess结构的debugport下读写断点。问题是这让只找到几个地址是访问 debugport这个地址内容的。用驱动把它们改了, 一会就蓝屏。 应该是还有的 访问debugport值的地址没有找到的缘故吧? 求帮助~谢谢。 蓝屏......
这个得TA来看看了,帮你顶顶{:soso_e113:} 马大哈 发表于 2013-5-11 22:45 static/image/common/back.gif
蓝屏......
这个得TA来看看了,帮你顶顶
嗯。是说版主吗?64位的资料那么少,他是怎么研究出那么多东西来的。真心的佩服~ LZ说啥呢?DEBUGPORT是EPROCESS的一个成员,是有固定偏移的,怎么能把偏移给修改了?除非你重新编译一次WIN7 X64内核(可惜你没有源代码)。
貌似你要『反清零DP』?
三个方法:
1.找到不断进行清零DP的线程,然后把此线程挂起(用内存断点)。
2.找到驱动里清零DP的代码,把对应代码NOP掉,或者把清零的位置改到EPROCESS.InheritedFromUniqueProcessId。
3.重新编译一次WIN7 X64内核,然后把EPROCESS.DebugPort和EPROCESS.InheritedFromUniqueProcessId兑换位置(可惜WIN7 X64没有公开源代码,你做不到)。 Tesla.Angela 发表于 2013-5-12 11:51 static/image/common/back.gif
LZ说啥呢?DEBUGPORT是EPROCESS的一个成员,是有固定偏移的,怎么能把偏移给修改了?除非你重新编译一次WIN ...
好像windows公开的只有 win2003的wrk
嗯。 我想做的就是把清零的位置给改了。
我想的不在上面的三个之中,我是直接改内核里,所有用到eprocess.Debugport这个端口的函数,找到相对偏移地址,比如说DbgkpQueueMessage 这个函数 +0x44地位置用到了 eprocess.Debugport 端口,那么DbgkpQueueMessage+0x44 的地址的值肯定是eprocess结构的Debugport偏移, 只要把它成 eprocess的其他成员,就可以反清零了吧? chess0726 发表于 2013-5-12 13:00 static/image/common/back.gif
好像windows公开的只有 win2003的wrk
嗯。 我想做的就是把清零的位置给改了。
不可以的。
【DP反清零】最好的办法就是找到内核内存里清零DP的代码,然后把对应的代码给NOP掉。 Tesla.Angela 发表于 2013-5-12 13:12 static/image/common/back.gif
不可以的。
【DP反清零】最好的办法就是找到内核内存里清零DP的代码,然后把对应的代码给NOP掉。 ...
好吧。 这样着弄保险。 也不是很麻烦。 呵呵, 那谢谢版主了。~~~ Tesla.Angela 发表于 2013-5-12 11:51 static/image/common/back.gif
LZ说啥呢?DEBUGPORT是EPROCESS的一个成员,是有固定偏移的,怎么能把偏移给修改了?除非你重新编译一次WIN ...
对了,请问下, InheritedFromUniqueProcessId 这个成员是什么功能的? chess0726 发表于 2013-5-12 13:36 static/image/common/back.gif
对了,请问下, InheritedFromUniqueProcessId 这个成员是什么功能的?
这个项记录的是父进程ID。无论修改成什么值,都对进程没有任何影响。 Tesla.Angela 发表于 2013-5-12 14:07 static/image/common/back.gif
这个项记录的是父进程ID。无论修改成什么值,都对进程没有任何影响。
哦,是这样,我都是弄Exittimer 或CreateTimer 这两成员的。 呵呵, 应该都差不多
嗯。 vmp 我就不会分析了, 一般都是用ida来看的,如果看不懂那就是就看不懂了, vmp时只能动态分析,跟着寄存器走...
页:
[1]