Apk反编译及签名工具使用

合集下载

反编译去签名大全

反编译去签名大全

反编译去签名大全
反编译去签名是指将已经过签名的应用程序进行反编译,并移除其中的签名信息,从而达到绕过验证的目的。

以下是一些常见的反编译去签名的工具和方法:
1. 工具类:
- ApkTool:一个常用的反编译工具,可以将已签名的应用反编译成Smali代码,并通过修改Smali代码达到去除签名的目的。

- Jadx:一款用于反编译Android应用的工具,可以将已签名的APK文件反编译成Java代码,并通过修改Java代码去掉签名相关的代码。

- JADX-GUI:Jadx的图形化界面,可以方便地查看反编译结果并进行相关操作。

2. 方法:
- 反编译:使用上述工具对已签名的应用进行反编译,获取其中的源代码和资源文件。

- 修改:对反编译得到的源代码进行修改,删除与签名相关的代码片段,如验证签名、证书等相关代码。

- 重新编译:将修改后的源代码重新编译成APK文件。

- 重新签名:使用自己的证书对重新编译得到的APK文件进行签名,生成一个新的已签名APK文件。

需要注意的是,反编译去签名是一种绕过验证的行为,是违反软件开发者的授权行为。

在未获得合法授权的情况下进行此类
操作可能涉及版权侵权和违反法律法规等问题,请遵守相关规定并遵循合法途径。

如何反编译android应用以及重编译,签名和对齐优化

如何反编译android应用以及重编译,签名和对齐优化

如何反编译android应用以及重编译,签名和对齐优化闲话少说,直接进入正题。

首先,了解一下我们为什么需要反编译apk大部分情况下,是由于想本地化一款优秀的应用,才需要做这事儿;又或者进行少量的smali修改以达到想要的效果(如添加归属地,使3G版Nexus 7支持Wi-Fi热点)。

下面我们先准备运行环境和工具建立工作目录,如.\workspace\apktoolbox (下面同样以此路径为例)必不可少的JDK:Oracle Java 下载,安装完成后把<jdk-inst-path>\bin添加到$PATH环境变量中反编译和重编译工具apktool:Google Code下载,按平台下载(一个apktool-install-<platform>-<ver>-tar.bz2,一个apktool<ver>.tar.bz2,下载完成后解压至.\workspace\apktoolbox\bin密钥文件,共4组。

test/shared/media/platform,从android source中获取,分别对应不同共享用户ID时签名所需(查看应用AndroidManifest.xml第二行android:sharedUserId项),放到.\workspace\apktoolbox\bin下test - 无android:sharedUserId项shared - android:sharedUserId=android.uid.sharedmedia - android:sharedUserId=android.uid.mediaplatform - android:sharedUserId=android.uid.system特例:部分系统应用就算没有android:sharedUserId也是需要用platform组key进行签名,如SystemUI.apk签名工具signapk.jar,放到.\workspace\apktoolbox\bin下对齐优化工具zipalign(从android sdk中获取,在tools目录下),放到.\workspace\apktoolbox\bin下准备工作完成接下来我们就要开始工作了(以本地化工作为例)把待反编译的apk放到.\workspace\apktoolbox\apks下在命令行模式下进入.\workspace\apktoolbox\bin目录,输入以下命令进行解包(反编译)apktool d ..\apks\<apkfile>.apk ..\apks\<apkfile>.\workspace\apktoolbox\apks\<apkfile>\res下的values目录(英文原版)和values-r<locale>目录(本地化)就是我们需要的对象。

apk编辑

apk编辑

一、相关工具(针对windows系统)JDK:/technetwork/java/javase/downloads/index.html 下载windows安装版的程序,安装后不用管它了。

Apktool:/p/android-apktool/下载apktool-install-windows-2.2_r01-3.tar.bz2和apktool1.3.2.tar.bz2,用winrar 解压后把解压出来的文件都放在一个目录下,比如:E:/apktool/ 下(为简单起见,下文都用这个路径为apktool工作目录)。

Auto-Sign签名工具:N/A二、反编译说要把apk“装冰箱(反编译)”分三步走:第一步:先把apk程序(这里用ThinkingSpacePro.apk)程序放到 E:/apktool/ 下。

第二步:启动windows的cmd.exe,用命令行cd到 E:/apktool 目录下。

第三步:键入命令apktool d ThinkingSpacePro.apk这个命令的格式是:apktool d xxx.apk output其中 d 参数用来指示工具要进行反编译操作,xxx.apk是要反编译的程序,output 源码输出的路径。

如果最后不指定输出的路径,默认是放在同目录下的xxx 文件夹下(即apk程序名称去掉.apk后的名称)。

如果你的apk文件名称中有空格,那键入命令时用双引号引起来,不过为方便起见,反编译之前把apk 文件名中的空格都去掉先。

运行反编译命令后会在同级目录下得到一个 ThinkingSpacePro 文件夹,源文件都在里面了。

三、汉化汉化这个比较简单,在反编译apk程序得到源码后,一般程序的文档都放在res目录下,都是些xml文档,用记事本之类的打开查看一下,一般都会比较容易看出来哪些是可以汉化的文本。

这个就不去弄它了。

可能不同程序还有不一样的,反正英语差点,汉化这种事我也不去深究了。

AndroidAPK反编译apktool使用教程

AndroidAPK反编译apktool使用教程

AndroidAPK反编译apktool使⽤教程2017年棋牌游戏突然就⽕了,正所谓春江⽔暖鸭先知本猿处在软件⾏业中就能清晰的感受到市场的变化,最近⽼家那边也是玩的风⽣⽔起,于是最近闲暇时光想到反编译下这些棋牌软件,看看代码实现的思路(注:反编译不是让各位开发者去对⼀个应⽤破解搞重装什么的,主要⽬的是为了促进开发者学习,借鉴好的代码,提升⾃我开发⽔平。

)⼯具介绍:apktool作⽤:主要查看res⽂件下xml⽂件、AndroidManifest.xml和图⽚。

(注意:如果直接解压.apk⽂件,xml⽂件打开全部是乱码)dex2jar作⽤:将apk反编译成Java源码(classes.dex转化成jar⽂件)jd-gui作⽤:⽤来查看APK中classes.dex转化成出的jar⽂件,即源码⽂件2017年12⽉1⽇新版本apktool⽤法:1.下载两个⽂件apktool.bat和apktool.jar(这个如果你下载的⽂件有版本号,⽐如apktool_2.3.0.jar,就要改名字为apktool.jar),这⾥我已经打包好了传到了我的CSDN(),直接下载就OK了;2.然后把上⾯两个⽂件解压放到C:\Windows下⾯,放到这⾥是可以全局进⾏使⽤(我是windows系统,其他系统按照⾃⼰的来)如下图:3.使⽤⽅法把要解压的apk⽂件放在⾃⼰任意⼀个盘的⽬录下,在apk的⽬录下,按住shift+⿏标右键打开cmd⿊窗⼝如下图:接下来输⼊官⽅给的命令//当输⼊完这两个命令后apktool d test.apkapktool b test//出现如下图⼀样的说明就反编译成功了,在他的同级⽬录下就多出了⼀个⽂件夹,⾥⾯就是反编译出来的源码,具体有啥我就不细说了哈,⾃⼰慢慢研究吧!4.Apk反编译得到Java源代码下载上述⼯具中的dex2jar() 和 jd-gui() ,解压将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex⽂件(它就是java⽂件编译再通过dx⼯具打包⽽成的),将获取到的classes.dex放到之前解压出来的⼯具dex2jar-2.0⽂件夹内,在命令⾏下定位到d2j-dex2jar.bat所在⽬录(现在这个⽬录增加了许多命令,⼀定要看清楚哦),输⼊d2j-dex2jar.bat classes.dex效果如下:说明就成功了会看到同级⽬录下会⽣成⼀个classes_dex2jar.jar的⽂件,然后打开⼯具jd-gui⽂件夹⾥的jd-gui.exe,之后⽤该⼯具打开之前⽣成的classes_dex2jar.jar⽂件,便可以看到源码了,效果如下:通过反编译,你可以获知该应⽤⽤到了什么第3⽅的库⽂件,它的代码是如何编写的等等。

APK反编译过程及用到的工具

APK反编译过程及用到的工具

APK反编译过程及用到的工具(转)2010-11-19 11:21:19| 分类:android技术| 标签:|字号大中小订阅一、用.rar打开apk文档,得到文档结构图如下所示二、将classes.dex文件解压出来,然后使用工具反编译成.jar文件,再进一步反编译出java文件1.在cmd下进入dex2jar.bat所在路径,然后输入“dex2jar.bat XXX”,XXX指的是你要反编译的apk 中的classes.dex文件所在路径及名称,比如:我的dex2jar.bat在D:\Android\apk_decode\dex2jar-0.0.7-SNAPSHOT路径下, classes.dex在D:\Android下,所以:你进入dex2jar.bat路径下后,输入dex2jar.bat D:\Android\classes.dex,这样会生成一个jar文件。

2.用rar解压出jar文件中的class文件,然后用jad或DJ Java Decompiler反编译工具将.class文件反编译成.java文件3.不解压出jar中的class文件,直接用JD GUI工具打开jar文件4.步骤2和3选择其中一个即可,建议用步骤2,步骤3可能出现乱码三、上面操作只能得到class文件,下面利用Google提供的apktool得到xml文件1. 下载apktool,可以去Google的官方下载,地址:/p/android-apktool/得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。

解压apktool.jar到C:\Windows ,解压apktool-install-windows.zip到任意文件夹(例如E盘根目录)。

2. Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入apktool看看。

如何使用apk签名命令给Android应用签名

如何使用apk签名命令给Android应用签名

如何使用apk签名命令给Android应用签名在Android开发过程中,应用的签名是非常重要的一个环节。

签名可以确保应用的身份和完整性,使得用户能够信任应用并安心使用。

在发布应用之前,我们必须为应用签名,否则应用将无法被正常安装和运行。

本篇文章将会介绍如何使用apk签名命令来给Android 应用签名。

1. 准备工作在开始签名应用之前,我们需要进行一些准备工作。

首先,我们需要获取Android SDK,并确保在电脑上正确安装并配置好了Java Development Kit(JDK)。

我们还需要生成一个Keystore文件,这个文件是用来保护你的应用的私钥,确保别人不能对你的应用进行篡改。

可以通过以下步骤生成Keystore文件:a. 打开命令行窗口或终端。

b. 进入到Java JDK的bin文件夹下,输入以下命令:keytool -genkey -v -keystore mykeystore.keystore -alias mykeyalias -keyalg RSA -keysize 2048 -validity 10000c. 按照提示输入信息,包括密码、姓名、组织名称和国家/地区代码等。

2. 执行签名命令准备好Keystore文件后,我们可以使用apk签名命令来为应用签名了。

依次输入以下命令:a. 打开命令行窗口或终端,并进入到Android SDK的bin文件夹下。

通常这个文件夹路径是:sdk/platform-tools。

b. 执行以下命令:apksigner sign --ks mykeystore.keystore --out myapp_signed.apk myapp_unsigned.apkc. 替换mykeystore.keystore和myapp_unsigned.apk为你自己的文件名。

d. 如果签名成功,你应该会在终端看到签名成功的消息。

3. 验证签名为了确保应用签名成功,我们可以使用“jarsigner”命令来验证签名。

Unity3D对apk反编译、重编译、重签名

Unity3D对apk反编译、重编译、重签名

Unity3D对apk反编译、重编译、重签名⼯具Java环境Apktool(这玩意有些坑爹,不是官⽹最新的就好,找到⼀个好⽤的版本号能少⾮常多坑)ApktoolJarsigner反编译var argList = ProcessHelper.CreateArgumentsContainer();argList.Add("java -jar");argList.Add(ApkToolPath);argList.Add("d");argList.Add(pathToBuildProject);argList.Add("-o");argList.Add(GetDecodeApkFolder(pathToBuildProject));var p = ProcessHelper.Start(ProcessHelper.CreateStartInfo());ProcessHelper.WriteLine(p, ProcessHelper.CreateArguments(argList));var result = p.StandardOutput.ReadToEnd();var error = p.StandardError.ReadToEnd();p.WaitForExit();p.Close();Debug.Log(result);Debug.Log(error);- 反编译之后的图如上(unknown是没有的)- 反编译之后能够做⼀些改动。

通常会改动AndroidMainifest.xml- ⽜逼⼀点的。

能够改动smali,⽐如前⾯提及到的重编译var unsignedApk = GetUnSignedApkPath(pathToBuildProject);FileHelper.DeleteFile(unsignedApk);var argList = ProcessHelper.CreateArgumentsContainer();argList.Add("java -jar");argList.Add(ApkToolPath);argList.Add("b");argList.Add(GetDecodeApkFolder(pathToBuildProject));argList.Add("-o");argList.Add(unsignedApk);var cmd = string.Join(" ", argList.ToArray());var p = ProcessHelper.Start(ProcessHelper.CreateStartInfo());ProcessHelper.WriteLine(p, ProcessHelper.CreateArguments(argList));var result = p.StandardOutput.ReadToEnd();var error = p.StandardError.ReadToEnd();p.WaitForExit();p.Close();Debug.Log(result);Debug.LogError(error);重签名var unsignedApk = GetUnSignedApkPath(pathToBuildProject);var finalApk = GetFinalApkPath(pathToBuildProject);FileHelper.DeleteFile(finalApk);var argList = ProcessHelper.CreateArgumentsContainer();argList.Add("jarsigner");argList.Add("-keystore 路径");argList.Add("-storepass password");argList.Add("-signedjar");argList.Add(finalApk);argList.Add(unsignedApk);argList.Add("别名");var p = ProcessHelper.Start(ProcessHelper.CreateStartInfo());ProcessHelper.WriteLine(p, ProcessHelper.CreateArguments(argList));var result = p.StandardOutput.ReadToEnd();var error = p.StandardError.ReadToEnd();p.WaitForExit();p.Close();Debug.Log(result);Debug.LogError(error);⼀个Keystore能够相应多个Key假设Key的password不⼀样,还得另外输⼊Key的password。

AndroidApk的破解:反编译、修改资源代码、重新打包、签名

AndroidApk的破解:反编译、修改资源代码、重新打包、签名

AndroidApk的破解:反编译、修改资源代码、重新打包、签名⼯具准备apktool附上Mac安装说明:Download Mac (Right click, Save Link As apktool)Download apktool-2 ()Rename downloaded jar to apktool.jarMove both files (apktool.jar & apktool) to /usr/local/bin (root needed)Make sure both files are executable (chmod +x)Try running apktool via cli问题:⽣成的都是smail ⽂件,JD-GUI能查看jar⽂件。

dex2jarTools to work with android .dex and java .class filesJD-GUIJava Decompiler实验步骤提取资源$apktool d xxx.apk提取jar将xxx.apk改名成xxx.apk.zip,⽤压缩⼯具解压⽂件,得到classes.dex⽂件。

运⾏d2j-dex2jar.sh classes.dex, 得到classes-dex2jar.jar$cd dex2jar-2.0/$chmod u+x *.sh$cd ../xxx.apk/$../dex2jar-2.0/d2j-dex2jar.sh classes.dex查看java代码使⽤JD-GUI打开classes-dex2jar.jar,界⾯中选择class⽂件即可查看java代码。

修改代码注意,修改代码及资源,最好的⽅式是修改apktool反编译后的资源级smali代码。

JD-GUI查看的java代码不适宜修改,因为修改后还需要重新转换成smali,才能重新编译打包会apk。

⾄于smali的修改,则要学习smali语⾔的语法了,smali是⼀种类似汇编语⾔的语⾔,具体语法可⾃⾏上⽹学习。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Apk反编译及签名工具使用
1) APKtool软件包及签名tool
APKtool软件包有2个程序组成:apktool.jar 和aapt.exe
另外提供一个批处理文件:apktool.bat,其内容为:
java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
运行apktools.jar需要java环境(1.6.0版本以上)。

apktool.jar用于解包,apktool.jar和aapt.exe联合用于打包。

signapk.jar 用于签名。

2) APK文件的解包
下面以解开Contacts.apk为例。

首先把Contacts.apk Copy到当前工作目录下(例:Test)。

在DOS下打入命令
apktool d Contacts.apk ABC
这里“d”表示要解码。

Contacts.apk是要解包的APK文件。

ABC是子目录名。

所有解包的文件都会放在这个子目录内。

3) APK文件的打包
在DOS下打入命令
apktool b ABC New-Contacts.apk
这里“b”表示要打包
ABC是子目录名,是解包时产生的子目录,用来存放所有解包后的和修改后的文件。

New-Contacts.apk是打包后产生的新的APK文件。

4) 签名,不签名安装时可能提示如下错误:
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES] --- 没有签名,可以尝试test证书;签名方法见下面。

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] ---- 已存在签名,但使用证书不对,可以尝试使用其他证书签名。

签名方法:到目录android\build\target\product\security找到证书文件,这里可能会有几种证书,
test/shared/platform/media,各种证书使用场景不同,可以自己google一下,因为签名很快而且可任意后续更改签名,可以自己尝试各种不同签名;
这个命令行是使用test证书的例子:java -jar signapk.jar testkey.x509.pem testkey.pk8 YOURAPK.apk YOURAPK_signed.apk
YOURAPK_signed.apk就是签完名的apk,去测试一下您重新打包的apk吧。

相关文档
最新文档