当前位置:首页 » 编程软件 » 反混淆反编译

反混淆反编译

发布时间: 2023-05-24 02:14:32

❶ Android如何代码混淆,防止apk程序被反编译

下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用,先来看看android-sdk-windows\tools\lib\proguard.cfg的内容:view plain 1. -optimizationpasses 5 2. -dontusemixedcaseclassnames 3. - 4. -dontpreverify 5. -verbose 6. -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 7. 8. -keep public class * extends android.app.Activity 9. -keep public class * extends android.app.Application 10. -keep public class * extends android.app.Service 11. -keep public class * extends android.content.BroadcastReceiver 12. -keep public class * extends android.content.ContentProvider 13. -keep public class * extends android.app.backup.BackupAgentHelper 14. -keep public class * extends android.preference.Preference 15. -keep public class com.android.vending.licensing.ILicensingService 16. 17. -keepclasseswithmembernames class * { 18. native <methods>; 19. } 20. 21. -keepclasseswithmembernames class * { 22. public <init>(android.content.Context, android.util.AttributeSet); 23. } 24. 25. -keepclasseswithmembernames class * { 26. public <init>雀缓(android.content.Context, android.util.AttributeSet, int); 27. } 28. 29. -keepclassmembers enum * { 30. public static **[] values(); 31. public static ** valueOf(java.lang.String); 32. } 33. 34. -keep class * implements android.os.Parcelable { 35. public static final android.os.Parcelable$Creator *; 36. } 从脚本中可以看到,混淆中保留了继承自Activity、Service、Application、顷困模BroadcastReceiver、ContentProvider等基本组件以及com.android.vending.licensing.ILicensingService, 并保留了所有的Native变量名及类名,所有类中部分以设定了固定尺旁参数格式的构造函数,枚举等等。) 让proguard.cfg起作用的做法很简单,就是在eclipse自动生成的default.properties文件中加上一句“proguard.config=proguard.cfg”就可以了 完整的default.properties文件应该如下:view plain 1. # This file is automatically generated by Android Tools. 2. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3. # 4. # This file must be checked in Version Control Systems. 5. # 6. # To customize properties used by the Ant build system use, 7. # "build.properties", and override values to adapt the script to your 8. # project structure. 9. 10. # Project target. 11. target=android-9 12. proguardproguard.config=proguard.cfg 大功告成,正常的编译签名后就可以防止代码被反编译了。

❷ 我想反编译 一个APK程序,但是那个APK程序的代码被混淆了,导致APK反编译失败,请问这个问题怎么解决

混淆是不会导致反编译失败的,只是说,代码变得难以读懂,而不会导致反编译失败!
混淆和反编译是两个互不相干的概念。
反编译失败和JDK,APKTOOL等各种工具的版本有密切关系!

专业无源代码的 安卓 APK 反编译、修改,只有你想不到,没有做不到
@@ 724949472
哦也!

❸ 如何反编译一个MOD

第一部分 下载forge源码+建立MOD开发环境。
(1)下载forge源码
注意下载src链接的版本,不要搞错。比如,forge-1.7.10-10.13.2.1230-src.zip(以src.zip结尾)

注意到有很多下载地址,每一行是一个版本,选择适合自己的版本。
右边Downloads列有几个链接,其含义如下:
(a)Changelog——更改日志。
(b)Installer——jar格式的安装包,使用与所有平台(Win/linux/Mac)
(c)installer-win——专属于Windows的安装包。
(d)javadoc——自动生成的java文档。
(e)src—forge源代码。
(f)universal——单纯的jar库,非安装包。
(g)userdev——面向开放者。
(2)下载之后加压缩到某个文件夹
只留下五个东西:gradle和src文件夹,build.gradle,gradlew和gradlew.bat。
其它的东西没有用,可以删除。
打开 Windows命令行,cd定位到刚才的文件。
运行:gradlew.bat setupDecompWorkspace --refresh-dependencies
等待forge反编译完成。


第二部分,BON进行反混淆。
BON全名bearded-octo-nemesis,是由immibis开放的一个MOD反混淆工具。(immibis可是MOD届大名鼎鼎的人,比如redlogic,Liquid XP,Advanced Machines等都是非常好用的模组)。
新建一个BON文件夹。
(1)下载userdev版本的forge。还是刚才上面那个地址,只不过这次下载userdev版本。
把下载到的文件放到BON文件夹。
(2)找到forge反编译之后的文件。
这个文件在C:Users{username}目录下的
.gradlecachesminecraft etminecraftforgeforge1.7.10-{forgeversion}
比如咱们这个例子就是,1.7.10-10.13.2.1230。把这个文件夹复制一份到BON文件夹。
(3)下载BON
下载到一个BON.jar文件,放到上面的文件夹内。
(4)运行。
双击BON.jar之后运行。

Forge userdev.jar:选择(1)下载的文件。
FG cache folder:选择(1)复制出来的文件夹。
然后在输入文件位置选择你想反混淆的代码,再选择要保持的输出。
操作(operation)注意选择:反混淆模组。
点击Go按钮,等待完成。
反混淆之后的代码一般以deobf结尾。
比如StevesFactoryManagerA93.jar,反混淆之后就是StevesFactoryManagerA93.deobf.jar。
这时候就可以用jd-gui无障碍的查看代码了。


第三步 反编译成源代码
如果觉得用jd-gui查看不方便的话,可以考虑用fernflower进行反编译。
fernflower是MCP官方用来发编译minecraft代码的神器,虽然没有jd-gui操作简便,但是它反编译代码的质量非常高。又是官方搭配minecraft使用,是用来反编译代码的不二之选。
如何获得fernflower?
fernflower的官方代码池,然而需要编译不方便使用。
这里提供另外两个方法:
(1)伴随MCP发布的版本。
去mcp官方网址下载,目前适用于1.7.10的是9.08版。
解压缩之后,runtime/bin目录下面,复制出来。
(2)forge提供的版本
去上面提到的.gradle/caches/minecraft目录下,有一个fernflower-fixed.jar文件。
目前尚不知道,mcp和forge版本的有啥差别。
复制到一个位置之后,打开命令行
java -jar fernflower.jar [要反编译的包] [保存位置]
反编译之后的代码,就可以用记事本直接查看。

❹ 如何防止class被反编译,の颐堑闹恫

可以使用代码混淆是对Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义)。但是混淆后的代码很难被反编译,即反编译后得出的代码是非常难懂、晦涩的,因此反编译人员很难得出程序的真正语义。
从理论上来说,如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在研制反混淆的工具。但是从实际情况来看,由于混淆技术的多元化发展,混淆理论的成熟,经过混淆的Java代码还是能够很好地防止反编译。
app开发完后,最好做一下扫描和加固,应用扫描可以通过静态代码分析、动态数据跟踪,定位出风险代码,同时监控敏感数据的异常行为。
加固可以在一定程度上保护自己核心代码算法,提高破解/盗版/二次打包的难度,缓解代码注入/动态调试/内存注入攻击等。
目前市面上有很多第三方加固的平台, 如果新应用发布前需要扫描或者加固的话,可以先试试免费的,例如腾讯御安全,建议自己先去扫描测试下。

❺ 混淆的class文件怎么进行反编译

一般情况下Java应用的开发者为了保护代码不被别人抄袭,在生成class文件的时候都java文件进行了混淆,这种class文件用反编译工具得到的结果很难看懂,并且不能进行编译。
从研究的角度,浅析如何读懂这种反编译过来的文件。
例子一:赋值
反编译过来的代码如下:
Node node;
Node node1 = _$3.getChildNodes().item(0);
node1;
node1;
JVM INSTR swap ;
node;
getChildNodes();
0;
item();
getChildNodes();
0;
item();
getNodeValue();
String s;
s;
原始语句:
Node node;
Node node1 = currDocument.getChildNodes().item(0);
node = node1;
String s = node.getChildNodes().item(0).getChildNodes().item(0).getNodeValue();
注解:
JVM INSTR swap ; //赋值语句
练习:
String s1;
String s8 = node.getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
s8;
s8;
JVM INSTR swap ;
s1;
10;
Integer.parseInt();
int i;
i;

例子二:不带参数创建对象
反编译过来的代码如下:
JVM INSTR new #244 ;
JVM INSTR p ;
JVM INSTR swap ;
CrossTable();
CrossTable crosstable;
crosstable;
原始语句:
CrossTable crosstable = new CrossTable();
注解:
练习:
JVM INSTR new #246 ;
JVM INSTR p ;
JVM INSTR swap ;
Database();
Object obj;
obj;
例子三:带参数创建对象
反编译过来的代码如下:
JVM INSTR new #262 ;
JVM INSTR p ;
JVM INSTR swap ;
String.valueOf(s2);
StringBuffer();
s.substring(j, i);
append();
s6;
append();
toString();
s2;

原始语句:
s2 = (new StringBuffer(String.valueOf(s2))).append(s.substring(j, i)).append(s6).toString();
注解:
此语句实际上是:s2 += s.substring(j, i) + s6;
练习:
例子四:for循环
反编译过来的代码如下:
int k = 0;
goto _L4
_L8:
...
k++;
_L4:
if(k < as.length) goto _L8; else goto _L7
原始语句:
for(int k=0;k < as.length;k++)
{
...
}
注解:
例子五:while循环
反编译过来的代码如下:
String s1 = "";
goto _L1
_L3:
JVM INSTR new #262 ;
JVM INSTR p ;
JVM INSTR swap ;
String.valueOf(s1);
StringBuffer();
_$2(resultset, s, l);
append();
toString();
s1;
_L1:
if(resultset.next()) goto _L3; else goto _L2
原始语句:
String s1 = "";
while(resultset.next())
{
s1 = s1 + resultSetToString(resultset, s, l);
}

❻ 对已经混淆的Android代码,如何进行反编译

android代码混淆是指安卓开发者或者组织为了防止自己的产品敏感信息或者技术机密被人破解,而在生成apk文件的时候,通过设置一些替换规则,使java文件中指定的代码类的名字或者成员名字变为没有任何意义的字母,然后编译成class文件的过程。

已经混淆过的android代码反编译出来的都是一些没有任何意义的名字,是很难读懂的。没有好的办法。

❼ 怎样对ssh框架结构的编译之后的.class进行混淆处理,防止反编译。

使用ProGuard这款反编译工具,具体操作网上有很多相关的操作步骤介绍,例子见下载proguard的example

❽ net反编译后发现代码混淆了,求助

混淆的很少有反混淆的,混淆就是把肆帆原来自己设置的有含义或无含义的属性方法修改成随机的野如,他又不明白人的意思,反混淆跟混淆差不多,就是反混淆产生的字段简单点。你查找颂雹启替换下不就行了

❾ APK急需反编译,但是APK已经被混淆了,怎么破

a. 获取 .dex 后缀文件 : 修改 apk 文件后缀, 获取 class.dex 文件;

b. 执行反编译 : 将 classes.dex 拷贝到 dex2jar 目录下, 执行 ./d2j-dex2jar.sh classes.dex 命令;
-- 执行结果 :
octopus@octopus:~/decompiler/linux/dex2jar-0.0.9.15$ ./d2j-dex2jar.sh classes.dex
dex2jar classes.dex -> classes-dex2jar.jar

c. jd-gui 中查看源码
: 将 classes-dex2jar.jar 文件拖入 jd-gui 中, 查看源码;

❿ Android APP的破解技术有哪些如何防止反编译

AndroidAPP破解主要依靠利用现有的各种工具,如下:1)APKtool2)dex2jar3)jd-gui4)签名工具防止反编译,介绍一种有效对抗native层代码分析的方法——代码混淆技术。代码混淆的学术定义如下:代码混淆(codeobfuscation)是指将计算机程序的代码,转换成一种功能上等价,所谓功能上的等价是指其在变换前后功能相同或相近。其解释如下:程序P经过混淆变换为P‘,若P没有结束或错误结束,那么P’也不能结束或错误结束;而且P‘程序的结果应与程序P具有相同的输出。否则P’不是P的有效的混淆。目前对于混淆的分类,普遍是以Collberg的理论为基础,分为布局混淆(layoutobfuscation)、数据混淆(dataobfuscation)、控制混淆(controlobfuscation)和预防混淆(preventiveobfuscation)这四种类型。腾讯御安全保护方案提供了以上所述四种混淆分类的多维度的保护,布局混淆方面,御安全提供了针对native代码层中的函数名进行了混淆删除调试信息等功能;数据混淆方面,御安全提供了针对常量字符串加密及全局变量的混淆的功能;控制混淆方面,御安全针对代码流程上,提供了扁平化,插入bogus分支以及代码等价变换等功能;预防混淆方面,御安全在混淆过程中加入了针对主流反编译器的预防混淆的代码,能够有效地抵抗其分析。御安全还对应用开发者提供不同等级的保护力度及多种混淆方式的功能的选择,用户可以根据自己的需求定制不同的混淆功能保护。同时,御安全保护方案除了提供代码混淆保护方面的技术,还提供代码虚拟化技术及反逆向、反调试等其他安全保护方案,综合使用多种保护方案可以有效地提高代码安全。

热点内容
高考解压操 发布:2025-07-20 08:27:55 浏览:743
币价压缩 发布:2025-07-20 08:27:14 浏览:413
jqueryftp上传 发布:2025-07-20 08:27:11 浏览:495
mysqllinux开发 发布:2025-07-20 08:00:46 浏览:77
c语言链表讲解 发布:2025-07-20 07:55:54 浏览:901
IBM服务器配置IMM口IP 发布:2025-07-20 07:43:52 浏览:724
html文件解决缓存 发布:2025-07-20 07:27:30 浏览:692
梦幻诛仙抓宝宝免费脚本 发布:2025-07-20 07:26:52 浏览:254
lol刷精粹脚本 发布:2025-07-20 07:24:35 浏览:176
服务器虚拟化怎么存储 发布:2025-07-20 07:03:24 浏览:876