学习笔记-hooksleep-2023年11月28日
思路
下载器–下载两个文件–执行两个文件
下载器实现
1 |
|
- 下载方式:windowsapi
- 执行方式:system
ShellcodeFluctuation
第一部分 主函数
1 | int main(int argc, char** argv) |
流程:readshellcode—-hooksleep—-injectshellcode
第二部分 hooksleep
1 | bool hookSleep() |
函数:MySleep
第三部分 MySleep
1 | void WINAPI MySleep(DWORD dwMilliseconds) |
函数:shellcodeEncryptDecrypt—–xor32
第四部分 fastTrampoline initializeShellcodeFluctuation
fastTrampoline
1 | bool fastTrampoline(bool installHook, BYTE* addressToHook, LPVOID jumpAddress, HookTrampolineBuffers* buffers) |
直接jmp
initializeShellcodeFluctuation
1 | void initializeShellcodeFluctuation(const LPVOID caller) |
总结
利用jmp来跳转,恢复则直接恢复修改前的代码,比较容易理解,在编写下载器的时候利用urldownloadtofile,chatgpt对于这块代码很熟悉,但是在命令执行上不管是利用system还是createprocess还是shellexecute生成的代码都很繁琐且报错,不过可以参考结构自己修改。
查杀:不能过defender,不能过360,能过火绒
最大收获就是知道了cs的sleep至少在4.9这个版本是利用的windows原版的sleep函数,自己下来修改的话就找这个函数的地址就行了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小玉玉的博客!