level 5
程序是这样的。我需要做的一个外挂程序。。DLL注入(全局HOOK,修改IAT的)。有A,B,C,D
四个程序。A程序启动B ,B启动C, C 启动D,D是工作程序。。现在的麻烦是我分析道B 启动C,在道D, C是个几百KB的小程序。B 用ShellExecute启动C,然后C启动D ,C一瞬间就过去了,我没有办法拦截和暂停。求牛人们给个拦截和暂停的法。。搞了很久了。。
PS:这个程序是CF。望大家给我想想办法。。
2011年11月02日 18点11分
1
level 5
D是CrossFire.exe C是launchcrossfire.exe B是CFSelWorld.exe A是QQLogin.exe
2011年11月02日 18点11分
2
level 12
用OD打开程序把第一个指令(一般是push e
bp
)改成int3然后保存,把OD改成默认调试器。这样程序一旦启动就会触发异常弹出消息框“XXX异常位于XXX要调试程序请点取消”,点取消,这样OD就会自动启动断在刚才的int3上,你再把它改回去即可正常运行。
2011年11月02日 18点11分
3
level 5
数据到是分析好了,这情况我的程序该怎样写。。怎样拦截C和D,...拦截后用我的函数代替。。
ps:多谢回复。。
2011年11月02日 18点11分
4
level 12
启动程序没必要拦。DLL注入原理还懂吧,直接抓PID。
2011年11月02日 18点11分
6
level 12
我给你提个思路你看看行不行:你启动外挂程序,外挂启动A,然后进入一个循环,它每隔一段时间扫描所有进程,如果这个进程的父进程的父进程的父进程是自己,就如何如何。
2011年11月02日 18点11分
8
level 5
SetWindowsHookEx加DLL不成功。。 OpenProcess 加CreateRemoteThread 也不成功。。
我现在技穷了。。搞了一个多月。测试程序写了很多。。到头来还是个不成功。。
下一步。我可能要上驱动了。。这是最后的砝码。。我隐约预见到就算我写了驱动拦截也可能不行。。 我彻底的傻了。。。好失望哦!!!!
2011年11月02日 19点11分
10
level 5
OpenProcess +提权+CreateRemoteThread 也不行。。CreateRemoteThread执行失败。。其他进程可以。CrossFire.exe进程的CreateRemoteThread失败。。。失望中 。。
2011年11月03日 03点11分
12
level 12
你看下那个进程能不能用OD附加。OD附加的原理就是创建远程线程,如果OD能附加就说明还是别的地方有问题。
2011年11月03日 05点11分
13
level 12
也有可能是kernel32.CreateRemoteThread被它改掉了(之前看到过一个改MessageBoxW的)。首先调试一下看看CreateRemoteThread是否被改过。
2011年11月03日 05点11分
14
level 5
望大神指教啊 。我现在走投无路了。。。怎样看KERNEL32的CreateRemoteThread 的东西是否被该过..
2011年11月03日 05点11分
16
level 5
用 stud_pe查看工作进程文件crossfire.exe只有两个IMPORT函数(LoadLibraryA和GetProcAddress).
2011年11月03日 05点11分
17
level 12
看看目标进程和你自己的进程的CreateRemoteThread入口地址处的数据是否一样就行了
2011年11月03日 05点11分
19
level 12
OD无法附加就说明做了反调试处理。还是把入口指令改成int3然后试试,这样是不可能附加不上的。
2011年11月03日 05点11分
20
level 5
好。我再搞搞。。。鉴于你们会贴的签名图都那么帅。以后我回贴也搞张签名图。。
2011年11月03日 05点11分
21