问题标签 [deobfuscation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 请推荐关于逆向工程混淆代码的好的博客、文章或文档
正如我在之前的一个主题中解释的那样,我的硬盘丢失了几十个应用程序(都是去年的工作),现在我必须对所有这些应用程序进行逆向工程。一些老的很容易被 RI-ed,因为他们的代码没有被混淆。但是,所有较新的应用程序都有混淆代码,因为当您生成准备发布的版本时,Eclipse 会自动混淆 Android 应用程序。
由于所有类、方法和类成员都被混淆了(它们的名称已更改、参数等),我在重新生成代码时遇到了很多问题。您能否分享任何关于反转混淆代码的技巧和窍门的博客、文章或文档?!
如果有人愿意,他可以写下自己的建议或技巧。
提前致谢
PS。这是原始文章:“试图对我的应用程序进行逆向工程,但得到了一些看起来很奇怪的文件树”
c# - 混淆后通过反射在 c# 中找到类/属性的最佳方法是什么?
这是将用于反射的代码示例:
软件被混淆后,代码显然会停止工作。
我试图通过搜索一个类的属性来找到一种解决方法,这些属性在混淆后不会改变。我已经用 type.GUID 尝试过,但是当我运行调试版本时,我得到一个 GUID,并且在混淆完成后的版本中,guid 发生了变化。
我正在使用 Eazfuscator.NET 进行混淆。
如果可能,我想避免使用属性来标记类/方法。
关于什么会起作用的任何想法?
javascript - 如何在 HTML 中“解码”一些混淆的 JavaScript?
这是一个例子:
显然,这段代码是故意编写的,以混淆其他人。我怎样才能理解它并用简单的代码重写它?
这项工作有什么工具吗?这在 HTML 中很常见。
c# - 可以反编译混淆的 .Net C# 应用程序吗?
我用 .net C# 编写了一个程序来加密一些信息。
为了完成任务,我使用了一个包含机密信息的数组。我需要知道是否有可能破解 exe。我的意思是任何人都可以从 exe 文件中获取数组。数组值未显示在应用程序中。我使用随 Visual Studio.NET 一起提供的 Dotfuscator 社区版本。我只想知道是否可以提取 exe 以访问其中使用的成员变量.. ??
.net - 保护 .Net 应用程序免受反混淆器的侵害?
我知道我们可以通过使用混淆器来保护 .Net 应用程序免于反编译。
但我在某处读到有一些反混淆器(如 de4dot )可以反混淆 .Net 混淆应用程序。他们可以中和一些混淆器的影响,比如 Eazfuscator.NET 。因此,他们甚至可以反编译经过混淆的 .Net 应用程序。
那正确吗?如果是,如何保护应用程序免受反混淆器的攻击?
c# - 他们是否混淆了 C# 代码?
这些代码行是否被混淆(C#)?
如果是,是否有软件可以对它们进行去混淆?
完整方法(代码由ILSpy反编译器反编译):
p/s:
虽然有一些评论提到它不是用 C# 编写的,但我在某个地方发现它非常接近 C#,例如:
javascript - 我需要一个 Javascript 文字语法转换器/反混淆工具
我在 Google 上搜索了转换器,但没有找到任何东西。是否有任何可用的工具,或者我必须制作一个来解码我的混淆 JavaScript 代码?
我想有这样的工具,但我没有用正确的关键字搜索谷歌。代码有 3 页长,这就是我需要工具的原因。
这是代码的示例:
谢谢
perl - 如何正确反混淆 Perl 脚本?
我正在尝试对以下 Perl 代码(源代码)进行反混淆:
运行时,它会打印出来Just another genome hacker.
运行代码槽Deparse
和perltidy
( perl -MO=Deparse jagh.pl | perltidy
) 后,代码如下所示:
这是我自己能够破译的内容。
删除$d
(双螺旋)中的所有空格。
使用 as 键A
、和和作为值T
、和进行散列。我通常用 Python 编码,所以这会转化为Python 中的字典。C
G
0
1
2
3
{'A': 0, 'B': 1, 'C': 2, 'D': 3}
将散列的键与多维数组仿真$;
的下标分隔符连接起来。文档说默认是“\034”,与 awk 中的 SUBSEP 相同,但是当我这样做时:
我得到了价值28
?另外,我不清楚这如何模拟多维数组。现在是$p
像[['A'], ['T'], ['C'], ['G']]
Python 中的东西吗?
只要$d
匹配([$p]{4})
,就执行 while 块中的代码。但由于我不完全理解结构$p
是什么,我也很难理解这里发生了什么。
如果$j
模数 96 大于或等于 16 ,则继续。$j
每次通过 while 循环 (?) 递增。
For$d
在 from 范围内0
提取3
一些子字符串,但在这一点上我完全迷失了。最后几行连接所有内容并评估结果。
java - 用于代码操作的 Eclipse 抽象语法树解析器的替代方案
背景
我正在编写一个程序,它将在 java 源代码目录中对成员和函数进行一些批量重命名,以根据传入程序的查找表 .csv 文件对代码进行去混淆处理。
这是为了我的源代码是针对一个混淆的 jar 编写的。我有一个通过自定义版本RetroGaurd运行的 jar 的去混淆版本,我想解析传递给 RetroGaurd 的映射文件,以去混淆我的源代码对 jar 的函数调用。如果我只是编译我的代码并在反编译时也通过 RetroGaurd 运行它,我会丢失所有漂亮的注释和格式(除非我错过了 RetroGaurd 上的一个选项)。
问题
我发现了Eclipse 内置的抽象语法树解析器,它看起来非常适合我的使用,但是我不打算将我的程序编写为 Eclipse 的插件,这将是一个可以在任何机器上运行的独立 jar .
我主要担心的是,当我编写代码时,我对 Eclipse 使用的内部 jar 有很多依赖。我知道,如果我符合库 jar 的EPL,我将不会有分发它的问题,但我担心这个项目在我编写它时会变得越来越大,因为需要越来越多的来自 Eclipse 的 SDK 的 jar。
是否有任何其他项目可以让我能够解析 Java 源代码以像 AST 一样可靠地查找和替换,或者有没有办法使用 RetroGaurd(或类似的程序)来运行相同的去混淆,但保持我的评论和功能相同,而无需在之后通过反编译器运行去混淆的程序?