标题:
[原创]防止进程被杀
[打印本页]
作者:
无条件为你
时间:
2007-1-1 17:11
标题:
[原创]防止进程被杀
[watermark]接着上篇贴子:
http://www.thysea.com/lb/cgi-bin/topic.cgi?forum=127&topic=2156
再发一个EXE。在这里,“RealPlay.exe”进程无法被任务管理器所杀。[/watermark]
作者:
chinanic
时间:
2007-1-2 10:05
标题:
[原创]防止进程被杀
:41: :41: :41: 我怎么看这个进程这么眼熟。。。。
作者:
无条件为你
时间:
2007-1-2 15:02
标题:
[原创]防止进程被杀
随便起的一个名字。跟播放器的进程名差不多。只不过播放器的进程名是RealPlayer
作者:
chinanic
时间:
2007-1-11 10:40
标题:
[原创]防止进程被杀
我记得有个病毒就这名字,安全模式下都删不掉,DOS下看不见。。我汗~!
作者:
copyday
时间:
2007-1-11 12:35
标题:
[原创]防止进程被杀
鸽子 是看不到的`
作者:
无条件为你
时间:
2007-1-12 23:08
标题:
[原创]防止进程被杀
下面引用由
chinanic
在
2007/01/11 10:40am
发表的内容:
我记得有个病毒就这名字,安全模式下都删不掉,DOS下看不见。。我汗~!
是滴是滴。
不过我这个只是随便起的名字。如有雷同,不甚荣幸!
作者:
青蛙
时间:
2007-1-23 17:34
标题:
[原创]防止进程被杀
楼主我顶死你~~好东西啊~~我写的一个后门程序中隐藏进程是用了个别人写好的隐藏函数,你这个貌似比我这个好~~有时间拿这个来加强下程序哈~~
作者:
默数悲伤
时间:
2007-1-23 21:08
标题:
[原创]防止进程被杀
从以往楼主公布的代码来看,这第一式肯定是非FindWindow(0, "Windows 任务管理器");莫属啊。
咦,下面呢。
那这第二式呢,想起楼主以前搞的一个什么记事本的东东,无非是要找到菜单中名字为“查看”的那个按扭拉,然后设置更新速度为暂停,好,那就GetMenu(前面找到的任务管理器的句柄),得到菜单句柄,再GetSubMenu(Menu的句柄,2)(2是第三个查看的pos拉),得到“查看”menu的句柄拉,再来,目标是要更新速度暂停。继续GetSubMenu(“查看”Menu的句柄,1)(1是“更新速度”的子菜单的标志拉),哦,,,,现在快到暂停咯,嘿嘿,为了要暂停,得向那个子菜单的父窗口发一个WM_COMMAND消息呀,窗口句柄有了,还差子菜单ID呢,来,GetMenuItemId(“更新速度的句柄”,2);(3是最后一个“暂停“的pos拉),现在可以拉,发送消息SendMessage(hwnd, WM_COMMAND, 子菜单ID,0),咦,果然暂停了哦。。。。
第三式:
真累呀,就是要”隐藏“自身拉。怎么”隐藏“呢?
楼主自有高招,偶简单分析下了,这应该还是楼主比较强悍的地方啊。如果错误,楼主原谅并请指出哦。
可以由spy++知道任务管理器的显示列表是syslistview32,好,用FindWindowEx(父窗口句柄,NULL,"syslistview32", NULL),好拉,这下得到显示控件的句柄拉。
哎,下面一步就重要咯,找到显示列表中自己的位置,网上有这样一个代码可以做到,是向大概意思就是向目标进程(也就是任务管理器拉,获取其句柄(这里就不多说了GetWindowThreadProcess,OpenProcess,然后在其地址空间分配一段内存,在这这段地址里伪造一个LVITEM结构,然后向目标窗口发送LVM_GETITEMTEXT消息,其接受地址就指向刚才在目标进程中申请并伪造好相关结构的地址。然后再从那段地址中ReadProcessMemory获取ITEMTEXT信息.同样了,楼主要实现的所谓“隐藏”自身也是这样实现的。通过LVM_SETITEMTEXT消息,实现把要修改的名字WriteProcessMemory到目标进程空间内,从而达到修改的目的。
代码如下:
uses CommCtrl;
function ListView_GetItemText_Ex(hwndLV: HWND; i, iSubItem: Integer;
pszText: PChar; cchTextMax: Integer): Integer;
var
LVItem: TLVItem;
ProcessID, ProcessHD, Temp: DWORD;
MemPoint: Pointer;
begin
GetWindowThreadProcessId(hwndLV, ProcessID);
ProcessHD := OpenProcess(
PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE,
FALSE, ProcessID);
MemPoint := VirtualAllocEx(ProcessHD, nil, SizeOf(TLVItem) + cchTextMax,
MEM_COMMIT, PAGE_READWRITE);
LVItem.iSubItem := iSubItem;
LVItem.cchTextMax := cchTextMax;
LVItem.pszText := PChar(Integer(MemPoint) + SizeOf(TLVItem));
WriteProcessMemory(ProcessHD, MemPoint, @LVItem, SizeOf(TLVItem), Temp);
Result := SendMessage(hwndLV, LVM_GETITEMTEXT, i, Integer(MemPoint));
ReadProcessMemory(ProcessHD, Pointer(Integer(MemPoint) + SizeOf(TLVItem)),
pszText, cchTextMax, Temp);
VirtualFreeEx(ProcessHD, MemPoint, SizeOf(TLVItem) + cchTextMax, MEM_DECOMMIT);
VirtualFreeEx(ProcessHD, MemPoint, 0, MEM_RELEASE);
end;
复制代码
这是一个叫刘麻子的人在2005年就写了的。
至此,整个隐藏的过程就呈现在大家眼前拉。
相信大家也对楼主的精神是敬佩有加,能想到此术实在是佩服啊!
另外楼主还设置了一个F12键和防止进程重复运行的东西,这些搂主以前都已经做过且说过了,所以偶就不再多分析拉。
说得不对的地方还请楼主指教哦。。。
作者:
无条件为你
时间:
2007-3-20 22:27
今天才看到这个贴子原来多了楼上朋友的这篇回复。
你说这是一个叫刘麻子的人在2005年写的,不过我要说最后隐藏你说的不对,我原创的方法与他不同。
更新速度暂停和设置F12键,这两个我事先说过,否则你未必会看出来。
但进程隐藏你所说方法与我不同,不过听你说得头头是道,我觉得也是一种看贴子的享受。
作者:
无条件为你
时间:
2007-3-20 22:36
看了你的贴子,我笑得半死,语言表述真逗人啊!
欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/)
Powered by Discuz! 7.2