代码混淆器到底是不是病毒,安卓代码混淆

广告位招租
联系电话:13518188210

引入代码混淆

代码混淆器到底是不是病毒,安卓代码混淆

代码混淆(Obfuscated code)也称为花指令,就是把计算机程序编码出来,转化为功能上的等效,但很难读懂,也很难理解,表现为。在程序运行过程中,当用户对某个程序进行修改时,系统就会把这个修改用另一个类似于该修改的代码来替换。代码混淆可在程序源代码中使用,还可应用于由程序编译形成的中间代码。代码混淆在计算机应用中具有重要作用,如可提高软件质量、缩短软件开发时间等。进行代码混淆的过程称为代码混淆器。在软件测试过程中使用代码混淆器会大大降低软件错误分析效率。现在有很多不同功能的代码混淆器。本文介绍一种简单且实用的代码混淆器,它通过使用一个类似于字符串排序算法的方法。把代码的变量、函数等各类要素,类名被重写为毫无意义。这种做法会使用户在读到代码时感到不方便和费解。例如,重写为单个字母,或短小精悍,没有意义的字母组合,甚至重写为“__”等标志,使读者不可得志,凭姓名就能推测出它的目的。这就导致了一个程序在执行时很难被读懂,也就是我们常说的代码垃圾现象。改写代码的一些逻辑,使之成为功能等价的,但较难了解的格式。在编程时对某些特殊语句进行修改,使之能够使用某种特定语法来描述和表达,从而简化了语言结构。例如,for循环被重写为while循环,把循环重写为递归,简化中间变量等。这些都是在不改变代码内容和结构情况下对代码进行改动。扰乱代码形式。代码混淆器是一种软件自动化工具。例如,去掉空格,把多行代码挤入行,或把行的代码断为多行等。在编译过程中对源程序进行修改,例如添加或删减等,都需要编写一个代码混淆器。代码混淆器还可能导致一系列问题。代码混淆器的缺陷之一是不能处理错误类型和误码模式的混合。主要问题有:混乱的编码很难理解,于是,调试除错就变的很难了。如果不加限制地使用了代码混淆技术,那么它可以用来修改一个程序。开发人员一般都要求在调试过程中保留原未混码。如果没有一个合适的方法来处理这些代码混淆,则在测试和开发过程中就很容易出现错误。对支持反射语言而言,代码混淆很可能会和反射冲突。如果代码混淆导致逆向工程失败的话,那么将影响软件质量和效率。代码混淆无法真正防止反向工程的发生,只会增加它的困难。在一些应用中,为了避免逆向工程师将错误源重新编译到目标系统,必须采用代码混淆技术来解决这个问题。所以,在安全方面有较高要求的情况,单纯采用代码混淆无法确保源代码安全。

android里有什么是无法进行代码混淆的

代码混淆器到底是不是病毒,安卓代码混淆

普通无法混用AndroidCodeAndroid程序以下等代码混用时注意留存。

Android系统组件、系统组件具有供系统调用的固定方式。

被Android Resource文件引用到的。会出现一个名为“我是谁”的程序。名称已定型,也不可以混为一谈,例如定制View。

Android Parcelable ,需要使用android 序列化的. Android Parcelable ,需要使用android 序列化的.

还有一些Anroid正式提出不要混为一谈,比如

android.app.backup.BackupAgentHelper android.app.backup.BackupAgentHelper

android.preference.Preference android.preference.Preference

com.android.vending.licensing.ILicensingService com.android.vending.licensing.ILicensingService

Java序列化的方式、系统序列化所需的固定方式。

枚举是指系统要解决枚举固定方法问题。

无法更改本地方法名称的本地方法

annotation 注释

数据库驱动等

一些resource文件

使用反射之处,本为提问者及网民所采用

怎样将代码与相关的配置混为一谈

代码混淆器到底是不是病毒,安卓代码混淆

混淆在项目发布前是一项不可缺少的任务,它会提高他人反编译和阅读代码时的困难程度,同时也会减少APK包的使用。

使用的步骤:

1、修改project.properties文件: 修改project.properties文件:

Java代码是收藏代码的工具

# To allow ProGuard to reduce and obfuscate your code, uncomment this (available properties: sdk.dir, user.home).

# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

删除proguard.config行前#注释;

2、配置proguard-project.txt文件: 配置proguard-project.txt文件:

这就是主配置文件。其中配置了什么要混,什么不要混;

向外提供类,方法,变量和其他名称不应混为一谈;

在AndroidManifest中配置的类(Activity、Service等的子类及Framework类默认不会进行混淆)

不混淆Parcelable的子类,防止android.os.BadParcelableException 不混淆Parcelable的子类,防止android.os.BadParcelableException

在Jni里调用的一个类

反射使用的类别

工程上实体类

3、导出项目中:

export签名工程。

4、看有无混淆成功:

使用反编译工具对未混代码进行反编译和比较;

5、操作ProGuard和它所产生的文档简介

在以release模式下打包apk时会自动运行ProGuard,这里的release模式指的是通过ant release命令或eclipse project->android tools->export signed(unsigned) application package生成apk.在debug模式下为了更快调试并不会调用proguard. 在以release模式下打包apk时会自动运行ProGuard,这里的release模式指的是通过ant release命令或eclipse project->android tools->export signed(unsigned) application package生成apk.在debug模式下为了更快调试并不会调用proguard.

如果是ant命令打包apk,proguard信息文件会保存于/bin/proguard文件夹内;如果要将此文件传输到其他的设备上,则需要使用另一种方法来打包。如果用eclipse export命令打包,会在/proguard文件夹内。这些文件都可以用来对文件名进行加密处理。它包括下列文件:

mapping.txt是混淆前、后代码对照表,这篇论文很有意义。如果你的代码被混淆了,那么在使用时就要注意它。如果代码在混乱之后出现bug,log暗示了在多大程度上混乱了编码,想要定位于源代码,则可基于mapping.txt进行反推。

dump.txt介绍了apk中全部class文件内部结构

seeds.txt中列举了一些未混为一谈的类及会员

usage.txt列有源代码,apk上没有删除

当前,市场上存在大量第三方应用加固平台,若在新应用推出之前,需进行扫描或加固,可先试后试,免费使用,比如腾讯御安全,建议您本人先行加固测试一下。

谁来建议一个c++代码混淆工具

代码混淆器到底是不是病毒,安卓代码混淆

1、Stunnix CXX-Obfus Stunnix CXX-Obfus

Stunnix CXX-Obfus是C和C++源码的混淆器,可成了极难阅读的问题、复用和编辑代码。为控制代码的混淆处理提供了多种方案,全面支持各种语法构造,支持C与C++源码混合工程。

2、JsCompressor JsCompressor

JsCompressor,主要用来压缩、混淆JS(Javascript)与CSS,基于YUI Compressor,旨在为那些对Java陌生或对命令行方式压缩不太感兴趣的Web开发者提供便利。该技术在国内比较流行,但由于其本身的缺陷,很多人都认为它不能很好地保护用户隐私,甚至会对网络环境造成严重污染。本为网友所采用

JS代码搞混,如何反混回来?

代码混淆器到底是不是病毒,安卓代码混淆

这并不是混淆不清,而是用16进制来表示ASCII码~

分别抽取一个字符串并添加到后面。toString()调试可以查看最初的字符串。

您的转码下面:

window[“document”][“write”](‘

相当于:window.[xss_clean](‘

极可能是从script标签中输出代码段起始。

原创文章,作者:聚禄鼎,如若转载,请注明出处:https://www.xxso.cn/12776.html

(0)
聚禄鼎的头像聚禄鼎
上一篇 2022年11月24日 上午8:33
下一篇 2022年11月24日 上午8:33

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注