代码混淆定义及操作 代码混淆技术有哪些

有的时候,我们想分析一个程序的java层逻辑,进行反编译后,发现代码所有的函数名、变量名、类名等都成了一些杂乱无章的名字,没有任何规律可言,这是怎么回事呢?其实程序是被混淆了。

混淆是什么?

混淆是通过一些工具,对函数名、变量名、类名、字段进行批量重命名。

混淆的例子以及作用

例子:

先来看一下没有被混淆的例子:这是我们自己写的程序,反编译:

发现逻辑很清楚,反编译之后的源码和我们写的代码完全一样,我们写的应用就是一只被宰的羊,谁都可以咬一口。

代码保护的第一步就是混淆,就是对代码动下手脚,让反编译出来的代码不这么容易看懂。

打开andoridkiller工具,以X右为例子

打开一个smail文件夹:

发现里面都变成了这种:这种只是初级的混淆,还有一些可能混淆成外文的。

正常的开发中是不会有这种命名的

随便点进去看一个,虽然有影响的,但是影响不大。

需要借助一个工具:jdax-gui;

看一下这工具能把我们的代码还原成什么程序:

我们可以借助一些工具达到简单的混淆的目的,点击这个

图标,它会把我们的代码重新混淆。

重新打开,这里会对我们的代码重新反编译并且重命名,可以方便我们来区分。

混淆无非就是增加我们的逆向时间,放到jdax-gui里面是为了好看一些,但是整体的逻辑是不会混淆的。

也就说,代码混淆并不能一劳永逸的解决代码保护的问题,只是把读代码的时间变得比开发代码的时间还要长,当然,有些核心代码最好不要放在Java中,有一些非常有毅力的人,还是愿意花这个时间的。

ProGuard介绍以及混淆特点

(1)ProGuard会检测和移除封装中未使用的类、字段、方法和属性,包括自带代码库中未使用的项。

(2)ProGuard还可以优化字节码,移除未使用到的代码指令,以及用短名称混淆其余的类、字段和方法。

随机数c语言代码(c语言二维数组定义和赋值)

html函数定义格式(js加减乘除运算代码)

java定义字符串类型(java代码大全及详解)


分享君

分享君

我是分享君

相关推荐

高血压脑梗治疗方案

高血压脑梗治疗方案并不唯一,应根据患者具体病情制定,以下是一般的治疗方案:1.控制血压:高血压是脑梗的主要危险因素,应该尽早控制血压,保持在140/90mmHg …

长沙市人流量最多的夜市有哪些

长沙市人流量最多的夜市有以下几处:1. 橘子洲西岸夜市:位于岳麓区天心阁景区橘子洲西岸,是长沙市内最大的夜市之一,集美食、休闲、娱乐于一体,吸引了众多游客和市民 …

安吉白茶——雅致清幽的好茶

安吉白茶是著名的中国绿茶之一,它产自浙江省安吉县的一种茶树品种“白毫乌龙”,因茶叶带有银白色毫,高山环境,而得名“安吉白茶”。安吉白茶以茶色翠绿,滋味甘鲜柔和, …

怎么开发一款字体

1.确定字体风格:根据市场需求或自身创意选择字体风格,例如手写字体、衬线字体等。2.设计字形:借鉴已有字体或全新创作出字符图形,运用设计软件打造多个字形。3.调 …

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

代码混淆定义及操作 代码混淆技术有哪些