二进制安全C/C++汇编一线开发Shellcode [2021]RtlExecuteHandlerForException、RtlVirtualUnwind、RtlRaiseStatus与X64 SEH处理漫步 最近在给沙箱增加异常处理 然后打算学习一下异常处理的内容 在上一文章我简单介绍了一下X64 SEH在PE里面的表现,但是没有细说系统是如何处理的,因此本文就会详细介绍系统是如何处理runtime function的: 请注意本文可能会有错误,如果以后我发现写错了我会随时修正 阅读全文 2021-03-28 huoji 0 条评论
二进制安全汇编Shellcode [2021]x64 SEH分析 最近在给沙箱增加异常处理 然后打算学习一下异常处理的内容,,搜索了一下 网上都是莫名其妙复制粘贴的,我们直接从原理上解决这个问题: 首先是try catch ![](https://key08.com/usr/uploads/2021/03/3198721258.png) 阅读全文 2021-03-27 huoji 0 条评论
二进制安全C/C++汇编Shellcode [2021]正确探测到内存映射的模块 "无文件落地"/木马/外挂/后门 @lordtristan ```cpp if(VirtualQueryEx(hProc, lpAddress, &mbi, sizeof(mbi))){ //Use "mbi." here, its just a fast C&p from my source if((dwState & MEM_COMMIT) && ((dwProtect & PAGE_EXECUTE_READWRITE) || (dwProtect & PAGE_EXECUTE_READ)) && !(dwProtect & PAGE_NOACCESS) && !(dwProtect & PAGE_GUARD) && !(dwState & MEM_RELEASE)) { VirtualLock(lpAddress, dwSize); HMODULE hModule; GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, (LPCTSTR)lpAddress, &hModule); if(!hModule) //Inside of the exe file { DWORD dwDLLMain = FindPattern((DWORD)lpAddress, dwSize, (BYTE*)"\x55\x8b\xec\x83\x7d\x0c\x01\x75\x00", "xxxxxxxx?"); if(dwDLLMain) { //DLL-Main inside of the exe file?! //Do whatever yo uwant now :D } } VirtualUnlock(lpAddress, dwSize); } } ``` 阅读全文 2021-03-16 huoji 0 条评论