Android
文章平均质量分 52
qiyu93422
这个作者很懒,什么都没留下…
展开
-
Android学习心得(6) --- smali语法学习
1.smaliapk文件通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件。 smali语言是Davlik的寄存器语言,语法上和汇编语言相似,Dalvik VM与JVM的最大的区别之一就是Dalvik VM是基于寄存器的。基于寄存器的意思是,在smali里的所有操作都必须经过寄存器来进行。2.基本数据类型B—byte C—char D—dou原创 2015-06-12 19:48:01 · 888 阅读 · 0 评论 -
Android学习心得(14) --- Android代码混淆(2)
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下Android混淆如何自定义proguard参数来实现环境配置参考 Android学习心得(1) --- MAC下Android环境的搭建 签名参考Android学习心得(12) --- APK签名keystore 代码混淆Android学习心得(13) --- Android代码混淆(1) dex2j原创 2015-08-18 18:38:14 · 1208 阅读 · 0 评论 -
批量反编译和重新编译签名 Python脚本(附源代码)
好久没有来写博客了,最近在学python,正好写了一个python脚本实现apktool批量使用源代码下载 : https://github.com/QyMars/apktool-python项目描述:首先把需要批量进行的apk放入apk文件夹中我已经把需要的工具都放在这个目录中,你所需要的是下载下来后在目录中创建三个文件夹 out unsigned signedout:存放反编译后文件夹un原创 2016-01-14 16:31:18 · 2198 阅读 · 0 评论 -
Android学习心得(17) --- 二进制AndroidManifest解析
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下打包过后的AndroidManifest二进制文件。二进制AXML:对于aapt打包后的APK中,我们没有反编译,直接对AndroidManifest文件进行查看的话看到的会是如下图所示看到的是一堆乱码,并不是我们想要看的,因为这个直接从APK中取出的文件是二进制文件我们可以使用AXMLPrinter工具原创 2016-03-22 18:15:24 · 2960 阅读 · 1 评论 -
Android学习心得(18) --- 对APK包动态写入信息
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下在APK包的comment中动态写入信息。1、介绍APK包的压缩方式是zip,所有和zip有着相同的文件结构,zip文件主要由三部分组成:压缩的文件内容源数据、压缩的目录源数据、目录结束标识结构。 目录结束标识结构存在在整个归档包的结尾,用来标记压缩的目录数据的结束,其结构如下: 我们可以在注释中添加一原创 2016-06-07 22:17:19 · 3285 阅读 · 0 评论 -
Android学习心得(19) --- short、byte、Hex、int、ULeb128类型转化Java源码
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下在分析dex时候遇到类型转换,并附上java源码1、介绍由于读取dex文件放入的是一个byte数组,当我们对这个byte数组进行解析的时候,肯定会遇到一些类型转化的问题,下面就通过java源代码来解释一下这些类型转换 。2、byte2intbyte[4]数组转化为int类型:// 字节转换为十进制 pu原创 2016-07-04 12:29:32 · 2810 阅读 · 0 评论 -
Android学习心得(20) --- Hook技术( 1 )
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下Hook技术Hook动态注入技术由来已久,通过Hook,我们可以改变变量或者方法的执行。在Android上进行Hook,需要跨进程操作,所以需要Root权限。对于Android平台的Hook,有两大类,一类是:Java层的Hook,另一个类是:Native层Hook常见的工具1、Cydia Substrate原创 2016-08-22 19:13:21 · 957 阅读 · 0 评论 -
Android学习心得(21) --- apk签名源码解析
新博客地址blog.marssecure.com重打包检测对于apk重打包检测中,验证签名是一种很简单、很快捷的方法,为了更好理解签名,这一章主要讲解apk中签名文件内容签名:每一个apk发布之前都需要进行签名,不然不能进行安装,我们使用winrar来查看一个apk包 我们可以看到其目录结构,关注一下META-INF这个文件,里面包含三个文件 下面我们来解压缩,打开看看里面内容 源码位原创 2016-09-29 10:58:10 · 1053 阅读 · 0 评论 -
Android学习心得(22) --- PackageManagerService源码解析platfrom.xml
新博客地址blog.marssecure.complatform.xmlAndroid中沿用Linux用户和组的来限制系统资源的访问,查看从Android真机pull出/etc/permissions/platform.xml 权限初始化PackageManagerService构造函数会解析platform.xml,建立android权限和gid的对应关系。然后,扫描apk时,会由请求的权限找到原创 2016-10-17 22:21:35 · 1238 阅读 · 0 评论 -
Android插件学习汇总(持续更新)
Android插件学习Android插件好处实现热更新操作业务热拔插提高启动速度基本实现使用一个宿主APK,即空壳程序,通过动态加载功能跟实现插件包调用,从而实现动态更新的功能。开篇对于这一个块的内容学习,我也是刚刚接触,希望从我一步一步学习下去,由浅入深,更好的理解这个动态加载过程,最终目标能够实现一个相对比较完备的插件框架。 å基础知识DexClassLoader可以实现对于Dex、j原创 2017-04-19 16:55:18 · 734 阅读 · 0 评论 -
Android学习心得(23) --- Android序列化使用
序列化操作:将数据结构或者对象转换成可用于存储或者传输的数据格式的过程序列化 < ——– > 反序列化Serializable基于JDK接口,基于磁盘或者网络序列化操作: 1、创建某种类型OutputStream 2、封装该输出流到一个ObjectOutputStream中(基于字节) 3、调用ObjectOutputStream.writeObject进行序列化 反序列化操作原创 2017-05-16 15:57:31 · 376 阅读 · 0 评论 -
Android学习心得(24) --- Android Handler消息机制源码分析
Android Handler消息机制源码分析相关类LooperMessageQueueMessageHandler基础知识1. ThreadLocal2. epoll3. pipe4. idleHandler使用过程使用方法: 1、Looper.prepare() 2、创建Handler实例,重写handleMessage处理函数 3、Looper.loop() 4、调用相关的发原创 2017-06-05 18:51:45 · 386 阅读 · 0 评论 -
Android NDK系列(6) — 动态注册native方法
我在博客上发表一些我的NDK学习心得,希望对大家能有帮助。 这一篇我们讲述如何动态注册native方法介绍首先,之前写的文章中通过一个简单的例子来使用了一下NDK,实现了从Native中调用Java方法。下面,我们要介绍的是实现动态绑定native方法来破除命名限制。问题在静态注册的情况,所有的方法都是有固定的方法名:Java_<包名> <类名> <方法名>,这种情况下,调用一个方法比较繁琐,同时也原创 2017-07-05 19:08:38 · 1327 阅读 · 0 评论 -
Android学习心得(13) --- Android代码混淆(1)
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下最新的ADT环境下如何进行Android混淆在新版本的ADT创建项目时,混码的文件不再是proguard.cfg, 而是project.properties和proguard-project.txt。 我们把之前配置都配置好了,proguard已经在包含在sdk中了。环境配置参考 Android学习心得(原创 2015-08-16 22:37:42 · 1014 阅读 · 1 评论 -
Android学习心得(16) --- Dex文件结构实例解析(2)
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下通过一个实例来分析dex文件结构和组成。参考Leb128数据类型 Android学习心得(5) --- dex数据类型LEB128 参考实例分析学习理解dex文件结构Android学习心得(15) --- Dex文件结构解析(1) 参考baksmali工具使用Android学习心得(4) --- MAC下s原创 2015-08-31 12:28:11 · 2209 阅读 · 1 评论 -
Android学习心得(7) --- 迭代器Iterator反编译smali分析
我在博客上发表一些我的反编译学习心得,希望对大家能有帮助。这一章学习基本的迭代器Iterator基本使用和反编译smali后迭代器的查看1、常见的两种迭代器代码//第一个中使用for-eachIterator<对象> <对象名> = <方法返回的一个对象列表>;for(<对象> <对象名> : <对象列表>) { [具体处理代码]}//第二种使用whileIterator<对象>原创 2015-06-13 14:49:05 · 1230 阅读 · 0 评论 -
Android学习心得(2) --- MAC下Android反编译
从今天开始,我在博客上发表一些我的Android学习心得,希望对大家能有帮助。在前一章我们学习了如何在Mac os下搭建安卓开发环境,马上我们学习如何进行基本的Android反编译Android学习心得(1) --- MAC下Android环境的搭建具体源代码及分析文件将在最后给出链接1. 编译生成第一个APK文件首先使用Eclipse开发一个最简单的程序,最简单的登陆验证功能如果输入登陆口令原创 2015-05-21 20:46:14 · 1387 阅读 · 1 评论 -
Android学习心得(8) --- MAC下dex2jar和jd-gui使用
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。在前一章我们学习了如何进行迭代器Iterator反编译smali分析,这一章学习基本的dex2jar和jd-gui使用。阅读反编译的smali代码是一件特别繁琐的事情,我们可以使用JAVA反编译工具。1、使用dex2jar生成jar文件首先我们先去下载dex2jar工具,这里给出下载链接http://sourceforge.n原创 2015-06-19 10:28:27 · 6003 阅读 · 3 评论 -
Android学习心得(5) --- dex数据类型LEB128
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。在前一章我们学习了如何进行Android源代码下载,这一章学习基本的Dalvik指令集编写原创 2015-05-30 17:50:07 · 1879 阅读 · 0 评论 -
Android学习心得(4) --- MAC下smali文件编写与运行
今天从今天开始,我在博客上发表一些我的Android学习心得,希望对大家能有帮助。在前一章我们学习了如何进行Android源代码下载,这一章学习基本的Dalvik指令集编写Android学习心得(1) --- MAC下Android环境的搭建 Android学习心得(2) --- MAC下Android反编译 Android学习心得(3) --- MAC下Android源代码下载这一章我原创 2015-05-28 10:09:04 · 3268 阅读 · 0 评论 -
Android学习心得(1) --- MAC下Android环境的搭建
从今天开始,我在博客上发表一些我的Android学习心得,希望对大家能有帮助。目前google已经发布了Android studio开发工具,但是我这里还是想介绍一下传统的Eclipse+SDK+NDK开发环境的搭建1、安装JDK 直接进入Oracle下载jdk,这里直接给出官网jdk下载连接,进去之后下载 先点击接受协议,然后下载MAC OS X x64进行下载。由于MAC原创 2015-05-18 20:05:16 · 1356 阅读 · 0 评论 -
Android学习心得(3) --- MAC下Android源代码下载
今天从今天开始,我在博客上发表一些我的Android学习心得,希望对大家能有帮助。在前一章我们学习了如何进行基本的Android反编译,这一章我们进行Android源代码下载 Android学习心得(1) --- MAC下Android环境的搭建 Android学习心得(2) --- MAC下Android反编译基本的参照官网Setting up a Mac OS X build envir原创 2015-05-27 22:15:20 · 1170 阅读 · 0 评论 -
Android学习心得(11) --- MAC下Android反编译(3)
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 在前一章我们学习了反编译。 这一章再次学习一下两个demo。两个demo下载地址 KeygenMe#1.apk crackme0a.apk 链接: http://pan.baidu.com/s/1kTs11Tt 密码: davkKeygenMe#1.apk1、首先在模拟器安装测试 由于模拟器检测不到wifi mac原创 2015-08-08 09:49:10 · 851 阅读 · 0 评论 -
Android学习心得(9) --- ndk-build脚本参数用法
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。在前一章我们学习了如何学习基本的dex2jar和jd-gui使用。这一章学习基本的ndk-build脚本参数用法。 编译具体参数使用:ndk-build : 编译ndk-build -C <project路径> : 先cd进入<project路径>,然后执行ndk-build。ndk-build -B : 在构建系统的时候不原创 2015-07-29 14:56:26 · 1586 阅读 · 0 评论 -
Android学习心得(15) --- Dex文件结构解析(1)
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下Android可执行文件dex的结构解析。参考Leb128数据类型 Android学习心得(5) --- dex数据类型LEB128 参考实例分析学习理解dex文件结构Android学习心得(15) --- Dex文件结构解析(1)1、Dex背景 Android应用开发和Dalvik虚拟机Android原创 2015-08-27 21:41:47 · 4881 阅读 · 0 评论 -
Android学习心得(12) --- APK签名keystore
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。 这一篇我们讲述一下Eclipse如何生成keystore并为apk签名所有的APK必须通过签名才能进行安装,我们在Eclipse中安装的APK 过程是Eclipse先进行打包成APK文件,使用默认的keystore文件进行签名 perferences -> Android -> Build我们可以看到默认的keystor原创 2015-08-16 16:24:09 · 1352 阅读 · 0 评论 -
Android学习心得(10) --- MAC下Android反编译(2)
我在博客上发表一些我的Android学习心得,希望对大家能有帮助。在前一章我们学习了基本的ndk-build脚本参数用法。这一章再次学习一下反编译。 1、简介这次分析的是一个很简单的程序,算是反编译入门的一个入门教程 主要学习一下工具的使用测试样本EX_05_01_.apk 链接: http://pan.baidu.com/s/1sjOIXJn 密码: 5uq42、首先,使用dex2ja原创 2015-08-04 10:07:41 · 1666 阅读 · 3 评论 -
Android学习心得(25) --- Intent启动方式研究
Activity Flagintent.addFlags(Intent.XXX)FLAG_ACTIVITY_NEW_TASK singleTaskFLAG_ACTIVITY_SINGLE_TOP singleTopFLAG_ACTIVITY_CLEAR_TOP 在此之上的所有的都要出栈FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS 拥有这个标记的Activity原创 2017-07-20 16:51:07 · 566 阅读 · 0 评论