百度android apk 加固加固要怎样操作?难学吗?

查看:1097|回复:0
的二次打包现象已经屡见不鲜,为何“打包党”就吃准了Android平台,二次打包的操作过程到底有多简单?本文将从Android apk的结构、二次打包的工具、步骤等方面向移动开发者说明二次打包操作的简单性,从而引起开发者对APP安全的重视,并及时对APP进行代码混淆或加固保护等安全措施。
安卓apk的文件结构首先来看一下Android apk的内部文件结构。随便下载一款手机APP,用解压工具即可查看到其内部文件结构,如图1所示:
(175.36 KB)
& && && && && && && && && && &
一、图1安卓apk的文件结构
Apk中的主要文件内容有:
1.AndroidManifest.xml:Android主配置文件,编译过程中由文本格式转化为二进制AXML文件格式。
2.Classes.dex: java代码编译后产生的一种类似字节码的文件。
3.res/文件夹:资源文件,其中的.xml文件,在编译过程中由文本格式转化为二进制AXML文件格式。
4.META-INF/文件夹:签名文件。
5.Lib: native代码编译后的so。
6.其他文件夹:由开发者自己添加的文件
Android apk的核心逻辑主要存在于classes.dex中,通常破解者在进行破解和二次打包时,会对classes.dex和AndroidManifest.xml文件进行操作,所以对这两个文件进行保护尤为重要。了解了Android apk每个文件的含义与用途,就可以有针对性的对其进行二次打包操作。
二、apk二次打包步骤
通常,Android apk的二次打包步骤主要包括:
(1)反编译java:classes.dex反编译成中间文件(smali、jar)。
(2)反编译布局文件:Axml文件反编译成xml文件。
(1)修改smali文件。
(2)修改xml文件。
3.重新编译
(1)修改后的smali编译成classes.dex。
(2)修改后的xml编译成Axml。
对新的apk进行重签名,一款新的APP便产生了。
三、反编译工具
1、反编译java代码工具:
(1)APKTool
(2)Smali/baksmali
(3)Dex2jar + jd—gui
(4)集成化图像窗口工具:改之理、JEB
2、反编译布局文件(xml)工具:
(1)AXMLPrinter2
(2)APKTool
(3)Github上的解析AXML文件的开源项目
四、反编译apk
反编译java是指把classes.dex文件利用反编译工具,生成一种中间语言.samli文件或者jar文件的过程,常用手段有:
(1)Java&&–jar&&Apktool.jard&&–r&&–f&&input.apk&&output目录。
(2)java&&-jar&&baksmali-1.4.1.jar -o&&output目录&&classes.dex。
(3)dex2jar.bat&&classes.dex。& &&&
(4)图像窗口工具:改之理或者JEB。
(5)Android sdk自带dexdump工具。
其中,dex2jar.bat工具输出的是.jar文件,是只读不可修改的。如果还需要修改并二次打包,不可选用该工具。其他的工具生成的都是smali文件。
五、修改.samli文件
修改.samli语言的一些技巧:
(1)信息反馈法(弹出提示信息未突破点)。
(2)特征函数法(Toast、Log、getPublicKey等)。
(3)代码注入法(Log输出配合LogCat查看状态数据)。
(4)栈跟踪法
可疑点插入以下代码,既可以得到函数调用顺序:new Exception(“print trace”).printStackTrace();
六、 反编译布局文件(xml)工具反编译布局文件是指:把APK中,二进制的Axml文件还原成文本格式xml文件。常用手段:
Java&&–jar&&Axmlprinter2.jar AndroidManifest.xml&&& out.xml
Java&&–jar&&Apktool.jar d&&input.apk&&output目录
其中AxmlPrinter2.jar只是单向的,无法把文本文件重新编译成AXML。另外如果有比较高级的需求,以上2中工具无法满足。读者可以自己实现一个Axml文件解析器。网络上已经有许多类似的开源项目。
七、 修改布局文件:
由Axml文件得到文本格式的xml文件后,就可以根据需求,随意的修改AndroidManifest.xml文件了。例如:
&meta-data& && &android:name=&BaiduMobAd_APP_ID& android:value=&& /&这是一个百度广告标识字段。其中android:value是开发者的认证值,直接和广告收入联系。只要修改该字段就可以盗取别人的广告的收入。
八、 重新编译APK
为了使修改生效,需要重新编译文件,生成新的APK。
重新编译java代码:用修改后的.smali文件重新生成classes.dex文件。
java –jar Apktool.jar&&b&&–f&&input目录&&new.apk
java -jar smali-1.4.1.jar classout/ -oclasses.dex
图像窗口工具:改之理或者JEB
重新编译xml文件:
java –jar&&Apktool.jar&&b –f&&input目录&&new.apk
(6)基于github开源项目自己实现Axml文件解析器。
注意:APK反编译和重新编译使用的工具要配套,例如:使用APKTool进行反编译,那么重新编译也要使用APKTool。
九、重新签名
1. 重新编译APK,生成新的APK后,由于改动了文件内容,所以必须进行重签名。
2. 安装运行新APK。就可以看到改动生效了。
以上就是二次打包的步骤,操作起来真的很简单。为了避免自己辛苦开发的APP惨遭破解和二次打包,出现了不少第三方的加固保护类产品。本人也使用并进行了分析,下次就为大家介绍其中360加固保是如何做到防止APP破解和二次打包的。
(175.36 KB)
本帖最后由 360加固保 于
11:38 编辑安卓APK应用的破解与保护
安卓应用的破解现在非常厉害,很多小广告联盟和团队靠破解他人的应用来赚钱,现在把这个方法公布出来,让更多的开发者知道如何保护自己的应用。也可以到梆梆安全官网:进行免费APP加固。
写这篇文章之前,有些犹豫,我会不会因此而打开了一个潘多拉魔盒呢?后来一想,Android类似的恶意软件早已问世,说明这世上已经有不少软件安全专家或者黑客们对此并不陌生了。而我,仅仅是作为一个传道者,将这个少数人知道的秘密告诉大家。于是我心安多了,我想我是在为Android软件安全行业早日成熟起来做贡献吧~!
所谓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.
import&android.app.A
import&android.os.B
public&class&MainActivity&extends&Activity&{
&&&&&@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&
Apache&License&2.0&(http://www.apache.org/licenses/LICENSE-2.0)
Usage:&apktool&[-v|--verbose]&COMMAND&[...]
COMMANDs&are:
&&&&d[ecode]&[OPTS]&&[
&&&&&&&&Decode&&to&
&&&&&&&&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&,&--frame-tag&
&&&&&&&&&&&&Try&to&use&framework&files&tagged&by&.
&&&&&&&&--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]&[]&[]
&&&&&&&&Build&an&apk&from&already&decoded&application&located&in&.
&&&&&&&&It&will&automatically&detect,&whether&files&was&changed&and&perform
&&&&&&&&needed&steps&only.
&&&&&&&&If&you&omit&&then&current&directory&will&be&used.
&&&&&&&&If&you&omit&&then&/dist/
&&&&&&&&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&&[]
&&&&&&&&Install&framework&file&to&your&system.
For&additional&info,&see:&
通过apktool&d&HelloWorld.apk的命令,我们就完成了一个简单的APK的反编译工作。得到了一个叫做“HelloWorld”的文件夹。你可以看见文件夹下有Manifest文件,有反编译出的res资源文件。这些东西都是平时汉化特别关心的,而不是我们要注意的重点。我们需要注意的是一个叫做“smali”的文件夹。
仔细观察,你会发现这个文件夹下的文件组织结构和我们的Android工程中java源码的组织结构几乎一致。只不过Java文件被.smali的文件取而代之了。我们用文本编辑器打开这些.smali文件,你会发现它们都是可识别的、并且非常“整齐”的文本文件,大致如下:
.class&public&Lcom/zh_weir/helloworld/MainA
.super&Landroid/app/A
.source&"MainActivity.java"
#&direct&methods
.method&public&constructor&()V
&&&&.locals&0
&&&&.prologue
&&&&.line&6
&&&&invoke-direct&{p0},&Landroid/app/A-&()V
&&&&return-void
.end&method
#&virtual&methods
.method&public&onCreate(Landroid/os/B)V
&&&&.locals&1
&&&&.parameter&"savedInstanceState"
&&&&.prologue
&&&&.line&10
&&&&invoke-super&{p0,&p1},&Landroid/app/A-&onCreate(Landroid/os/B)V
&&&&.line&11
&&&&const/high16&v0,&0x7f03
&&&&invoke-virtual&{p0,&v0},&Lcom/zh_weir/helloworld/MainA-&setContentView(I)V
&&&&.line&12
&&&&return-void
.end&method
Smali文件其实就是dalvik虚拟机运行的dex字节码文件对应的汇编文件了。如果你了解Java虚拟机的汇编语言Jasmin的话,你会发现两者的语法非常相似。关于smali的语法等问题就不深入下去了,如果你想了解更多,可以访问Google&Code上Smali项目主页:&。
代码分析与修改
即使你不会Jasmin语法,你也能很容易看明白上面的汇编代码。需要指出的是,apktool反编译出来的汇编代码同样也是面向对象的,而不是面向过程的。这点和C++的反汇编可能有所不同。
根据上面的代码,我们可以看出,这个MainActivity的类有两个成员方法。一个是默认的构造函数;另一个就是我们重载的OnCreate方法了。
在java汇编中,每个成员方法需要首先申明自己所使用的局部变量的个数,以便实现分配存储空间。例如OnCreate使用了一个局部变量,就声明:.locals&1&。后面则使用v0表示。
在一个非静态的成员方法中,p0代表的是这个类本身的引用,相当于this,p1开始才是函数的参数;而对于静态方法,由于没有this指针,所以p0就是函数的第一个参数。(其实本身this指针就是作为一个隐含的参数传递给非静态成员函数的)。
通过分析上面Oncreate的汇编代码,我们可以知道,它首先是调用super类的onCreate方法,然后再setContentView设置显示。其中I、V等表示的是函数的参数和返回变量的类型,这是通用做法,这里就不多做说明了。
分析到这一步,你是否发现一个问题?那就是如果我们按照同样的语法修改或者增删一个语句,是否就可以实现对程序的修改了呢?答案是肯定的。
例如,我们希望这个APK程序在运行时会弹出一个Toast,提示它被破解了。用Java的话,应该这样表述:
Toast.makeText(this,&"I'm&Cracked!",&Toast.LENGTH_LONG).show();
而用Java汇编的话,则应该表述为这样:
const-string&v0,&"I\'m&Cracked!"
const/4&v1,&0x1
invoke-static&{p0,&v0,&v1},&Landroid/widget/T-&makeText(Landroid/content/CLjava/lang/CharSI)Landroid/widget/T
move-result-object&v0
invoke-virtual&{v0},&Landroid/widget/T-&show()V
OK,只要我们将这段代码插入到原来程序的OnCreate中,再重新打包程序,我们就能实现在这个程序运行时弹出Toast了。
改之后的代码,大致如下:
#&virtual&methods
.method&public&onCreate(Landroid/os/B)V
&&&&.locals&2
&&&&.parameter&"savedInstanceState"
&&&&.prologue
&&&&.line&11
&&&&invoke-super&{p0,&p1},&Landroid/app/A-&onCreate(Landroid/os/B)V
&&&&.line&12
&&&&const/high16&v0,&0x7f03
&&&&invoke-virtual&{p0,&v0},&Lcom/zh_weir/helloworld/MainA-&setContentView(I)V
&&&&.line&14
&&&&const-string&v0,&"I\'m&Cracked!"
&&&&const/4&v1,&0x1
&&&&invoke-static&{p0,&v0,&v1},&Landroid/widget/T-&makeText(Landroid/content/CLjava/lang/CharSI)Landroid/widget/T
&&&&move-result-object&v0
&&&&invoke-virtual&{v0},&Landroid/widget/T-&show()V
&&&&.line&15
&&&&return-void
.end&method
重新编译打包签名
修改完成后,我们就可以对这个文件夹进行编译打包了。同样,我们使用的工具是apktool。通过命令apktool&b&HelloWorld,就可以实现程序编译打包了。这时会在这个文件夹下生成两个文件夹:存放中间文件的文件夹build和存放最后的apk文件的文件夹dist。
如果一切顺利的话,你就可以在dist文件夹中看到我们修改后的HelloWorld.apk了。不过需要注意的是,这个APK文件是还没有签名的,所以无法安装运行。我们还需要进行最后一步,那就是对这个APK进行签名。
签名我们需要用到的工具是Auto-sign。它主要是利用批处理命令,使用signapk.jar对APK文件进行签名的。你可以用记事本打开Sign.bat,看看它的具体调用关系。关键如下:
java&-jar&signapk.jar&testkey.x509.pem&testkey.pk8&update.apk&update_signed.apk
OK!到此,我们对这个APK的Crack就结束了。现在在模拟器或者Android机器上安装上签好名的APK程序,运行试试。一切与我们的预期相同~
如何反破解
这篇文章本来到此就结束了。不过,对于软件安全来说,有攻就要有防才对。不然,Android整个产业链就会被这样的Crack给毁掉。由于篇幅有限,反破解方面就不做详细描述了,仅仅做一个思路上的说明,希望大家谅解。
第一种办法:将核心代码用JNI写进so库中。由于so库的反编译和破解的难度加大,所以这种方式防止反编译效果不错。缺点是,对于Java层的代码没有保护作用,同样可以被篡改。
第二种办法:在线签名比较。在程序初始化时,联网将运行的程序的签名与服务器上的官方标准签名进行比较,从而达到让反编译后的程序无法正常运行的效果。缺点是,如果此部分联网检验的代码被篡改跳过,则整套机制失效。
第三种办法:代码混淆。为了加大反编译后代码分析的难度,对代码进行混淆。缺点是,治标不治本,同样可以修改(甚至据说还有反混淆工具,没用过,不多做评论)。
这三种办法都有各自的缺点,所以单单靠某一项要实现完美的软件保护都是不可能的。不过,我们可以采用联合几种办法的方式,来增强软件保护的力度。曾经反编译过Android版的卡巴斯基,它的保护思路似乎是这样的:
代码混淆,那是必须的,不过不指望它能有很好的效果。在程序初始化时,就直接通过JNI的so库初始化程序。程序激活部分也是通过JNI联网下载文件,然后在JNI层读文件并做相应激活与否的判断的。
卡巴斯基是将大部分功能模块都放在JNI层来实现的,如果我们的程序都这样处理,耗费的精力必然很大。所以,我们只是借鉴它的思路而已。具体操作思路如下:
代码混淆。初始化时JNI层联网验证签名。验证失败则直接在JNI层退出程序。值得注意的是需要保证如果绕过JNI层的初始化,则程序无法正常启动。这点不保证的话,破解还是很容易……
来源:看雪论坛
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。您所在的位置: &
Andorid APK反逆向解决方案:梆梆加固原理探寻(1)
Andorid APK反逆向解决方案:梆梆加固原理探寻(1)
看雪安全论坛
梆梆是一个面向Android开发者的应用保护解决方案,它可以有效的阻止Android APK包被逆向工程破解,从而保护开发者的利益,防治打包党。那么它到底是如何实现这一效果的呢,梆梆的解决方案真的无懈可击吗?来看网友对其技术实现的分析。
目前Android市场充斥着大量的盗版软件,开发者的官方应用被&打包党&们恶意篡改。如何使程序代码免受盗版篡改就成了开发者面临的头等大事,今天我们将分析一个不错的解决方案---梆梆加固(/appProtect/)。
通过对App进行加固保护。梆梆可以有效防止移动应用在运营推广过程中被破解、盗版、二次打包、注入、反编译等破坏,保障程序的安全性、稳定性,对移动应用的整体逻辑结构进行保护,保证了移动应用的用户体验。
二、梆梆加固逆向分析过程
首先我们通过对APK加固前后文件结构的比较,来了解梆梆加固对APK文件所做的处理。为了使分析过程足够简单,我新建一个最简单的测试程序,并上传到梆梆加固,整个加固过程大概需要4天的时间才可以完成,这是一个漫长的等待过程。
该测试程序包含了Activity、Service、ContentProvider、BroadcastRecevier四大组件、Application、普通类、Jni调用等7类对象,目的就是全面的了解梆梆的加固效果。
1、apk加固前后静态文件结构及动态运行时对比分析
(1)&加固前后静态文件结构变化(左为加固前,右为加固后)
加固后apk新增以下文件:
assets\meta-data\manifest.mf
//APK文件列表SHA1-Digest
assets\meta-data\rsa.pub
//RSA公钥信息
assets\meta-data\rsa.sig
//数字签名文件
assets\classes.jar
//已加密原classes.dex文件
assets\com.example.hellojni
//ARM平台二进制可执行文件
assets\com.example.hellojni.x86
//x86功能同上
libs\armeabi\libsecexe.so
//ARM平台共享库文件
libs\x86\libsecexe.so
//x86功能同上
加固后修改文件:
AndroidMainfest.xml
//(如果应用配置有Application信息,则该文件加固前后相同,如果应用未配置Application信息,则该文件加固前后不相同,梆梆会配置Application信息为自己实现类)
classes.dex
对classes.dex进行反编译,观察代码树结构变化:(左为加固前,右为加固后)
(2)加固前后动态运行时变化
运行原程序,系统仅创建一个相关进程,但是加固的程序,系统会为其同时创建三个相关程序进程:
进程启动顺序:597进程创建605进程,605进程又创建了607进程
通过查看maps文件获取597进程映射文件信息
通过map文件可以看出,597进程为主进程,android各组件在该进程中运行。
605和607进程并无与apk文件相关文件信息,通过cmdline查看启动参数:
初步怀疑该进程为assets\com.example.hellojni&可执行文件运行结果。
2、梆梆加固保护效果分析
我们通过逆向分析加固后的app,来看看梆梆加固对app的保护效果。
程序代码的第一执行点是Application对象,首先查看TestApplication类对象。
程序的Util类完成大部分的java层逻辑,
ACall类主要完成对libsecexe.so&JNI的调用:
查看libsecexe.so文件导出函数,发现所有函数名都经过加密处理,与我们平时jni调用产生的函数名并不同。平时jni产生的函数名应该为这样格式Java_com_secapk_wrapper_ACall_{函数名}
抗静态分析:
Util类通过MyClassLoader完成对加密classes.jar的动态加载,内存中解密classes.jar,完成动态加载。
jni方法对应so函数名的混淆。
抗动态调试:&
当使用IDA动态调试该程序时,程序无法建立连接调试。
梆梆加固可以有效常用的逆向分析方法。
内容导航&第 1 页: &第 2 页:
关于&&&&&&的更多文章
Android 4.4即将发布,这对大家来说都是很期待的,当然,无论是
既然强大的Android Studio来了,有什么理由不去用呢?
PC互联网巨头百度、腾讯和阿里,通过在移动互联网投资
谷歌在新品发布会上正式发布了传闻已久的Android 4.3
App定价是开发者不可忽视的部分,它是确保应用高能见
本书是在“思想方法学”这一软件工程尚未涉足过的领域中的实习之作。作者亲历国内软件工程的英雄时代、泡沫时代,从失败中醒觉而
Windows Phone专家
Android开发专家
51CTO旗下网站AndroidAPK加固加密_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
AndroidAPK加固加密
大小:77.44KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢查看: 601|回复: 4
APK经爱加密加固该如何
阅读权限25
& && &新手菜鸟一枚,学习破解APK,遇到一款apk用IDE反编译提示经过爱加密加固,于是乎.........各种失败,
便想到在破解区找一下有木有解决办法,皇天不负有心人,找到一片帖子,观看后再次得出结论,
完全看不懂,帖子地址& &瞬间感觉蛋蛋的忧伤,所以想问问有没有 相关的资源谁能提供下
小白我幻想着有木有一款神器可以直接脱去加固
弱弱的说下,第一次发求助帖才知道竟然有税.............................
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限25
醉了 竟然没人管.....忽视我的存在了
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限25
又是一天还是没人 醉了
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限25
可怜阿都没人回复&&CB留着也是浪费不如给我好了
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限25
依旧呗忽视
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】和【CB】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
免责声明:吾爱破解论坛所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
( 沪ICP备号 )
Powered by Discuz! X3.2
Comsenz Inc.

我要回帖

更多关于 android apk 签名 的文章

 

随机推荐