dex

深入学习性能优化--面试使用

非 Y 不嫁゛ 提交于 2020-09-29 07:18:25
转载地址 1、 你对 APP 的启动有过研究吗? 有做过相关的启动优化吗? 程序员: 之前做热修复的时候研究过 Application 的启动原理。项目中也做过一些启动优化。 面试官: 哦,你之前研究过热修复? (这个时候有可能就会深入的问问热修复的原理,这里咱们就不讨论热修复原理) 那你说说对启动方面都做了哪些优化? 程序员: 1 .我发现程序在冷启动的时候,会有 1s 左右的白屏闪现,低版本是黑屏的现象,在这期间我通过翻阅系统主题源码,发现了系统 AppTheme 设置了一个 windowBackground ,由此推断就是这个属性捣的鬼,开始我是通过设置 windowIsTranslucent 透明属性,发现虽然没有了白屏,但是中间还是有一小段不可见,这个用户体验还是不好的。最后我观察了市面上大部分的 Android 软件在冷启动的时候都会有一个 Splash 的广告页,同时在增加一个倒数的计时器,最后才进入到登录页面或者主页面。我最后也是这样做的,原因是这样做的好处可以让用户先基于广告对本 APP 有一个基本认识,而且在倒数的时候也预留给咱们一些对插件和一些必须或者耗时的初始化做一些准备。 Ps:这里会让面试官感觉你是一个注重用户体验的 2 .通过翻阅 Application 启动的源码,当我们点击桌面图标进入我们软件应用的时候,会由 AMS 通过 Socket 给

Android平台dalvik模式下java Hook框架ddi的分析(2)--dex文件的注入和调用

巧了我就是萌 提交于 2020-08-20 06:37:16
本文博客地址: http://blog.csdn.net/qq1084283172/article/details/77942585 前面的博客《 Android平台dalvik模式下java Hook框架 ddi 的分析(1) 》中,已经分析了dalvik模式下 ddi 框架Hook java方法的原理和流程,这里来学习一下ddi框架代码中涉及到的 dex文件的注入和调用。将一个Android的so库文件跨进程注入到另一个进程中,在so库文件的实现里,我们可以做很多的事情,例如:inline Hook,java方法的Hook,dex文件的注入和调用,ndk的jni函数的Hook等等。 1 .ddi框架在进行dex文件的注入和调用是在原来dalvik模式下java方法Hook的基础上修改过来的,在 hijack注入工具将android so库文件注入到目标pid进程时实现android的inline Hook操作,为了保证android的inline Hook操作的顺利执行,需要为注入到目标pid进程中android so库文件定义 .init段或者.init_array段的构造函数,如下图中的my_init构造函数;在inline Hook操作的自定义函数my_epoll_wait里进行dalvik虚拟机模式下的java方法Hook操作。 代码的流程梳理如下: 1.

在SimpleChain上开发defi项目

老子叫甜甜 提交于 2020-08-19 20:30:27
在SimpleChain上开发defi项目 最近一段时间defi项目异常火爆,基于以太坊上的DEX,稳定币,借贷,合成资产,信用授权,以及保险等应用。这些应用在整个区块链行业如雨后春笋一般,迁移到各个公链上面。这里面的主要涉及的应用和技术如下: markDao是开创defi应用的鼻祖,它是行业最先设计出抵押以太坊生成锚定美元的稳定币Dai。随后衍生出了存Dai生息,以及去中心化交易所Dex。它的核心优势就是稳定币。 稳定币除了MarkerDao的Dai模式,还有ampl的算法类稳定币,通过算法产生稳定币。 用户参与人数最多的就是dex,dex降低了对项目方的标准。项目方可以自己发行ERC20代币,自己提供流动性。然后上到dex上,用户可以直接在dex上购买代币。不像传统代币流通那么复杂化。 yearn.finance是一个人人都可以在上面投入资金的平台,会由经理来帮助用户将资金引导到收益最高的DeFi产品中。相当于一个为defi提供流动性的工具。 defi不得不依赖的一个链外工具和访问的中间件,它分别解决了 是或否 和 数据是多少 两类问题,从而实现了智能合约对外部数据的调用。它既可以从原生的链上获取数据,也可以通过爬虫或者可信第三方机构从链下获取数据。理想的预言机网络应当满足五个条件:数据调用是基于双方相互信任且不可篡改的、数据调用的高效性、数据调用的安全性

apk 反编译

时光总嘲笑我的痴心妄想 提交于 2020-08-18 21:11:03
apk 反编译 - 最新版图文教程 结合网上众多教程,整理一篇自己操作的,工具都是目前最新版 apk 反编译也就是将打包后的 apk 反编译为资源文件(图片)、layout、样式、相关的实现代码等。(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,学习) 后续也会再整理一篇防止反编译的教程 转载请注明出处 一、准备工具 提示:这些工具在官网都不好下载,偶也是废了好大力气呢,建议直接下载我提供的网盘链接 (1) 使用工具介绍: 1.apktool 最新版 jar 包 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 2.dex2 jar 的zip包 作用:将apk反编译成java源码(classes.dex转化成jar文件) 3.jd-gui 工具 作用:查看APK中classes.dex转化成出的jar文件,即源码文件 (2) 使用工具下载与安装: 1.apktool_2.3.4 jar 包(2018.10.31 目前最新版) 百度网盘地址: https://pan.baidu.com/s/1Vp6PDUc9dfgN0QPtwFp4Zw 密码:c8n3 官网下载地址: https://bitbucket.org/iBotPeaches/apktool/downloads/ 2.dex2 2.0 jar 包(2018.10.31

apk 反编译

偶尔善良 提交于 2020-08-18 06:32:20
apk 反编译 - 最新版图文教程 结合网上众多教程,整理一篇自己操作的,工具都是目前最新版 apk 反编译也就是将打包后的 apk 反编译为资源文件(图片)、layout、样式、相关的实现代码等。(注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,学习) 后续也会再整理一篇防止反编译的教程 转载请注明出处 一、准备工具 提示:这些工具在官网都不好下载,偶也是废了好大力气呢,建议直接下载我提供的网盘链接 (1) 使用工具介绍: 1.apktool 最新版 jar 包 作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看 2.dex2 jar 的zip包 作用:将apk反编译成java源码(classes.dex转化成jar文件) 3.jd-gui 工具 作用:查看APK中classes.dex转化成出的jar文件,即源码文件 (2) 使用工具下载与安装: 1.apktool_2.3.4 jar 包(2018.10.31 目前最新版) 百度网盘地址: https://pan.baidu.com/s/1Vp6PDUc9dfgN0QPtwFp4Zw 密码:c8n3 官网下载地址: https://bitbucket.org/iBotPeaches/apktool/downloads/ 2.dex2 2.0 jar 包(2018.10.31

阿里早期Android加固代码的实现分析

╄→尐↘猪︶ㄣ 提交于 2020-08-18 05:42:55
本文博客地址: http://blog.csdn.net/qq1084283172/article/details/78320445 看雪上有作者(寒号鸟二代)将阿里移动早期的Android加固进行了逆向分析,得到了能够运行成功的NDK代码,主要是基于第2界阿里移动破解大赛的apk逆向分析出来的,文章的原地址《 阿里早期加固代码还原4.4-6.0 》。周末有空仔细阅读和分析了一下作者寒号鸟二代给出的逆向还原的代码,发现阿里移动的Android加固在dalvik虚拟机模式下dex文件的加载方案和看雪上的一些作者给出的方案一样,具体可以参考桃园小七的博客《 APK加壳【2】内存加载dex实现详解 》;在Art虚拟机模式下,鉴于Art虚拟机的复杂和兼容性考虑,dex文件的加载方案做不是很底层。尽管Android加固的原理分析已经比较多了,但是为了进一步感受Android加固的产品化,还是有必要学习一下阿里移动加固早期Android加固的代码实现。 1. 阿里移动早期Andorid加固外壳apk应用java层代码的实现如下,为了增加apk应用的逆向难度,Android加固的外壳apk应用的Application类的代理实现子类StubApplication的成员函数attachBaseContext和成员函数onCreate的实现被放在Native层

Dalvik模式下基于Android运行时类加载的函数dexFindClass脱壳

◇◆丶佛笑我妖孽 提交于 2020-08-17 20:08:04
本文博客地址: http://blog.csdn.net/qq1084283172/article/details/78003184 前段时间在看雪论坛发现了《 发现一个安卓万能脱壳方法 》这篇文章,文章说的很简略,其实原理很简单也很有意思,说白了还是dalvik虚拟机模式下基于Android运行时的内存dex文件的dump,对一些免费版本的加固壳还是有效果的,dalvik模式下二代之后的加固壳就不行了。文章脱壳的原理涉及到dalvik模式下dex文件的类查找和加载的过程,下图是dalvik模式下dex文件的类查找和加载的流程示意图(native层的实现): Dalvik虚拟机模式下Android普通apk应用的类方法的调用过程: 先通过类方法所在类的类签名字符串查找到指定的目标类的 ClassObject描述对象,然后通过查找到的目标类对象 ClassObject 查找获取到该类方法的描述结构体Method,再通过类方法描述结构 体Method 进行来方法的调用。dalvik模式下基于 dexFindClass 函数脱壳的原理就是在指定类签名字符串目标类的查找和加载过程中寻找脱壳点, 从 Dalvik_dalvik_system_DexFile_defineClassNative函数 --> dvmDefineClass函数 --> findClassNoInit函数 -->

抖音xlog算法最新版解析

喜你入骨 提交于 2020-08-17 15:53:34
前言: 抖音xlog接口用于收集设备环境数据,主要用于检测设备环境是否“合规”,也就是大伙经常听到的过“风控”!xlog接口的body是加密后的设备环境数据,加密通过xlog算法加密。目前抖音APP最新版12.x依然还是用的02算法,此算法抖音官方老长时间没更新了...... “众所周知”: 抖音xlog算法是在native层,无法通过反编译dex获取到具体算法实现,xlog算法大概逻辑是: 1、将传入参数转成byte数组; 2、对压缩后的byte数组进行加密处理。 具体实现: 看看解密结果: 抓取xlog接口中02开头的body进行解密: 我的wx:YY_yhzf,需要算法可加我wx,一起进步一起探讨! 来源: oschina 链接: https://my.oschina.net/u/4355104/blog/4500800

andorid jar/库源码解析之apktool.jar

最后都变了- 提交于 2020-08-17 12:54:13
目录: andorid jar/库源码解析 Apktool.jar:   作用:     1、用于对APK文件进行解包,成可以读的smali和xml,png等资源文件。     2、同时,把解码之后的数据,重新打包成APK文件。   栗子:     使用命令的方式使用     1、apktool d xxx.apk // 解码 apk文件     2、apktool b xxx // 打包 xxx文件称apk文件   源码解读:    解包文件:   1、识别传入的参数,通过(DefaultParser)处理与设定的命令逻辑。   2、创建(ApkDecoder)类对象,执行(decode),用于执行解包     2.1、判断是否存在(resources.arsc)文件。     2.2、判断是否存在(AndroidManifest.xml)文件。     2.3、创建(AndrolibResources)对象,对AndroidMainifest.xml进行解密(由于,打包的apk中,的AndroidMainifest.xml是特定编码之后的格式,所以需要调整。       2.3.1、创建(XmlPullStreamDecoder)对象,来处理XML文件。       2.3.2、处理其他文件夹的xml。res.R.r等。     2.4、判断是否存在(classes.dex

开启Android Apk调试与备份选项的Xposed模块的编写

这一生的挚爱 提交于 2020-08-17 05:40:37
本文博客地址: https://blog.csdn.net/QQ1084283172/article/details/80963610 在进行Android应用程序逆向分析的时候,经常需要进行Android应用程序的动态调试,一般情况下基于Android应用程序的安全性考虑,发布版的Android应用程序都会关闭它的调试选项,因此只有开启该Android应用程序的调试选项,才能在Android应用程序的Activity界面显示之前(即Application类的attach函数和onCreate函数执行之前)使Android应用程序处于暂停等待调试的状态,并且没有开启调试选项的Android应用程序通过DDMS工具是看不到进程的。 Android应用程序支持dex代码调试的条件 : 上面提到的两种开启Android应用程序调试选项的方法都不是最佳的,作者泉哥编写了一个基于Xposed框架实现的开启APK调试与备份选项的Xposed模块,只要在Android系统上成功安装了Xposed框架,再安装和激活泉哥编写的 BDOpener插件 重启Android系统就可以开启Android应用的dex代码调试模式。之前我曾尝试过修改Android系统源码的方法开启Android应用的dex代码调试模式,但是效果不好,影响到Android系统app的启动,需要过滤Android系统应用。