相关疑难解决方法(0)

保护可执行文件免受逆向工程?

我一直在考虑如何保护我的C/C++代码免于反汇编和逆向工程.通常我永远不会在我的代码中宽恕这种行为; 然而,为了各种人的安全,我一直在努力的现行协议绝不能被检查或理解.

现在这对我来说是一个新的主题,互联网并不是真正有效防范逆向工程,而是描绘了大量有关如何逆向工程的信息

到目前为止我想到的一些事情是:

  • 代码注入(在实际函数调用之前和之后调用虚函数)
  • 代码obfustication(破坏二进制的反汇编)
  • 编写我自己的启动例程(调试器更难绑定)

    void startup();  
    int _start()   
    {  
        startup( );  
        exit   (0)   
    }  
    void startup()  
    {  
        /* code here */  
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 运行时检查调试器(如果检测到则强制退出)

  • 功能蹦床

     void trampoline(void (*fnptr)(), bool ping = false)  
     {  
       if(ping)  
         fnptr();  
       else  
         trampoline(fnptr, true);  
     }
    
    Run Code Online (Sandbox Code Playgroud)
  • 无意义的分配和解除分配(堆栈变化很多)

  • 毫无意义的虚拟呼叫和蹦床(在反汇编输出中大量跳跃)
  • 铸造吨(用于混淆的拆卸)

我的意思是这些是我所想到的一些事情,但是在适当的时间范围内,它们都可以被代码分析师解决或者解决.我还有其他选择吗?

c c++ obfuscation assembly

205
推荐指数
18
解决办法
6万
查看次数

Ruby混淆器

是否有ruby混淆器或"编译器"?

ruby obfuscation

22
推荐指数
1
解决办法
1万
查看次数

标签 统计

obfuscation ×2

assembly ×1

c ×1

c++ ×1

ruby ×1