当前位置:首页 » 编程软件 » app逆向反编译如何解加密

app逆向反编译如何解加密

发布时间: 2023-03-19 19:01:01

① APK反编译不了,resources.arsc被加密了怎么破

resources是APK中的资源文件,例如图片布局等等,android 反编译的方法,需要用到几个工具,网络一下都能找到下载地址
dex2jar JD-GUI apktool

反编译步骤:
1.反编译Apk得到java源代码
首先要下载两个工具:dex2jar和JD-GUI
前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。

具体步骤:
1.首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
2.解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录
运行 dex2jar.bat classes.dex
生成 classes.dex.dex2jar.jar

2.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
还是下载工具,这次用到的是apktool

具体步骤:
将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar
1.解压缩下载的两个文件包,apktool-install-windows-r04-brut1.tar解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解压后的一个.jar 文件到解压后的\apktool-install-windows-r04-brut1文件夹里)
2.特别注意:你要反编译的文件一定要放在C盘的根目录里

② 如何在反编译的apk中找到加密算法

所谓APK指的是Android操作系统的应用程序安装文件。所谓Crack,简单地理解为“破解”。我具体指的是反编译APK文件进行汇编级的代码分析,并修改或插入自己的代码,重新签名打包为APK文件,以达到改变程序原有行为的目的。

由以上的说明可知,我们要Crack一个APK文件,主要流程有三步:反编译、代码分析、重新打包签名。

基本准备

我们需要一些基本的工具进行一些主要的工作。如果你是一个会做Android APK汉化的朋友,那么你应该对这些工具非常熟悉:

第一个工具是android-apktool,A tool for reengineering Android apk files 。这个工具是我们完成APK Crack的核心,利用它实现APK文件的反编译和重新打包。它是Google Code上一个非常着名的开源项目,大家可以在Google Code的网页上获取它和它的Wiki、源码及其他相关信息。

第二个工具是Auto-sign。这个工具实现的是APK打包后的签名工作,属于一个小工具。

除了这些基本工具外,为了更好的分析代码,你可能还需要用到一些其他工具,例如:dex2jar和jd-gui等,这里不做详述。

反编译

如果你是一个经常汉化APK程序的朋友,那么反编译这一步你肯定不会陌生。不过,既然这篇文章侧重于基本流程讲解,那么这一步想来是不能省掉的。所以,觉得罗嗦的朋友,请跳过。首先我们需要有一个待反编译的APK。这里我自己写了一个HelloWorld的APK,代码如下:
package com.zh_weir.helloworld;import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}
复制代码
我们通过android-apktool对这个APK进行反编译。对于android-apktool的使用,我就不做太多翻译的工作,直接给出说明文档吧。简单一句话,就是命令行执行。
Apktool v1.3.2 - a tool for reengineering Android apk files
Copyright 2010 Ryszard Wi?niewski <[email protected]>
Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

Usage: apktool [-v|--verbose] COMMAND [...]

COMMANDs are:
d[ecode] [OPTS] <file.apk> [<dir>]
Decode <file.apk> to <dir>.
OPTS:
-s, --no-src
Do not decode sources.

-r, --no-res
Do not decode resources.

-d, --debug
Decode in debug mode. Check project page for more info.
-f, --force
Force delete destination directory.
-t <tag>, --frame-tag <tag>
Try to use framework files tagged by <tag>.

--keep-broken-res
Use if there was an error and some resources were dropped, e.g.:

"Invalid config flags detected. Dropping resources", but you

want to decode them anyway, even with errors. You will have to

fix them manually before building.

b[uild] [OPTS] [<app_path>] [<out_file>]

Build an apk from already decoded application located in <app_path>.

It will automatically detect, whether files was changed and perform

needed steps only.

If you omit <app_path> then current directory will be used.

If you omit <out_file> then <app_path>/dist/<name_of_original.apk>

will be used.

OPTS:

-f, --force-all

Skip changes detection and build all files.

-d, --debug

Build in debug mode. Check project page for more info.

if|install-framework <framework.apk>

Install framework file to your system.

For additional info, see: http://code.google.com/p/android-apktool/
复制代码
通过apktool d HelloWorld.apk的命令,我们就完成了一个简单的APK的反编译工作。得到了一个叫做“HelloWorld”的文件夹。你可以看见文件夹下有Manifest文件,有反编译出的res资源文件。这些东西都是平时汉化特别关心的,而不是我们要注意的重点。我们需要注意的是一个叫做“smali”的文件夹。

仔细观察,你会发现这个文件夹下的文件组织结构和我们的Android工程中java源码的组织结构几乎一致。只不过Java文件被.smali的文件取而代之了。我们用文本编辑器打开这些.smali文件,你会发现它们都是可识别的、并且非常“整齐”的文本文件。

③ 如何反编译经过XenoCode加密后的软件

解密XenoCode加密的字符串
很多 .net 程序发行时会使用混淆器进行保护,其中 XenoCode 2005 应该说是使用比较多的一个。
XenoCode会使用一个插入的类对程序集中的字符串进行保护。
本文将结合 Reflector 和反射技术解密程序集中被加密的字符串。

首先,我们使用 Reflector 对原程序进行 Disassembler,找到我们要解密的字符串代码。

如:
this.x80bb7e5ddf294933.SerialNumber = string.Intern(x1110bdd110cdcea4._d574bb1a8f3e9cbc("\udbac\ue2b7\ue9bb\uf0af\uf7b8\ufeb3\u05a8\u0c61", 0x555ddb55));

找到要解密的字符串以后,开始编写反射调用代码。

class Program
{
public static void Main()
{
// 载入程序集,test.exe 为被混淆的程序集文件名。
Assembly asm = Assembly.LoadFrom(@"test.exe");

// 获取XenoCode插入的解密类型(包含其namespace),对应上面字符串前面的类名,每次混淆结果可能都不同。
Type type = asm.GetType("x293b01486f981425.x1110bdd110cdcea4");

// 字符串参数和解密参数
object[] parameters = {"\udbac\ue2b7\ue9bb\uf0af\uf7b8\ufeb3\u05a8\u0c61", 0x555ddb55};
Type[] paramTypes = new Type[parameters.Length];
for (int i = 0; i < parameters.Length; i++)
paramTypes = parameters.GetType();

// 调用解密方法
BindingFlags flags = BindingFlags.Public | BindingFlags.Static;
MethodInfo method = type.GetMethod("_d574bb1a8f3e9cbc", flags, null, paramTypes, null);
object result = method.Invoke(null, parameters);

// 显示解密结果
Console.WriteLine(result);

Console.WriteLine("Press Enter key to exit...");
Console.ReadLine();
}
}

④ 防止自己的APP被反编译或破解,通常有哪些方法

混淆代码:
Android APP的源码进行混淆后混淆器将代码中的所有变量、函数、类的名称加密为简短的英文字母代号,在APP被破解后增加破解者对代码的阅读难度。 但是混淆的功效只能运作在APP已经被破解后,而且只是增加破解者的难度时间,对其防止破解的作用意义不是很大。
防二次打包:
二次打包是指将APK拆包后重新打包,二次打包必将丢失原有的签名。大多数的Android开发者都是将签名信息作为认证标准,所以只要原有的签名信息改变,APK就无法正常运行。但是如果将这个认证信息功能屏蔽掉,防二次打包就失效了!
我们先通过APK安全保护平台,对这款Android APK进行安全保护。
步骤如下:
登录/注册→上传APK→等待系统加密→完成后下载APK→给APK签名→完成!

注意:
在APK源代码安全保护平台,个人信息要填写完整,否则无法正常使用。APK加密完成后,系统会发出邮件通知加密完成。最后下载APK包再次完成签名,就可以正常使用了!

⑤ 作者开发的app进入需要密码,怎么破解

密码存储在本地,一般存储在文件,注册表,数据库,也有直接写到软件里。
明文存储,用调试工具跟踪执行到密码判断的代码,一般是一个比较语句:如果(输入)=(密码),在计算机内存中就能看到密码。密码可逆加密存储,一种情况程序中把加密密码解密后,还是明文比较,我们同样能在内存中看到密码。一种情况是非明文比较,一般需要阅读汇编代码或伪代码或脚本。弄明白加密算法,自己写解密算法。把存储的加密密码解密。密码加密不可逆,一般很难破解到密码。

⑥ 爱加密app加密原理是什么apk反逆向保护如何做到的

爱加密app加密原理是对apk进行加壳,隐藏源代码,已达到防止反编译的目的,大牛测试过,确实很强大。对apk反逆向保护很有效。盗版现在确实太严重了,不加密不行呀,你可以去体验下爱加密,只需注册,完善信息就可以免费app加密.

⑦ 如何给自己的app加密,怎样防止反编译资源文件和防二次打包要怎么做

app加密,防反编译的办法有很多。代码混淆(proguard)也可以使用伪加密(apk本身是zip,对zip末尾加字节的方式防止apktool逆向,但是该方法在电脑上有些手机助手无法识别apk文件,手机上可以识别)。还有就是可以交给第三方的加密平台,不需要什么技术要求。同时也可以在XML文件查看有没有添加东西。有家叫做爱加密的免费平台还不错。

⑧ 软件加密如何解除

vivo手机取消软件加密的方法:

OriginOS/iQOOUI/FuntouchOS3.0以上系统机型:
(1)i管家--实用工具--隐私保护--应用加密--输入隐私密码--应用加密--关闭软件后的开关。


(誉兄2)进入设置--指纹、面部与密码/指纹与密码/面部与密码--隐私与应用加密--输入隐私密码--应用加密--关闭软件后面的开关。
FuntouchOS3.0以下系统机型:进入“i管家”--软件管理--软件锁--输入加密密码--点击“陵虚禅已加锁”,尺尘即可取消。

更多使用疑惑可点击此链接咨询在线客服反馈

⑨ Android APP加密方法都有哪些

安卓APP加密的方法主要分成三类:源码加密、数据安全和应用保护,而每一类又分成好几个小项。
源码加密包括:Dex文件保护、防二次打包、so文件保护、资源文件保护。以Dex文件保护为例,Dex文件保护又包括:高级混淆、DEX文件加壳、DEX文件加花、动态类加载、内存防mp。
高级混淆:代码混淆,可以降低代码可读性、缩小包大小。
DEX文件加壳:相当于把源码打包至其他文件夹下,逆向工具对加密后的dex文件解析,只能看到壳文件,可以防止解包后看到真正的源码。爱加密利用挖空技术实现函数级加密,安全强度高,启动效率快。
dex加花:由于大部分逆向工具都是线性读取字节码并解析,当遇到无效字节码时就会引起反编译工具字节码解析失败。爱加密插入无效字节码到dex文件之中,同时保证该字节码永远不会被执行,否则程序运行也会崩溃。这样,就能起到反编译的作用了。
dex动态类加载:爱加密加固后的dex文件源码可以动态分离,在运行时,将源码分段加载到内存当中。
内存防mp:程序运行时会释放代码,内存防mp可以防止程序运行时被劫持。
应用安全包括:log日志输入屏蔽、应用清场。清场技术依赖于云端黑名单、白名单DB,应用每次启动后便自动进行本地的黑名单、白名单DB数据更新,若检测到有异常情况,则可对用户进行提示。
数据安全包括:页面防劫持、本地数据保护、截屏保护、内存数据防查询、协议加密、虚拟键盘。

热点内容
支教老师访问 发布:2024-05-09 07:45:21 浏览:870
模特拍摄脚本 发布:2024-05-09 07:45:13 浏览:237
c语言判断互质 发布:2024-05-09 07:44:38 浏览:754
余额宝如何加密 发布:2024-05-09 07:28:54 浏览:51
王洋java 发布:2024-05-09 07:28:11 浏览:2
小雄压缩机 发布:2024-05-09 07:28:04 浏览:359
电脑做存储服务器 发布:2024-05-09 07:23:40 浏览:187
安卓手机怎么不用开机就刷机 发布:2024-05-09 07:23:09 浏览:223
李逵捕鱼脚本 发布:2024-05-09 07:18:55 浏览:7
如何搭建邮局服务器 发布:2024-05-09 07:15:08 浏览:130