apk分析 1
配置抓包工具
关闭捕获主机通讯关闭 
 
配置:

 
在手机端进行配置
进入wifi设置,长按网络 高级选项->手动设置代理
高级选项->手动设置代理
 测试是否设置成功,手机上随便开应用看抓包器是否有反应
测试是否设置成功,手机上随便开应用看抓包器是否有反应 
打开抓包目标apk(恋恋,登录)


 
目标找出加密算法
使用AndroidKiller反编译
 
使用geb工具查看(使用前必须配置环境),geb打开目标apk
 
根据上文分析ctrl+f查找字符串
 
大致浏览反编译后的java代码
 猜测肯能是字符串加密函数跟进
猜测肯能是字符串加密函数跟进 查看encryptString()发现调用so文件,
查看encryptString()发现调用so文件, 浏览整个代码
浏览整个代码 根据System.loadLibrary(“jni”)确定调用的so文件名是(lib+jni+so格式)“jni”。
根据System.loadLibrary(“jni”)确定调用的so文件名是(lib+jni+so格式)“jni”。
使用IDA分析
记载后根据分析在exports中查找导出的接口encryptString()函数命名规则 
查看IDA反编译后的代码,导入jni.h头文件
 
根据JNI的接口,在exports定位目标函数 ,导入之后修改导出函数的参数,前两个参数一般是固定
,导入之后修改导出函数的参数,前两个参数一般是固定
 
  浏览整个函数代码
浏览整个函数代码
 隐藏类型转换,
隐藏类型转换, 猜测是初始化, 跟进查看
猜测是初始化, 跟进查看 根据代码分析可知,此函数初次调用进行初始化,再次调用直接返回key,则进一步分析initAddr()函数,jniStr是
根据代码分析可知,此函数初次调用进行初始化,再次调用直接返回key,则进一步分析initAddr()函数,jniStr是 字符串,对initInflect()函数分析,对相应的参数重新设定类型,得到
字符串,对initInflect()函数分析,对相应的参数重新设定类型,得到 调用java层com.Reflect.func函数。使用geb定位查看
调用java层com.Reflect.func函数。使用geb定位查看
 字符串转换成16进制,initInflect()将输入的字符串“/key-i im lianai”+ alien。
字符串转换成16进制,initInflect()将输入的字符串“/key-i im lianai”+ alien。
注入smali代码输出信息
跟据上述分析,在java层返回到最初定位字符串加密代码的地方 查看引用的函数,发现只有这一处,则在此处进行smali注入,在Androidkill插入定位代码位置插入smali使用的log封包将相关的smali文件复制到相同文件夹下,插入代码并编译运行查看输出信息。
查看引用的函数,发现只有这一处,则在此处进行smali注入,在Androidkill插入定位代码位置插入smali使用的log封包将相关的smali文件复制到相同文件夹下,插入代码并编译运行查看输出信息。
使用ddm查看输出信息(说明:静态函数的参数从p0开始,动态函数参数从p1开始) 注意:使用AndroidKill反编译时先保存
 
至此确认分析的代码是该apk的帐户密码的加密函数
apk分析 1的更多相关文章
- Android平台APK分析工具包androguard的部署使用和原理分析
		原创文章,转载请注明出处,谢谢. Android应用程序分析主要有静态分析和动态分析两种,常见的静态分析工具是Apktool.dex2jar以及jdgui.今天突然主要到Google code上有个叫 ... 
- APK瘦身记,如何实现高达53%的压缩效果
		作者:非戈@阿里移动安全 1.我是怎么思考这件事情的 APK是Android系统安装包的文件格式,关于这个话题其实是一个老生常谈的题目,不论是公司内部,还是外部网络,前人前辈已经总结出很多方法和规律. ... 
- android应用程序fps meter[帧数显示]的分析 —— 浅谈root的风险 (1)
		fps meter是常用的检测帧率的软件,该软件需要root权限才能工作,一直比较好奇它一个apk是如何知道系统当前的帧率情况的,就针对此apk分析了一下其工作原理. Apk组成 首先看一下apk的组 ... 
- Android安全专项-利用androguard分析微信
		androguard Androguard经常使用API学习1 安装 做 Android 安全測试之前你应该知道的工具 (一) 分析 ./androlyze.py -s进入分析的交互界面 然后运行 a ... 
- [android]android下apk的安装过程
		/********************2016年4月23日更新********************************/ 知乎:有什么apk分析工具? 拿到了一个apk文件,怀疑不安全,在 ... 
- Android APK反编译(一)
		apk是安卓工程打包的最终形式,将apk安装到手机或者模拟器上就可以使用APP.反编译apk则是将该安卓工程的源码.资源文件等内容破解出来进行分析. 一.APK反编译基本原理 1.APK分析 apk文 ... 
- 对HUAWEI-ManagedProvisioning的一次不完整分析
		分析思路 关注点1:AndroidManifest.xml是Android应用的入口文件,包含有APP服务的权限.广播和启动位置. 关注点2:涉及到修改系统的函数,setWifiEnabled().I ... 
- APK瘦身记,怎样实现高达53%的压缩效果
		作者:非戈@阿里移动安全,很多其它技术干货.请訪问阿里聚安全博客 1.我是怎么思考这件事情的 APK是Android系统安装包的文件格式.关于这个话题事实上是一个老生常谈的题目.不论是公司内部.还是外 ... 
- Xposed的新打开方式--Xpatch工作流程分析
		1. Xpatch概述 Xpatch是一款利用重打包的方式,使得被处理的Apk启动时自动加载Xposed模块,来实现应用内Hook的工具. 项目地址:https://github.com/WindyS ... 
随机推荐
- xwiki 知识管理系统
			搭建一个知识管理平台, 用于知识库管理/规范管理, 可以作wiki, 可以将word/excel等导入进去, 支持全文搜索, 可以记周报, 会议纪要. 现在有很多文档管理系统, 比如阿里的语雀.腾讯的 ... 
- [b0031] python 归纳 (十六)_线程同步_锁
			# -*- coding: utf-8 -*- """ 学习 多线程同步 使用锁 threading.Lock() 逻辑: 2 个线程,操作同一个整型变量,一个加法,另外 ... 
- Redis之自问自答
			Q:Redis客户端的批处理大量数据请求时,如何优化请求速率? A:管道技术:Redis是基于客户端-服务端模型的TCP请求/响应服务,且是阻塞式的,客户端需要等待服务端处理完数据后返回状态,才能继续 ... 
- 设备树处理之——device_node转换成platform_device【转】
			转自:https://www.cnblogs.com/downey-blog/p/10486568.html 以下讨论基于linux4.14,arm平台 platform device 设备树的产生就 ... 
- yum update 执行报错: error : unpacking of archive failed on file /usr/.../...;5d26ff7c: cpio : symlink
			早前已发现有台机一直在报这么个错误, 一用yum update 就报一堆: Error: unpacking rpm package ..... error: xxxx : install faile ... 
- CodeForces - 1251B (思维+贪心)
			题意 https://vjudge.net/problem/CodeForces-1251B n个01串,可以任意交换任意两个字符串的字符任意次,问最多能有多少个回文串. 思路 分类讨论可以发现规律: ... 
- 组装数据- 对象里面是key:value,  value里面是数组的形式,如  {key:[aa,bb], key:[cc,dd]}
			组合后 对象里面是key:value,value里面是数组的形式{key:[aa,bb], key:[cc,dd]} var chinaGeoCoordMap = { '无锡市': [121.4648 ... 
- Object的多种方法
			Object.entries() Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-i ... 
- go语言的redis客户端
			redis3.0之后提供了新的HA的解决方案,即Cluster模式,由多个节点组成的集群模式.集群master之间基于crc16算法,对key进行校验,得到的值对16384取余,就是key的hash ... 
- Redis与python
			一.Redis介绍 Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库(非关系型数据库). 本质:将数据保存在内存中. 用途:缓存.消息队列. 1.Redis的特点 R ... 
