标签: obfuscation

混淆的C代码竞赛2006.请解释sykes2.c

这个C程序如何工作?

main(_){_^448&&main(-~_);putchar(--_%64?32|-~7[__TIME__-_/8%8][">'txiZ^(~z?"-48]>>";;;====~$::199"[_*2&8|_/64]/(_&2?1:8)%8&1:10);}
Run Code Online (Sandbox Code Playgroud)

它按原样进行编译(测试gcc 4.6.3).它打印编译时的时间.在我的系统上:

    !!  !!!!!!              !!  !!!!!!              !!  !!!!!! 
    !!  !!  !!              !!      !!              !!  !!  !! 
    !!  !!  !!              !!      !!              !!  !!  !! 
    !!  !!!!!!    !!        !!      !!    !!        !!  !!!!!! 
    !!      !!              !!      !!              !!  !!  !! 
    !!      !!              !!      !!              !!  !!  !! 
    !!  !!!!!!              !!      !!              !!  !!!!!!
Run Code Online (Sandbox Code Playgroud)

资料来源:sykes2 - 一行中的一个时钟,sykes2作者提示

一些提示:默认情况下没有编译警告.编译时-Wall,会发出以下警告:

sykes2.c:1:1: warning: return type defaults to ‘int’ [-Wreturn-type]
sykes2.c: In function ‘main’:
sykes2.c:1:14: warning: value …
Run Code Online (Sandbox Code Playgroud)

c obfuscation deobfuscation

963
推荐指数
4
解决办法
8万
查看次数

如何混淆(保护)JavaScript?

我想创建一个非开源的JavaScript应用程序,因此我希望学习如何模糊我的JS代码?这可能吗?

javascript obfuscation source-code-protection

704
推荐指数
15
解决办法
39万
查看次数

我如何保护Python代码?

我正在开发一个Python软件,将分发给我的雇主的客户.我的雇主希望使用时间限制的许可证文件来限制软件的使用.

如果我们分发.py文件甚至.pyc文件,那么很容易(反编译)删除检查许可文件的代码.

另一个方面是我的雇主不希望我们的客户阅读代码,担心代码可能被盗或至少是"新颖的想法".

有没有一个很好的方法来处理这个问题?优选使用现成的解决方案.

该软件将在Linux系统上运行(所以我认为py2exe不会这样做).

python obfuscation licensing copy-protection

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

保护.NET代码免受逆向工程?

混淆是一种方式,但它无法防止破坏应用程序的盗版保护安全性.我如何确保应用程序不被篡改,以及如何确保注册机制不能被反向工程?

此外,可以将C#应用程序转换为本机代码,而Xenocode代价太高.

C#提供了很多的功能,并且是我的代码的理想语言,所以下再次写入整个代码库++是出了问题.

可以从.NET中的签名程序集中轻松删除安全证书.

.net c# obfuscation reverse-engineering

481
推荐指数
19
解决办法
23万
查看次数

C#的简单不安全双向"混淆"

我正在为某些数据寻找非常简单的混淆(如加密和解密但不一定是安全的)功能.这不是关键任务.我需要一些东西来保持诚实的人诚实,但比ROT13Base64强一点.

我更喜欢已经包含在.NET framework 2.0中的东西,所以我不必担心任何外部依赖.

我真的不想乱用公钥/私钥等等.我对加密知之甚少,但我知道我写的任何东西都不会毫无价值......事实上,我可能搞砸了数学并且让它变得微不足道.

c# obfuscation

419
推荐指数
11
解决办法
21万
查看次数

TRUE和FALSE宏的奇怪定义

我在编码书中看到了以下宏定义.

#define TRUE  '/'/'/'
#define FALSE '-'-'-'
Run Code Online (Sandbox Code Playgroud)

那里没有解释.

请向我解释如何将这些作为工作TRUEFALSE.

c c++ macros obfuscation boolean

297
推荐指数
6
解决办法
2万
查看次数

什么是C中的>>> =运算符?

由同事作为一个谜题,我无法弄清楚这个C程序实际上是如何编译和运行的.什么是这个>>>=运算符和奇怪的1P1文字?我在Clang和GCC进行了测试.没有警告,输出是"???"

#include <stdio.h>

int main()
{
    int a[2]={ 10, 1 };

    while( a[ 0xFULL?'\0':-1:>>>=a<:!!0X.1P1 ] )
        printf("?");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c obfuscation bit-shift literals digraphs

291
推荐指数
3
解决办法
2万
查看次数

为什么MongoDB Java驱动程序在条件中使用随机数生成器?

我看到下面的代码这次提交MongoDB的Java的连接驱动程序,它首次出现时是某种玩笑.以下代码有什么作用?

if (!((_ok) ? true : (Math.random() > 0.1))) {
    return res;
}
Run Code Online (Sandbox Code Playgroud)

(编辑:发布此问题以来代码已更新)

java obfuscation mongodb

211
推荐指数
3
解决办法
2万
查看次数

是否有PHP的代码混淆器?

有没有人用过PHP的好混淆器?我尝试了一些,但他们不适用于非常大的项目.例如,它们无法处理包含在一个文件中并在另一个文件中使用的变量.

或者你有任何其他技巧来阻止代码的传播?

php obfuscation

208
推荐指数
7
解决办法
18万
查看次数

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

我一直在考虑如何保护我的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万
查看次数