|
[总结]获取内核ntoskrnl.exe基地址的几种常见办法
,的确没考虑多核的情况。 |
|
如何能够从一个.CPP文件创建一个DLL文件,不使用类似什么.DEF什么的,而是使用类似下面的语句,关键我很懒,很想把所有的东西都放在一起来做
_delcspec写错了,应该是_declspec |
|
[总结]获取内核ntoskrnl.exe基地址的几种常见办法
顺便问下诸位,如果帖子标题中有错别字,该怎么修改?怎么我感觉我自己好像不能修改似的。是不是这样呢? |
|
如何能够从一个.CPP文件创建一个DLL文件,不使用类似什么.DEF什么的,而是使用类似下面的语句,关键我很懒,很想把所有的东西都放在一起来做
呵呵,除了使用 dllexport 来导出函数外,还可以使用 例如: int __stdcall MyExportFunction(int iTest); 要导出这个函数,可以用 #pragma comment(linker,"/EXPORT:MyExportFunction=_MyExportFunction@4") 其中:编译生成的_MyExportFunction@4函数名,跟调用约定,函数名,函数参数的个数有关。 |
|
[求助]APIHOOK的问题
,你在这里采用的是Inline hook的一种挂接方式。 你使用的机器码0x0B8, 0x0, 0x0, 0x40, 0x0, 0x0FF, 0x0E0; 意思是 mov eax,addr jmp eax 我对Delphi不懂,但是显然你的做法是错误的。 1)为啥要使用二维数组? 2)你没有理解这个机器码的意思,更没有在里面填充上自己的api函数address. 我给你贴一个c++的代码,你参考下吧 class CHookApi_Jmp2 { public: CHookApi_Jmp2(); virtual ~CHookApi_Jmp2(); public: void HookOneAPI(LPCTSTR ModuleName,LPCTSTR ApiName,FARPROC lpNewFunc); void SetHookOn(); void SetHookOff(); protected: HANDLE m_hProc; BYTE m_OldFunc[8]; BYTE m_NewFunc[8]; PROC m_lpHookFunc; }; CHookApi_Jmp2::CHookApi_Jmp2() { BYTE str[8] = { 0x0B8, 0x0, 0x0, 0x40, 0x0, 0x0FF, 0x0E0,0}; // mov eax,addr jmp eax memcpy(m_NewFunc,str,8); } //--------------------------------------------------------------------------- CHookApi_Jmp2::~CHookApi_Jmp2() { CloseHandle(m_hProc); } //--------------------------------------------------------------------------- void CHookApi_Jmp2::SetHookOn() { DWORD dwOldFlag; WriteProcessMemory(m_hProc, (void *)m_lpHookFunc, (void *)m_NewFunc, 8, &dwOldFlag); } //--------------------------------------------------------------------------- void CHookApi_Jmp2::SetHookOff() { DWORD dwOldFlag; WriteProcessMemory(m_hProc, (void *)m_lpHookFunc, (void *)m_OldFunc, 8, &dwOldFlag); } //--------------------------------------------------------------------------- void CHookApi_Jmp2::HookOneAPI (LPCTSTR ModuleName, LPCTSTR ApiName, FARPROC lpNewFunc) { m_lpHookFunc = GetProcAddress(GetModuleHandle(ModuleName),ApiName); m_hProc = GetCurrentProcess(); // 复制m_lpHookFunc前8个字节代码到m_OldFunc. memcpy(m_OldFunc,(char *)m_lpHookFunc,8); *(DWORD *)( m_NewFunc + 1 ) = (DWORD)lpNewFunc; } |
|
[求助]为什么APIHOOK对有些程序没用了?
,你使用IAT的方式挂钩api,方法没有错。问题出在注入进程空间你使用的是CreateRemoteThread的办法,这种办法的缺陷就是只能对你注入的进程有效。如果你使用全局钩子注入进程的方式的话,问题就解决了。 |
|
|
|
[专题四]Rootkit的学习与研究
欢迎大家多多提供病毒、木马样本。。。。。。 |
|
|
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值