强制读写进程内存的一点研究成果
压缩包中有两份源码:1.纯VB杀死XT/PN/IL/TY等带有自我保护的程序
2.读写被Hook KeStackAttachProcess保护的进程内存(可过GPK,已经拿游戏《龙之谷》测试过)
由于懒得打字,原理请自行通过阅读源码获得。
沙发自己坐,有问题的欢迎提问。
没有阅读权限的请看这里:http://www.m5home.com/bbs/forum.php?mod=viewthread&tid=4478&extra=page%3D1
另外,搜到一篇很给力的文章:http://amyz.itpub.net/post/34151/412552
不切换进程,直接访问其他进程的地址空间可惜现在没有时间,否则一定测试一下。 ........扫雷还能用外挂,汗一个.
高级只用4秒就完成,这太恐怖了.{:3_44:} 2.读写被Hook KeStackAttachProcess保护的进程内存
这个是什么意思?
已经被hook了? 最好解释一下第二个
怎么都是扫雷的? 回复 ok100fen 的帖子
1.开启“扫雷”,开启“扫雷反外挂”并对“扫雷”的进程进行保护,会提示保护成功
2.开启“扫雷外挂”,选择“自动扫雷”,按下“扫描”按钮,输入“扫雷”的进程ID,会提示出错
3.开启“扫雷外挂增强器”,输入“扫雷”的进程ID,会弹出“傀儡进程”的进程ID
4.开启“扫雷外挂”,选择“自动扫雷”,按下“扫描”按钮,输入“傀儡进程”的进程ID
5.扫雷游戏会在三秒钟之内结束并提示破了“扫雷英雄榜”的记录 回复 ok100fen 的帖子
通过Hook KeStackAttachProcess能保护进程内存不被别的进程读写
我的程序绕过这种防护方式
扫雷只是个例子
我总不能发个《龙之谷》上来给你测试吧?
原来这样啊 悲剧。。。
又有人为了下载源码恶意灌水,下载完后声都不吭一下就走了。。。 呵呵,稍微高一点就好了 回复 ok100fen 的帖子
发出来就是为了共享,不怕别人下载,只是不喜欢下载完都不打声招呼的人,给我的感觉像偷东西。 向老马学习
那个“驱动保护扫雷”编译不了
出现很多错误
错误如下:
BUILD: Computing Include file dependencies:
BUILD: Examining c:\驱动保护扫雷 directory for files to compile.
Compiling (NoSync) c:\驱动保护扫雷 directory ********************
'nmake.exe /nologo BUILDMSG=Stop. -i NTTEST= UMTEST= NOLINK=1 NOPASS0=1 386=1'
cl -nologo -Ii386\ -I. -II:\qd1\inc\mfc42 -I. -Iobjchk_wxp_x86\i386 -II:\qd1\inc\wxp -II:\qd1\inc\wxp -II:\qd1\inc\ddk\wxp -II:\qd1\inc\ddk\wdm\wxp -II:\qd1\inc\crt -D_X86_=1 -Di386=1-DSTD_CALL -DCONDITION_HANDLING=1 -DNT_INST=0 -DWIN32=100 -D_NT1X_=100 -DWINNT=1 -D_WIN32_WINNT=0x0501 /DWINVER=0x0501 -D_WIN32_IE=0x0603 -DWIN32_LEAN_AND_MEAN=1 -DDEVL=1 -DDBG=1 -D__BUILDMACHINE__=WinDDK -DFPO=0-DNDEBUG -D_DLL=1 /c /Zl /Zp8 /Gy /Gm- -cbstring /W3 /WX /Gz/GX-/GR- /GF /GS /G6 /Ze /Gi- /QIfdiv- /hotpatch -Z7 /Od /Oi/Oy- -FII:\qd1\inc\wxp\warning.h .\inlinekestackattachprocess.c
inlinekestackattachprocess.c
c:\驱动保护扫雷\struct.h(324) : error C2061: syntax error : identifier 'EX_RUNDOWN_REF'
c:\驱动保护扫雷\struct.h(346) : error C2059: syntax error : '}'
c:\驱动保护扫雷\struct.h(587) : error C2061: syntax error : identifier 'EX_RUNDOWN_REF'
c:\驱动保护扫雷\struct.h(628) : warning C4094: untagged 'union' declared no symbols
c:\驱动保护扫雷\struct.h(694) : warning C4094: untagged 'union' declared no symbols
c:\驱动保护扫雷\struct.h(700) : error C2059: syntax error : '}'
c:\驱动保护扫雷\inlinekestackattachprocess.c(66) : error C2488: 'OriginalKeStackAttachProcess' : 'naked' can only be applied to non-member function definitions
Stop.
Compile errors: not linking c:\驱动保护扫雷 directory ******************** 好像这个struct.h有点问题
以上问题已经自己解决了 不过,还有一个新的问题:
解释一下这几句代码
Private Sub Command1_Click()
'On Error Resume Next
MyExeId = RunEXE("calc.exe")
MyExeEP = PsLookupProcessByProcessId(MyExeId) ': MsgBox Hex$(MyExeEP), , "MyExeEP"
TkExeId = CLng(Text1.Text)
TkExeEP = PsLookupProcessByProcessId(TkExeId) ': MsgBox Hex$(TkExeEP), , "TkExeEP"
DumpKernelMemoryEx MyExeEP + &H18, 4, VarPtr(o_dtb(0))
DumpKernelMemoryEx TkExeEP + &H18, 4, VarPtr(dtb(0))
ModifyKernelMemoryEx MyExeEP + &H18, 4, VarPtr(dtb(0))
MsgBox "OK!", vbInformation, "傀儡进程的ID是:" & CStr(MyExeId)
End Sub 尤其是这个函数:
RunEXE 回复 ok100fen 的帖子
就是启动一个新进程(什么程序无所谓),返回其PID。在创建进程时,使用了CREATE_SUSPEND参数。 回复 ok100fen 的帖子
把傀儡进程的的页目录修改成目标进程的页目录->修改傀儡进程的内存就是修改了目标进程的内存!
页目录偏移:EPROCESS+0x10(2k/xp/2k3/vista/2k8/7) 终于想起密码了...{:3_48:}
前天注册个新号来逛逛,发现没权限 ,然后花几分钟写了个自动发帖刷论坛积分,结果刚到100多积分还没来得及下呢就被封IP了...{:3_47:}
不过看了下面解释..也不用下了{:3_48:} 自己写好了
回复 ok100fen 的帖子
启动新进程使用了CREATE_SUSPEND参数,就是让进程一启动就自动挂起嘛.这样方便EPROCESS+0x10
然后在对新启动的进程操作,修改了新进程的内存就等于修改了你要杀的那个进程的内存.要结束你要结束的进程,那就破坏内存嘛 反正随便怎么改 还是没太明白啊
为什么EPROCESS+0x10就是那个傀儡进程?
回复 Lgc小孩修电脑 的帖子
那个人竟然是你!!!:@ 回复 ok100fen 的帖子
汗,代码都给出来了,还问我啊。。。 进一步解释解释啊
哈哈,俺太笨啦 回复 Lgc小孩修电脑 的帖子
什么又注册马甲...我第一次注册...{:3_44:} 好久没来了 回复 ok100fen 的帖子
解释什么? Lgc小孩修电脑 发表于 2010-11-24 22:04 static/image/common/back.gif
回复 ok100fen 的帖子
解释什么?
就是把那个代码的用处解释一下啊 Tesla.Angela 发表于 2010-11-23 00:14 static/image/common/back.gif
回复 ok100fen 的帖子
就是启动一个新进程(什么程序无所谓),返回其PID。在创建进程时,使用了CREATE_SU ...
不明白,
这方面的知识应该学些什么?
也就是说,怎么才能创建一个新的进程?
思路是不是这样的:
1.创建一个新的进程
2.把原来进程的那部分内存copy到新的进程所在的内存,也就是把被hook的那个函数重新移位了,这样修改没被hook的,就可以了
3.不知道我理解的对不对 回复 ok100fen 的帖子
完全不对。。。
我真的不知道如何解释了,你去问xiaoly99吧。 就想问你
因为你说的我能听懂