首页
社区
课程
招聘
[求助]如何以“我的电脑”身份运行指定程序?
发表于: 2008-3-31 08:42 5226

[求助]如何以“我的电脑”身份运行指定程序?

2008-3-31 08:42
5226
部分软件为了保护自己,会在自己运行时检测其父进程,如果不是“我的电脑”(即explorer.exe)运行它时,就会退出。为了绕过这种检测,有没有办法以我的电脑身份运行它,除了 模拟双击图标 或 选中图标发送回车键消息。

本人尝试用API函数ShellExecute去运行,仍然未能实现,不知有没有什么问题,请高手指点。或者高手们有更好的方法破解这一软件行为(用编程手段而不是修改其反汇编代码)

procedure TForm1.Button1Click(Sender: TObject);
var
    ContinueLoop: BOOL;
    FSnapshotHandle: THandle;
    FProcessEntry32: TProcessEntry32;
    eProcess:THandle;
    pProcess:Thandle;
begin
    FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
    ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
    while integer(ContinueLoop) <> 0 do
    begin
        //showmessage(FProcessEntry32.szExeFile);
        if Uppercase(FProcessEntry32.szExeFile) = 'EXPLORER.EXE' then
        begin
            eProcess:= FProcessEntry32.th32ProcessID;
            pProcess:= FProcessEntry32.th32ParentProcessID ;
            //showmessage('我的电脑主进程ID是:'+inttostr(eProcess)+' 其父进程ID是:'+inttostr(pProcess));
            ShellExecute(eProcess,'open', 'C:\abc.exe', nil, nil, SW_ShowNormal);
            //模拟父进程去运行指定文件.
            exit;
        end;
        ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
    end;
    CloseHandle (FSnapshotHandle);
end;

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 3629
活跃值: (6366)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
我以前做游戏菜单时也试过(NP), 也在这发过问题,但.....后来就用  WINEXEC
2008-3-31 10:38
0
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
3
注个线程到explorer,由这个线程来启动
2008-3-31 23:09
0
雪    币: 7357
活跃值: (3878)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
4
这个需要奇技淫巧,可以搜索shoooo的某篇回帖
2008-3-31 23:42
0
雪    币: 241
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
WINEXEC也不行。
大侠可否进一步指点,shoooo的高贴找不到啊。
2008-4-1 10:52
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
6
注个线程到explorer很好
拦截检测函数也不错
修改eprocess更好
2008-4-1 18:56
0
雪    币: 241
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
已经解决,原来用线程注入EXPLORER进程就行了,搞定!
感谢各位侠的指点 ~~~
2008-4-2 09:53
0
游客
登录 | 注册 方可回帖
返回