关于进程隐藏问题:远程线程注入方式
2008-09-23 09:31
393 查看
关于进程隐藏问题:远程线程注入方式 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiAPI/html/delphi_20061205213557120.html
网上搜索了好多关于 关于进程隐藏问题,实现的方式几乎都是以远程线程注入方式
我依葫芦画瓢的做了一个,但是在目标进程里面请求内存空间的时候老是失败,不知道为什么,请高人指点.
代码如下:
Type
TParam = packed record
fLoadLibrary: DWORD;
fGetProcAddress: DWORD;
sUser: array[0..10] of Char;
sMessage: array[0..11] of Char;
end;
Const
IntoProName='SvcHost.exe';
var
ExeFileName: String;
ContinueLoop: Boolean;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
hprocess: DWORD;
param: TParam;
pparam, pfunc: Pointer;
begin
Application.Initialize;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if UpperCase(FProcessEntry32.szExeFile)=UpperCase(IntoProName) then
Begin
hprocess:= FProcessEntry32.th32ProcessID;
Break;
End;
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
//找到目標進程
if hprocess = 0 then begin
MessageBox(0, '無法開啟行程', '訊息', MB_OK or MB_ICONWARNING);
Exit;
end;
// 在目標行程內要求參數記憶體
pparam := VirtualAllocEx(hprocess, nil, SizeOf(param), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if pparam = nil then begin
MessageBox(0, '要求參數記憶體失敗', '訊息', MB_OK or MB_ICONWARNING);
CloseHandle(hprocess);
Exit;
end;
Application.Run;
end.
========================================================
运行到 if pparam = nil then begin 这里时 pparam 总是 Nil
沒人回答,UP一下。
沒人回答,再一下。
沒人回答,還UP一下。
你的问题是需要隐藏进程还是需要远程线程注入?
有什麼區別麼?
按我的理解這樣也能實現我的需求吧?
我是想在一個系統進程裡面注入我的線程然後運行一個函數。這樣有什麼區別麼?
我的目的只是不讓別人結束掉我的進程而已。
不知道我理解的對不對
你的process没有足够的权限。先用AdjustTokenPrivileges,如果成功了然后再来。
而且先要OpenProcess(PROCESS_ALL_ACCESS,...),然后才是你的VirtualAlloc。
如果你不明白自己为什么做这些,就不要费劲了,想CreateRemoteThread()?如果又失败了呢?
如何调试?
多看看操作系统和windows系统编程的书,搞清楚一些概念再做。
防止別人結束掉我的進程,和隐藏进程,以及远程线程注入,是3个不同的概念。
謝謝指點。
馬上翻書 :)。
本人初學還望各位以後多多指教。
UP xuexi
强烈鄙视问题解决后不结贴的人!
强烈鄙视技术问题解决后把贴子转移到非技术区的人!
鄙视你们!
http://community.csdn.net/Expert/topic/5216/5216675.xml?temp=.9262659
http://www.delphi2007.net/DelphiAPI/html/delphi_20061205213557120.html
网上搜索了好多关于 关于进程隐藏问题,实现的方式几乎都是以远程线程注入方式
我依葫芦画瓢的做了一个,但是在目标进程里面请求内存空间的时候老是失败,不知道为什么,请高人指点.
代码如下:
Type
TParam = packed record
fLoadLibrary: DWORD;
fGetProcAddress: DWORD;
sUser: array[0..10] of Char;
sMessage: array[0..11] of Char;
end;
Const
IntoProName='SvcHost.exe';
var
ExeFileName: String;
ContinueLoop: Boolean;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
hprocess: DWORD;
param: TParam;
pparam, pfunc: Pointer;
begin
Application.Initialize;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if UpperCase(FProcessEntry32.szExeFile)=UpperCase(IntoProName) then
Begin
hprocess:= FProcessEntry32.th32ProcessID;
Break;
End;
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
//找到目標進程
if hprocess = 0 then begin
MessageBox(0, '無法開啟行程', '訊息', MB_OK or MB_ICONWARNING);
Exit;
end;
// 在目標行程內要求參數記憶體
pparam := VirtualAllocEx(hprocess, nil, SizeOf(param), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if pparam = nil then begin
MessageBox(0, '要求參數記憶體失敗', '訊息', MB_OK or MB_ICONWARNING);
CloseHandle(hprocess);
Exit;
end;
Application.Run;
end.
========================================================
运行到 if pparam = nil then begin 这里时 pparam 总是 Nil
沒人回答,UP一下。
沒人回答,再一下。
沒人回答,還UP一下。
你的问题是需要隐藏进程还是需要远程线程注入?
有什麼區別麼?
按我的理解這樣也能實現我的需求吧?
我是想在一個系統進程裡面注入我的線程然後運行一個函數。這樣有什麼區別麼?
我的目的只是不讓別人結束掉我的進程而已。
不知道我理解的對不對
你的process没有足够的权限。先用AdjustTokenPrivileges,如果成功了然后再来。
而且先要OpenProcess(PROCESS_ALL_ACCESS,...),然后才是你的VirtualAlloc。
如果你不明白自己为什么做这些,就不要费劲了,想CreateRemoteThread()?如果又失败了呢?
如何调试?
多看看操作系统和windows系统编程的书,搞清楚一些概念再做。
防止別人結束掉我的進程,和隐藏进程,以及远程线程注入,是3个不同的概念。
謝謝指點。
馬上翻書 :)。
本人初學還望各位以後多多指教。
UP xuexi
强烈鄙视问题解决后不结贴的人!
强烈鄙视技术问题解决后把贴子转移到非技术区的人!
鄙视你们!
http://community.csdn.net/Expert/topic/5216/5216675.xml?temp=.9262659
相关文章推荐
- 记录一下 关于进程隐藏摘链操作的问题
- 关于安卓开发时安装genymotion存在的问题及解决方式
- 关于隐藏iOS9键盘上新增的快捷方式工具条Shotcuts
- 关于push进入下一页,底部tabbar隐藏的小问题
- 关于调用Web服务引用方式不同的问题
- 关于asp.net和iis的进程/线程问题,假如网站有1000个人访问,会产生多少个进程/线程啊
- 关于进程的几个问题
- 关于 TerminateProcess函数 在c++的进程中的学习而发现VS2008的编译安全问题
- 关于 WebClient类和HttpRequest的方式下载数据的问题
- 关于app退出的问题,完美退出方式
- 关于windows2008r2系统80端口被system进程占用的问题
- 关于statebar的隐藏和显示的问题
- 关于mysql命令行方式打不开的问题
- 关于axis2发布服务,用cxf在同个进程调用不同服务时出现数组下标越界问题
- 关于 ios4. 系统的statusbar 隐藏后顶部出现横条问题
- 关于华为手机自定义view中NavigationBar显示与隐藏造成高度问题的解决办法
- 苹果改版之后,关于隐私协议加入的问题解决方式
- Qt中关于无法定位程序输入点的一种问题解决方式
- 关于table中一个隐藏的tr,改为显示后与其他tr样式不一样的问题
- 关于同一个dll被多个进程加载的共享问题