哔哩哔哩:https://www.bilibili.com/video/BV1UE411A7rW?p=34

具体用法,看视频教程( 去掉 RE 的 结束广告

6 种定位关键代码的方法,当然还有其他方法,以后遇见了补充上:

  • 1. 信息反馈法( 资源id / 字符串 )。根据程序正常运行的提示信息进行定位,例如:错误提示运行提示等等。可以在程序中直接搜索字符串,当提示信息在 String.xml 资源文件中的时候,可以根据 R.java 的映射文件,查找对应的资源id,然后在 smali 或者在 ida 窗口中进行搜索
  • 2. 特征函数法( api 函数 )。根据程序提示信息的方法,在对应的 Android 的 API 下断点,通过 API 来检索相关的代码。
  • 3. 顺序查看法(分析程序执行流程 / 病毒分析)。从 AndroidManifest.xml 中找到 主 Activity 界面,然后顺序分析代码,通常在分析病毒软件时使用。( 通过 UI 进行分析, adb shell dumpsys activity top )
  • 4. 代码注入法。( 动态调试 / 插入log / 查看logcat / 分析加解密 )。动态调试,又叫插桩,即在关键反汇编代码处插入可以输出 logcat 调试信息的代码
  • 5. 栈跟踪法( 动态调试 / 函数调用流程 )。栈跟踪法属于动态调试的方法,原理是输出运行时栈调用跟踪信息,然后查看函数调用序列来理解方法的执行流程
  • 6. Method Profiling( 动态调试 / 热点分析 / 函数调用流程 )。动态调试方法。主要用于热点分析和性能优化。除了可以记录每个函数赵勇的CPU时间外,还可以跟踪所有的函数调用关系,并提供比栈跟踪法更详细的函数调用序列报告。

快速定位关键代码:

1.分析流程搜索特征字符串搜索关键api通过方法名来判断方法的功能2.快速定位关键代码反编译 APK 程序,AndroidManifest.xml => 包名/系统版本/组件程序的主 activity(程序入口界面)每个 Android 程序有且只有一个 主Activity分析程序的执行流程需重点关注的 applicationapplication 执行时间授权验证3.定位关键代码的技巧信息反馈法 ( 资源id/字符串 )特征函数法 ( api函数 )顺序查看法 ( 分析程序执行流程 / 病毒分析 )代码注入法 ( 动态调式 / 插入log / 查看logcat/分析加解密 )栈跟踪法   ( 动态调式 / 函数调用流程)Method Profiling ( 方法剖析 => 动态调式 / 热点分析/ 函数调用流程 )

Android逆向工程:实战!讲解在Smali代码中如何快速定位找到关键代码

https://blog.csdn.net/qq_34149335/article/details/82491997

安卓逆向_7 --- 六种快速定位关键 Smali 代码的方法 ( 去掉 RE 广告 )相关推荐

  1. 安卓逆向_13 --- AndroidStudio + Smalidea 动态调试 smali 代码【APK可调试】、gradle 配置

    教我兄弟学Android逆向04 动态调试smali代码:https://www.52pojie.cn/thread-658865-1-1.html From:Android Studio 3.6 调 ...

  2. cmd窗口快速定位到具体文件夹方法

    在用Python进行机器实战时,打开cmd窗口后,总是到定位到kNN.py所在文件夹才能Python(否则import kNN失败),每次都要输入地址非常麻烦 这里介绍一个cmd窗口快速定位到具体文件 ...

  3. Zen Coding: 一种快速编写HTML/CSS代码的方法

    译自:Smashing Magazine 中文:Zen Coding: 一种快速编写HTML/CSS代码的方法 请尊重版权,转载请注明来源! 在本文中我们将展示一种新的使用仿CSS选择器的语法来快速开 ...

  4. Android Studio(3.6.2版本)不使用插件查看smali代码的方法

    Android Studio(3.6.2版本)不使用插件查看smali代码的方法 1.app->build->outputs->apk->debug->app-debug ...

  5. 推荐一个快速定位深度学习代码bug的炼丹神器!

    文 | McGL 源 | 知乎 写深度学习网络代码,最大的挑战之一,尤其对新手来说,就是把所有的张量维度正确对齐.如果以前就有TensorSensor这个工具,相信我的头发一定比现在更浓密茂盛! Te ...

  6. 使用MAP文件快速定位程序崩溃代码行

    作为程序员,平时最担心见到的事情就是程序发生了崩溃,无论是指针越界还是非法操作,都将给我们的应用系统 造成巨大的损失.但在一个大型系统的测试过程中,初期出现程序崩溃似乎成了不可避免的事.其实测试中出现 ...

  7. 使用MAP文件快速定位程序崩溃代码行(转)

    作为程序员,平时最担心见到的事情就是程序发生了崩溃,无论是指针越界还是非法操作,都将给我们的应用系统造成巨大的损失.但在一个大型系统的测试过程中,初期出现程序崩溃似乎成了不可避免的事.其实测试中出现程 ...

  8. 安卓逆向_18 --- APK保护策略【Java代码混淆、资源混淆、签名校验】

    Java 代码混淆介绍:https://www.bilibili.com/video/BV1UE411A7rW?p=60 Android 反编译利器 jadx:GitHub上直接下载:https:// ...

  9. 开发webgl应用时,cesium快速定位相机角度、相机位置的方法

    在用cesium开发webgl应用时,相机的角度和位置需要调整来,调整去,很是耗费时间, 下面的方法是快速获取想要角度的方法: 把模型加入到页面后,把相机的参数打印出来,点击F12,调整好角度.位置后 ...

最新文章

  1. 中学计算机老师 当领导可能性,求分享,当中学计算机老师带信息学奥赛是怎样的感受 - 信息科学技术学院(EECS)版 - 北大未名BBS...
  2. SQLSERVER2005安装说明
  3. 1.11 神经网络的权重初始化-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  4. mysql去重合并字符串,SQL编程:group by合并结果字符串 --- group_concat函数就能行...
  5. SQL基础操作_8_基础概念
  6. AS3 调用外部SWF中元件库中的元件 【转】
  7. Nginx之虚拟服务器配置
  8. ConcurrentHashMap原理
  9. flink 1.9.0 编译:flink-shaded-hadoop-2 找不到
  10. pytorch dataset读取数据流程_10条PyTorch避坑指南
  11. 异常检测 and GAN网络(2)
  12. mysql 索引失效情况总结
  13. 入门编程(小白写代码的神器)
  14. 如何在DW中运行PHP文件
  15. linuxcentos6笔记
  16. chatty: uid=10549(u0_a549) com.exampleidentical 40 lines
  17. 怎么用EDIUS将静帧图片做出动态特效
  18. 单片机实例2——模拟开关灯(硬件电路图+汇编程序+C语言程序)
  19. java考试成绩平均计算_Java计算平均成绩
  20. [一般问题] s60 3rd 模拟器无法启动(转)

热门文章

  1. 【萌味】小夕说,不了解动态空间增长的程序喵都是假喵(中)
  2. 新年彩蛋:Spring Boot自定义Banner
  3. beeshell —— 开源的 React Native 组件库
  4. BAT研发Java面试36题总结:Spring+Redis+Docker+Dubbo
  5. 简单Nlp分析套路,获取数据(爬虫),数据处理(分词,词频,命名实体识别与关键词抽取),结果展现
  6. 【Java】Junit、反射和注解的笔记
  7. Java面试知识点:File、IO流
  8. Unity Shader 2D水流效果
  9. 转 从红帽、GitHub和Docker看开源商业模式的进阶
  10. oracle的基本数据类型(转载)