小知识点2

1.DLL中需要导出的函数前加__declsepc(dllexport)就可以了

2.__cplusplus必须是小写

3.用HMODULE做基址时,要转化为(BYTE*)

4.Windows消息分为队列消息和非队列消息,WH_GETMESSAGE不能取到非队列消息,用SendMessage发送的消息不经过队列,用PostMessage发送的消息被放入队列

5.PE PIMAGE_IMPORT_DESCRIPTOR:OriginalFirstThunk可以用来转换为PIMAGE_IMPORT_BY_NAME,以获取文件名和hint.

但是,PIMAGE_IMPORT_DESCRIPTOR:FirstThunk不能转为PIMAGE_IMPORT_BY_NAME,他只是表示地址

重写导入表时,

int *myaddr = (int*)NewFreeLibrary; 
::WriteProcessMemory(hProcess, lpAddr, &myaddr, sizeof(DWORD), &BytesWritten); //注意是&myaddr,如果没有取地址-->崩溃!


6.系统有2个SSDT表, 一个是KeServiceDescriptorTable(ntoskrnl.exe导出),一个是KeServieDescriptorTableShadow(ntoskrnl.exe未导出)


7.做SSDT钩子时,可以call myfunction,但是做Detour时,必须mov eax,myfunction,call eax,否则崩溃。。为毛?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值