原标题:如何对混淆的Android应用进行渗透测试?

自动工具

在手工开始工作之前,有几个反编译工具和网站可以在很多混淆场景提供帮助。APK Deguard是其中之一。它最大只支持16Mb的APK文件,为了确保不会超过限制有很多资源文件时候就需要删了。这个工具可以识别库文件,所以有时候可以完美地得到重构方法和类名。不过,它也是有很多bug的:时候它生成4个字节大小的类(null)。

使用XPosed框架

XPosed框架

在某些情况下,使用XPosed框架可能更好,可以记录下任何方法,或者替换存在的方法。不过有个比较麻烦的就是每次更新模块都需要重启(或者软重启)。

另外,例如JustTrustMe,可以和很多应用一起使用,用来绕过SSL pinning。但它不是对所有应用起作用。也有人打了补丁可以用了。RootCloak,也可以在很多应用隐藏root信息,但这个模块已经有些时间没更新了。

Frida

Frida是一个有趣的工具。已经有一些基于Frida的有趣的脚本,例如:appmon。

Frida和XPosed都有一个不好的地方:函数内部执行跟踪,例如我们无法在一个方法中打印一个确定的值。

解包和重打包

检查应用是否检查它自己的签名。使用一个锁定bootloader、没有root的真实设备(不是模拟器)。

查找原始字符串

可以用:grep -r const-string smali/来提取所有代码里的所有字符串。

插入日志代码

可以调试一个小项目:反编译字符串和跟踪执行。

在smali文件夹下增加用于调试的smali文件。

手工插入日志代码:

invoke-static {v1}, LLogger;->printObject(Ljava/lang/Object;)V

要打印的寄存器替换v1。

大多数时候,反编译函数在所有地方都有相同的参数和返回值,在这个情况下,签名是:

.method private X(III)Ljava/lang/String;

可以写一个脚本:

1.查找反编译函数

2.插入一个调用来记录字符串

打印反编译函数中的结果字符串是容易的,但有一个问题:这字符串是从哪来的(哪一行,哪个文件)?

可以像这样插入更详细的日志代码:

const-string v1, "Line 1 file http.java"

invoke-static {v1}, LMyLogger;->logString(Ljava/lang/String;)V

但这需要有未使用的寄存器来存字符串(需要追踪现在哪个寄存器是未使用的),或增加本地寄存器数量然后使用最后一个寄存器(在函数已经使用了所有寄存器时不起作用)。返回搜狐,查看更多

责任编辑:

android 测试工程 关闭混淆,如何对混淆的Android应用进行渗透测试?相关推荐

  1. android 测试工程 关闭混淆,混淆Android Test项目以及项目(在发布和混淆版本上运行测试)...

    在阅读赏金的评论之后,我意识到OP实际上只是提出了一些简单的是/否回复,所以我将把我的评论扩展到答案.一般来说,正确设计的proguard.cfg和项目结构足以防止这种困境. 典型的proguard配 ...

  2. 渗透测试-Kali Linux学习(Linux基础、Shell编程、渗透测试软件)

    目录 目录结构 SSH连接 开关机与重启 关机 重启 文件目录 目录 显示/切换 创建与删除 文件 创建 复制 移动 查看 重定向和追加 软链接 查找 备份与压缩 .gz .zip .tar.gz 用 ...

  3. python渗透测试编程技术基础书评_【新手必看】渗透测试学习书籍推荐

    Web综合渗透方向 <Web安全攻防:渗透测试实战指南> 该书出版于2018-7,全书416页,涉及知识面虽广,但90%的知识点都不深入,在新手层面相对深入讲解了SQL注入的利用:知识排序 ...

  4. 《黑客秘笈——渗透测试实用指南》—第1章1.1节搭建渗透测试主机

    本节书摘来自异步社区<黑客秘笈--渗透测试实用指南>一书中的第1章1.1节搭建渗透测试主机,作者[美]Peter Kim(彼得 基姆),更多章节内容可以访问云栖社区"异步社区&q ...

  5. 网络实用技术基础模拟测试2_网络安全工程师教你:Kali Linux之Metasploit渗透测试基础(五)...

    本分享仅做学习交流,请自觉遵守法律法规! 搜索:Kali与编程,学习更多网络攻防干货! 下篇文章将在明天下午五点发布,敬请关注! 一.背景介绍 Metasploit就是一个漏洞框架.它的全称叫做 ...

  6. 基于Android设备的Kali Linux渗透测试教程第1章渗透测试

    基于Android设备的Kali Linux渗透测试教程第1章渗透测试 渗透测试(Penetration Testing)是一种通过模拟攻击者所采用的技术与方法,攻击目标系统的安全控制措施,并取得访问 ...

  7. 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 测试 lib7zr.so 动态库调用 )

    文章目录 一.拷贝 p7zip 源码中的头文件到 Android Studio 项目中 二.完整代码示例 1.Java 层代码 2.JNI 层代码 3.日志头文件 4.执行结果 四.参考资料 前置博客 ...

  8. 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )

    文章目录 I . FFMPEG 交叉编译后的函数库及头文件 II . FFMPEG 静态库打包动态库 ( 仅做参考 ) III . 创建 Android Studio 工程 IV . FFMPEG 头 ...

  9. 年轻人不讲武德!200个网络渗透测试工具大汇总

    最近有粉丝私信我说能不能写一期资料整理的文章 那么....它来了! 以下工具适合渗透测试人员,安全研究人员. 可以通过以下命令检查所有的工具: git clone --recursive https: ...

最新文章

  1. java中将json字符串_Java中JSON字符串与java对象的互换实例详解
  2. android旋转动画开源库,android 围绕中心旋转动画
  3. 上海工程技术大学计算机通信与网络,上海工程技术大学
  4. php开发电商项目的技术,[项目实战] php电商开发基本功课程 电商后台实战开发视频教程 共6章...
  5. java for循环效率优化_java 优雅代码for循环 之性能调优
  6. 主成分分析法怎么提取图片中的字_视频图像的MATLAB处理(2)两种主成分分析方法...
  7. php默认登录文件,PHP 网站修改默认访问文件的nginx配置
  8. 怎么制作真人qq秀_真人秀---搏击赛事新风向标的机与忧
  9. 在vscode中使用opencv
  10. 单片机万年历阴阳历c语言,自己制作的单片机万年历 程序+原理图
  11. Swagger注解传参
  12. 为什么你学不过动态规划?告别动态规划,谈谈我的经验
  13. 未来不迎,当时不杂,过往不乱
  14. 剑网3手游微信52服务器灵霄峡,剑网3指尖江湖灵霄峡宝箱位置详解攻略
  15. Linux常见英文翻译
  16. 微信扫码登入 改变二维码样式
  17. python数据分析培训内容可以_Python数据分析师
  18. 简单BFS 紫书 UVA 1600 巡逻机器人(Patrol Robot)
  19. MiniFly微型四轴开发学习日志(一)——MiniFly 微型四轴软件原理
  20. vue使用xlsx导出excel

热门文章

  1. b2c o2o_企业对消费者– B2C | 第三部分
  2. 有关shift的6大快捷键,同事绝对不会告诉你!
  3. 浪潮服务器自研芯片,5G、AI高度融合发展,浪潮服务器满足各种AI场景应用需求...
  4. No provider available from registry 127.0.0.1:2181 for service com.ddbuy.ser 解决方法
  5. MEG预处理-Brainstorm
  6. Maven: Non-resolvable import POM:Failure to find *** in *** was cached in the local repository.
  7. 分步傅里叶算法_快速分步傅里叶算法,split-step fast Fourier transform,音标,读音,翻译,英文例句,英语词典...
  8. DO447构建高级作业工作流--创建作业模板调查以设置工作的变量
  9. 一个正经的前端学习 开源 仓库(阶段十五)
  10. 信用卡存危险盗刷暗门:利用第三方支付系统漏洞