C 在exe的入口点周围添加nop

C 在exe的入口点周围添加nop,c,windows,winapi,portable-executable,C,Windows,Winapi,Portable Executable,我尝试开发一个打包器,它不依赖于在pe文件中添加更多的部分。在以下两种情况下,如何在入口点周围为解密程序存根插入空间: 在编译时,这意味着我有一个源代码,我想告诉编译器(在我的例子中:gcc-minGW64)在maincrtstartup/入口点周围插入一些nop指令 使用二进制,这可能要困难得多。 据我所知,我需要将二进制文件分成两部分(在入口点),在它们之间添加nop,再次合并它们,并修复所有函数地址和pe头中的值。是否有一个库(Python,C++)可以将nop插入到二进制文件中 编辑:进

我尝试开发一个打包器,它不依赖于在pe文件中添加更多的部分。在以下两种情况下,如何在入口点周围为解密程序存根插入空间:

  • 在编译时,这意味着我有一个源代码,我想告诉编译器(在我的例子中:gcc-minGW64)在maincrtstartup/入口点周围插入一些
    nop
    指令

  • 使用二进制,这可能要困难得多。 据我所知,我需要将二进制文件分成两部分(在入口点),在它们之间添加
    nop
    ,再次合并它们,并修复所有函数地址和pe头中的值。是否有一个库(Python,C++)可以将nop插入到二进制文件中

  • 编辑:进一步指定第二种情况:

    假设您有一个pe格式的二进制文件,并且希望在文件的.text段中插入一些nop操作码

    假设文件的程序集如下所示:

    push ebp 
    add eax, 5
    inc ecx
    pop ebp 
    

    我想在add eax、5和inc ecx之间插入一些nop。

    需要某种热补丁吗?这个问题有点宽泛,但你们可能想看看

    我相信它需要使用MS VC来实现#1,我不认为这可以在C编译器中实现。您可以使用内部函数。但我不确定是否可以在全局范围内使用C intrinsic来进行包装。我想可以创建一些静态空间,并在运行时编写NOP和复制函数。不过,我认为实现这一点最简单的方法是编译函数,将反汇编中的指令复制粘贴到.asm文件,并添加您想要的NOP,然后使用nasm或您决定使用的任何汇编程序再次编译并链接obj


    <我不认为有任何公共图书馆用于CheatEngine 2。< /P> < P>让一个C++可执行文件启动一个“破解”exe进程,然后暂停它,在你发现的某个内存地址中函数(在我看来,NoP的十六进制代码是X90,所以在你发现的用欺骗引擎找到的内存地址中改变你的OP代码)然后继续运行.exe,然后运行该文件。然后这就是你的破甲发射器


    <>或者找到一种方法来重新编译C++ +exe,使用非破解exe ./p>问题太宽,不适合堆栈溢出。