为什么会引入这个话题,因为在第一次入门的时候发现xxx.apk逆向之后的目录结构很清晰,但是自己新建的demo资源一大堆,当时一脸懵逼,在整合的过程中绕了很多弯路,最后才发现了原因。所以整理出来,方便初次入门的童鞋当做垫脚石。

  1. 新建一个android Empty Activity项目,打包apk,逆向(不懂如何逆向文件的请查看Android逆向工具使用)查看一下res,smali目录结构

    发现了res目录多了很多非项目工程的资源,这是因为AppCompatActivity的aar包包含了很多资源。如果是AndroidX则包在implementation 'androidx.appcompat:appcompat:1.1.0'中,如果是非AndroidX则在implementation 'android.support.v7.app.AppCompatActivity'smali目录多了Android和AndroidX目录,这是因为依赖了Android的依赖项和AndroidX依赖项

  2. 将上述的依赖项去掉,使用Activity替代AppCompatActivity再次查看目录结构:


    发现此时目录结构很干净和我们的项目工程目录基本一致,没有多出多余的资源。

  3. 引入第三方(不包含资源)aar或者jar,此时查看目录结构


    此时发现资源没怎么变化,但是smali里面多了第三方的smali文件。

所以如果我们想在smali中增加自己的aar(非资源型)那么我们只需要将该aar对应的目录结构文件拷贝过来即可

  1. smali文件基本描述:
  • R.smali 资源目录结构
  • R$id.smali 工程使用的资源id,eg:R.drawable.xx,这里是具体数值
  • R$layout.smali 关于layout目录下的资源id
  • R$xxx.smali 关于xx目录下的资源id
  • AdActivity$x.smali AdActivity引用了函数,eg:此处AdActivity引用了MyToast的函数,形成了AdActivity$1.smali文件或者setOnClickListener等操作

android 逆向入门知识相关推荐

  1. Android逆向入门1——引言与抓包

    一个人要走多少路 才能称的上是一个男人 一个Python程序员要绕多少弯 才能找到Android逆向的路 废话不多说,Talk is cheap. 本教程食用指南 主要面向Python爬虫工程师 An ...

  2. Android逆向入门7——Smali语法学习(1)

    这一节我们一起探讨smali语法和smali在Android逆向中的应用,它是Android逆向世界中不可或缺的一部分. 简单的来说,Dex反编译的结果就是Smali,Smali和dex之间的关系,我 ...

  3. Android逆向入门6——定位到小红书Sign算法

    在上一节中,我们猜测小红书自定义了一个拦截器,给每条请求添加了DeviceId.Timestamp等等字段,以及我们心心念念的sign字段. 这一节我们顺着这个思路去尝试定位sign,看看猜测是否有误 ...

  4. 什么是Android逆向?如何学习安卓逆向?Android逆向自学笔记入门到实战

    简单地来说,安卓逆向是对已经打包好的APP进行反编译.源码分析了解APP实现逻辑的一门技术.我们可以把安卓安装时用到的APK文件看作一个加密后的压缩包,逆向就是要最大程序地还原出APK打包之前的源码. ...

  5. Android 移动安全知识技术全解(加固技术、常规漏洞、Android 逆向......),移动安全问题不容忽视

    前言 您的设备是否处于遭受攻击.劫持或损害的风险中?毫无疑问.剑桥大学的研究人员发现,87% 的 Android 智能手机有至少一个严重漏洞,Zimperium Labs 在早些时候发现,黑客只需通过 ...

  6. GitHub上这份《Android 移动安全知识技术全解》火了~

    安全问题长久以来就是Android系统的一大弊病,很多人也因此舍弃Android选择了苹果,作为一个Android Developer,我们需要对用户的隐私负责,更需要对用户的数据安全倾尽全力.想到这 ...

  7. Android逆向 学习Android安全和逆向开发的路线总结,啃下这些Framework技术笔记

    此篇整理了最完整的–Android逆向学习线路知识体系.希望给迷糊的入门者指出一个明确的方向. 真心建议:先正向开发几年再搞逆向吧--正向都不会破解的是啥?不看代码只会脱壳?只会xposed ?远远不 ...

  8. Android逆向 学习Android安全和逆向开发的路线总结,android开发平台的发展

    学习Android逆向之前,必备条件.[必备,出去面试正经公司的安全岗位都会问的基础问题] 从事3-5年真实的Android开发工作,熟练使用C/C++,Java,kotlin,dart等Androi ...

  9. Android逆向 小米5X 抓包调试 环境配置

    1. 线刷救砖 2. 解除BL锁 3. 一键刷入recovery工具 刷机教程 4. 刷机需要安装的 安装包 和 面具 adb push E:\Download\shuaji\AospExtended ...

最新文章

  1. zabbix 乱码的问题
  2. 社交网络图挖掘3--重叠社区的发现及Simrank
  3. ajax请求目标地址,AJAX功能目标
  4. 【Linux基础】 Redhat6.5中OpenOffice的安装
  5. hduoj2094产生冠军
  6. 使用wss和HTTPS / TLS保护WebSocket的安全
  7. mysql索引为啥要选择B+树 (下)
  8. python桌面开发吐血_想用java写个桌面小demo,就布局都差点写吐血了,学艺不精...
  9. 2018年Java展望
  10. PSIM软件学习---06 元件参数文件应用
  11. 利用sdkman安装kotlin和java环境
  12. 小学计算机应用能力考核记录,中小学教师信息技术应用能力校本应用考核规范...
  13. [深度学习] 深度学习常见概念
  14. 病毒周报(100201至100207)
  15. jsp高校科研管理系统servlet设计
  16. android 锁屏壁纸时钟,桌面锁屏时钟下载-桌面锁屏时钟app安卓版v2.8.0-七度网
  17. 网路岗v1.2简单使用
  18. 单元格下拉全选快捷键_excel全选快捷键是什么,excel表格全选快捷键是什么?...
  19. Matlab中的数据类型
  20. 【ES实战】ES上的安全性运行方式

热门文章

  1. 什么是jQuery?jQuery有什么用?
  2. java中的逆变、协变、不变概念讲解转载自http://www.cnblogs.com/en-heng/p/5041124.html,感谢编程路上的前辈们!
  3. 告诉你怎样选择虚拟主机!
  4. 先验 超验_什么是“先验”?什么是“超验”?二者如何区分?
  5. VMware公司成为Linux基金会金牌会员
  6. 进程管理(二十二)—CFS调度器
  7. UE4开发PSVR游戏,使用RazorGPU进行调试的方法
  8. 静态页面-HTML5+CSS大作业——传统节日--中秋节(2页)
  9. 使用qqbot,群发好友消息以及打广告
  10. 完美世界GameJam参加报告——《解字》游戏的设计与开发