安卓编程 如何进行代码混淆

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓编程 如何进行代码混淆相关的知识,希望对你有一定的参考价值。

我在 project.properties 里面加入了下面两行代码:

target=android-9
proguard.config=proguard.cfg
但是编译出来的代码并没有被混淆,请问应该怎么写才可以?

安卓在eclipse中的ADT已经改变原有的模式了,你在项目文件中找到这两个文件,一般在项目根目录里。

第一个文件是描述文件,第二个文件是配置文件。

如果要实现代码混淆,需要修改第二个文件。打开第二个文件,如下:

其中红线部分说,如果你要实现代码混淆,你需要把下面一行给反注释掉。

就是把红线第二行前面的#号给去掉就好了。

如果有回答不当之处,还望见谅。

参考技术A

安卓在eclipse中的ADT已经改变原有的模式了,你在项目文件中找到这两个文件,一般在项目根目录里。

第一个文件是描述文件,第二个文件是配置文件。

如果要实现代码混淆,需要修改第二个文件。打开第二个文件,如下:

其中红线部分说,如果你要实现代码混淆,你需要把下面一行给反注释掉。

就是把红线第二行前面的#号给去掉就好了。

补充:编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到相应结果的过程。

为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路、方法、和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算机之间交流的过程就是编程。

编程:设计具备逻辑流动作用的一种"可控体系"【注:编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程】

例子:①比如编写一段代码程序②编写一个控制设备体系

如何对 Lua 脚本进行去混淆处理?

【中文标题】如何对 Lua 脚本进行去混淆处理?【英文标题】:How do I de-obfuscate a Lua script? 【发布时间】:2022-01-18 07:40:05 【问题描述】:

我有一些我怀疑被混淆的 Lua 代码。我该如何去混淆它?

我认为代码被混淆了,因为它看起来与普通 Lua 代码非常不同,但我知道它是有效的 Lua 代码,因为 Lua 解释器仍会编译和运行代码。

我对去混淆代码有合法利益,并且不打算违背作者意愿分发它或修改它以规避任何 DRM 机制。

【问题讨论】:

【参考方案1】:

对Lua源代码进行混淆一般有两种方式:

    直接混淆代码,主要是通过重命名变量、引入抽象和重组代码以使其更难理解

    对源代码进行编码并将其作为字符串嵌入到 Lua 文件中,该文件仅解码、加载和运行编码后的 real 程序。

实际上,经常使用两者的组合:程序被混淆,然后编码并包装在一个字符串中。最后,加载和运行字符串的代码经常被再次混淆。


使 Lua 代码更难遵循的典型机制包括:

    重命名string.gsubtable.concat等标准函数 将变量重命名为废话 用括号表示法替换表格索引的点和冒号表示法 对文字字符串使用十六进制表示法(通常与 3 结合使用。)

一般来说,手动去混淆这些代码的步骤通常非常相似:重新格式化代码更容易遵循控制流,然后弄清楚每个变量代表什么并重命名它们。为此,通常需要对语言有很好的理解,因为需要了解混淆利用的所有规则,从而使代码更难理解。需要注意的一些此类规则:

    局部变量阴影:两个不同的变量可以在不同的范围内(甚至在同一个范围内)具有相同的名称。 句法糖,例如点符号和冒号符号 函数环境和getfenvsetfenv 元表和所有字符串共享一个元表,__index 设置为string 空格在 Lua 中通常不重要,仅在某些情况下用于分隔语句,也可以使用 ; 来完成。

有关反混淆 Lua 代码的特定 sn-p 的更多详细帮助,您可以在以下其他在线社区中提问:

The Lua subreddit The Lua Scripters Discord Server The Lua Forum

但请记住:Don't ask to ask, just ask

请注意,这些不是官方社区。有关更多选项,请参阅 Lua 官方网站上的 Community 页面。

【讨论】:

以上是关于安卓编程 如何进行代码混淆的主要内容,如果未能解决你的问题,请参考以下文章

安卓应用加固之静态反反汇编技术总结

安卓 代码混淆与打包

御安全浅析安卓开发代码混淆技术

如何混淆lua代码?

Android 编程下的代码混淆

android studio 代码混淆错误