200分求 inline api hook隐藏注册表启动项?

hjkto 2012-01-31 09:27:06
个人电脑有个程序需要保持启动,所以求这个代码
实现,隐藏run下指定的启动项,网上看了一些代码,全是c的,求个d的?
网上c代码一般是全部隐藏了,我要隐藏指定的,如a.exe
api hook 用户模式下实现!
...全文
229 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
RLib 2012-02-02
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hjkto 的回复:]

等的就是你,高手!
[/Quote]
对,同膜拜。
hjkto 2012-02-01
  • 打赏
  • 举报
回复
等的就是你,高手!
Lactoferrin 2012-02-01
  • 打赏
  • 举报
回复


function RegQueryValueExWindex( name1:string):DWORD;
var
buf : array [0..255] of char;
iRes : integer;
hKeyx : HKEY;
dwIndex, dwSize : DWORD;
begin
Result:=Cardinal(-1);
if RegOpenKeyEx(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\CurrentVersion\Run\', 0,
KEY_QUERY_VALUE, hKeyx ) = ERROR_SUCCESS then
begin
dwIndex := 0;
repeat
dwSize := 255;
iRes := RegEnumValue( hKeyx, dwIndex, buf, dwSize ,nil,nil,nil,nil);
if iRes = ERROR_NO_MORE_ITEMS then
break
else if (iRes = ERROR_SUCCESS) or (iRes = ERROR_MORE_DATA) then
begin
if buf=name1 then
begin
Result:=dwIndex;
end;
inc( dwIndex );
end;
until iRes <> ERROR_SUCCESS;
RegCloseKey( hKeyx );
end;


end;


PCardinal(Cardinal(View)+SizeOf(Cardinal)*3)^:=RegQueryValueExWindex('Project1');

function RegEnumValueWCallback(hKey: HKEY; dwIndex: DWORD; lpValueName: PWideChar;
var lpcbValueName: DWORD; lpReserved: Pointer; lpType: PDWORD;
lpData: PByte; lpcbData: PDWORD): Longint; stdcall;
var ObjectName:PWideChar;Length:Cardinal;RunName:UNICODE_STRING;
begin
GetMem(ObjectName,4096);
if ObjectName<>nil then begin

if NtQueryObject(hKey,1,ObjectName,4096,@Length)=0 then begin
RunName.Buffer:='\Registry\MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'; RunName.Length:=126; RunName.MaximumLength:=126; if RtlCompareUnicodeString(PUNICODE_STRING(ObjectName),@RunName,True)=0 then
if dwIndex>=PCardinal(Cardinal(View)+SizeOf(Cardinal)*3)^ then Inc(dwIndex);
end;
FreeMem(ObjectName);
end;

Result:= RegEnumValueWNext(hKey,dwIndex,lpValueName,lpcbValueName,lpReserved,lpType,lpData,lpcbData);

end;
hjkto 2012-02-01
  • 打赏
  • 举报
回复
网上有c代码,不是驱动实现的
代码跳动 2012-02-01
  • 打赏
  • 举报
回复
这个要驱动才可以实现吧。我这几天一直在折腾隐藏进程呢。
hjkto 2012-02-01
  • 打赏
  • 举报
回复
我对c不懂
只是稍微参考一下
d的hook实在太少
Jekhn 2012-02-01
  • 打赏
  • 举报
回复
这段代码用到的类型,宏函,数都是驱动里面用的,楼主说这个不是驱动实现的?
pathletboy 2012-02-01
  • 打赏
  • 举报
回复
看到ExAllocatePool,就知道你这代码是驱动代码。
蓝色光芒 2012-02-01
  • 打赏
  • 举报
回复
不用驱动,不考虑防火墙拦截,inline HOOK才有效果,这C的代码只是HOOK后的实现函数,inline HOOK部分需要重新写
hjkto 2012-02-01
  • 打赏
  • 举报
回复

核心部分

NTSTATUS ntstatus;
NTSTATUS status=STATUS_SUCCESS;
void *sjm;
ULONG vvb=0;
ULONG asp=100;
UNICODE_STRING zxm,yy;
PKEY_VALUE_BASIC_INFORMATION pvbi =(KEY_VALUE_BASIC_INFORMATION)ExAllocatePool(PagedPool,asp);
RtlInitUnicodeString(&yy,L"zhu");
ntstatus = ZHURUINAN( KeyHandle,Index,KeyValueInformationClass,KeyValueInformation, Length,ResultLength);
if( NT_SUCCESS( ntstatus ))
{
if (KeyValueInformationClass==0)
sjm = ((KEY_VALUE_BASIC_INFORMATION)KeyValueInformation)->Name;
if (sjm="Run")
{
status=ZwQueryValueKey(KeyHandle,&yy,KeyValuePartialInformation,pvbi,asp,&vvb);
if (NT_SUCCESS(status))
{
zxm.Length = zxm.MaximumLength =pvbi->NameLength;
zxm.Buffer = pvbi->Name;
if(wcsstr(zxm.Buffer,L"C:\\a.exe")!=NULL)
{
Index=Index+100;
}
}
}
ntstatus = ZHURUINAN(KeyHandle,Index,KeyValueInformationClass,KeyValueInformation,Length,ResultLength);
}

return ntstatus;


Jekhn 2012-02-01
  • 打赏
  • 举报
回复
有C了,那翻译成D不难吧,不知可否贴出C的代码。
erhan 2012-02-01
  • 打赏
  • 举报
回复
mark
PCHunter中文版是一款非常牛系统信息查看工具,也是非常好用的手动杀毒神器,它可以通过例如:进程管理、驱动模块、内核钩子、网络管理,注册表、文件管理、启动项等,通过这些系统信息来找到恶意软件并从系统中清除它们。 PC Hunter 功能特点: 1、进程、线程、进程模块、进程窗口、进程内存信息查看,杀进程、杀线程、卸载模块等功能 2、内核驱动模块查看,删除驱动、卸载驱动、支持内核驱动模块的内存拷贝 3、SSDT、Shadow SSDT、FSD、KBD、TCPIP、Nsiproxy、Tdx、Classpnp、Atapi、Acpi、SCSI、IDT、GDT信息查看,并能检测和恢复ssdt hookinline hook 4、CreateProcess、CreateThread、LoadImage、CmpCallback、BugCheckCallback、Shutdown、Lego等近20多种Notify Routine信息查看,并支持对这些Notify Routine的删除 5、端口信息查看,目前不支持2000系统 6、查看消息钩子 7、内核模块的iat、eat、inline hook、patches检测和恢复 8、磁盘、卷、键盘、网络层等过滤驱动检测,并支持删除 9、注册表编辑 10、进程iat、eat、inline hook、patches检测和恢复 11、文件系统查看,支持基本的文件操作 12、查看(编辑)IE插件、SPI、启动项、服务、Hosts文件、映像劫持、文件关联、系统防火墙规则、IME 13、ObjectType Hook检测和恢复 14、DPC定时器检测和删除 15、MBR Rootkit检测和修复 16、内核对象劫持检测 17、WorkerThread枚举 18、Ndis中一些回调信息枚举 19、硬件调试寄存器、调试相关API检测 20、枚举SFilter/Flgmgr的回调 21、系统用户名检测

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧