安卓算法逆向
‘壹’ 关于安卓逆向你需要知道的工具及网站
关于安卓逆向你需要知道的工具及网站
把最近接触到的安卓逆向相关的工具和网站总结下,供需要者拿去使用,还有不全和遗漏后续会不断完善。
工具篇章
模拟器(动态调试需要用真机)
安卓原生模拟器:Android Studio自带的
夜神:今天开始尝试这个模拟器,发现在ida挂载进程时出现了问题,挂不上,架构为x86,不能用ida调试。 地址https://www.yeshen.com/
逍遥:还未使用 地址http://www.xyaz.cn/
蓝叠(bluestack): 地址http://www.bluestacks.cn
雷电模拟器
apk反编译套件工具
jeb:今天开始尝试这个工具 地址https://www.pnfsoftware.com/
YouGais:以前我一直使用这个,没有官网地址,免费版功能受限
打包及签名工具
apktool:apk拆包打包工具 地址https://ibotpeaches.github.io/Apktool/install/
jd-gui:java反编译工具 地址http://jd.benow.ca/
aotusign:自动签名工具,没有官网网络即可
native文件反编译工具
ida:静态分析、动态分析,免费版功能受限 地址https://www.hex-rays.com/
gdb:http://ftp.gnu.org/gnu/gdb/
辅助调试工具
adb:通向手机或模拟器的桥梁,绿色小程序。最常用的就是查看logcat,进入手机shell等。 地址http://adbshell.com/downloads
ddms:android SDK中自带工具。该工具可以查看手机模拟器的进程,选中需要监控的进程后,会出现绿色小蜘蛛图标,同时后面会出现8700端口号。
jdb:jdk目录下自带的与安卓进程连接的程序,常与ddms配合用于动态调试
xposed:需要安装框架+模块,还有对应的xposed市场。可以在常用市场搜索安装。bluestack中安装后变砖了,夜神中安装正常。
十六进制文件编辑工具
UltraEdit:十六进制文件编辑工具
010Edit:还没有用过
winhex:印象中很久前用过
android开发工具
Android Studio
Eclipse
Aide(手机版开发工具)
其他
解压缩软件:winrar、7zip等等都可以,将apk改名为zip就能直接打开
社区资料篇章
论坛及社区
看雪论坛:https://bbs.pediy.com/forum-161.htm
freebuff:http://www.freebuf.com/articles/terminal
还有吾爱破解、知乎、、CSDN等等都有相应版块内容及文章可供学习。
arm指令
官方文档pdf:
https://silver.arm.com/download/ARM_and_AMBA_Architecture/AR570-DA-70000-r0p0-00rel2/DDI0406C_C_arm_architecture_reference_manual.pdf
在线编译网站
c到汇编在线转换
https://gcc.godbolt.org/
汇编到操作码在线转换
http://armconverter.com/
‘贰’ 想学安卓的逆向,有推荐的视频吗,自学
可以去极客学院看看
‘叁’ 学安卓逆向要会java吗
确切来说安卓应用层是用java写的,不存在逆向的说法,应该说基于java语言开发,当然了安卓应用也可以用C++编写,所以会这两项语言是基础。
‘肆’ 什么是安卓逆向安全工程师
你好,安卓逆向一般指的是做安卓逆向开发,职位也类似于正向开发的JAVA程序员;但是需要具备很多的知识储备,JAVA正向开发,底层的C,汇编语言,了解各种协议算法加解密,会脱壳加固,比较多哈。但是这类资深大牛的工资都是年薪计算的;正向开发的人员相对饱和,逆向工程师的需求也很大。通俗的给你总结就是,可以做做软件的破解与防破解,游戏的破解与防破解,你可以看到很多的大牛都做过游戏辅助这种东西,毕竟攻与防是相互的,所以方向在于自己。难的肯定难学,但是坚持下来的都是王者!
‘伍’ 安卓逆向课程推荐
以下排名不分先后
1.看雪安卓逆向课程2万班
2.看雪安卓逆向课程3万班
3.易锦安卓逆向10期
4.易锦游戏逆向12期,13期
详细的课程链接请看:
安卓逆向课程
‘陆’ 如何系统的学习安卓逆向分析
首先,逆向分析是一门技术,也是一门艺术。
其次,安卓逆向同样可细分为应用层APK逆向、安卓设备框架、内核驱动等逆向、基于安卓的硬件产品逆向等。此处假定楼主说的是第一种逆向。
应用层的逆向分析根据需求的不同,又可细分成APK流程逆向与功能逆向。
流程逆向通常是指简单的对APK运行流程进行分析,此类分析通常可以使用将APK置于沙盒环境中运行捕捉并查看运行结果。这种逆向需求通常不是很多,典型的工种有杀软厂商的病毒分析工程师。
功能逆向相比流程逆向则困难得多。但需求比较普遍。实际逆向分析过程中对功能实现的理解,在很大程度上取决于逆向人员相关的软件开发知识。比如,分析Android程序的JAVA代码就需要掌握基本的Android软件开发的知识。分析so库的代码就需要了解C/C++相关的so库开发的知识。除了基本开发相关的能力外,逆向分析人员还需要具备以下知识:
ARM/X86/MIPS汇编语言-分析so库时可能需要阅读大量的反汇编代码。
常见逆向分析工具的使用-JDGUI/IDA PRO/APKTOOL/JEB/DEX2JAR
常用的安卓程序调试与反调试手段-调试器检测与反检测/脱壳/反混淆
常用的加密与解密算法-好的逆向分析人员需要有快速识别常见加密解密算法的能力
最后,就是多动手,多动手练习是掌握逆向分析技术最好的方法。
‘柒’ 什么是安卓逆向
安卓逆向就是将安装包apk文件还原成打包前的样子。
android代码和资源编译打包会形成安装包apk,反过来就是逆向了。
‘捌’ Android逆向书籍推荐有哪些
如下:
1、丰生强《Android软件安全权威指南》,2019年3月出版。
2、姜维《Android应用安全防护和逆向分析》,2018年1月出版。
3、丰生强《Android软件安全与逆向分析》,2013年2月出版。
1和3作者都是丰生强(非虫大神),里面有很多相同的内容,但1比3新增了这六年间新出的技术,2中作者说有几章是非虫的支持。
介绍
安卓(Android)是一种基于linux内核(不包含GNU组件)的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
‘玖’ 安卓逆向学了可以做什么,对于转行待遇如何
●接口设计。由于互操作性,逆向工程被用来找出系统之间的协作协议。
●军事或商业机密。窃取敌人或竞争对手的最新研究或产品原型。
●改善文档。当原有的文档有不充分处,又当系统被更新而原设计人员不在时,逆向工程被用来获取所需数据,以补充说明或了解系统的最新状态。
●软件升级或更新。出于功能、合规、安全等需求更改,逆向工程被用来了解现有或遗留软件系统,以评估更新或移植系统所需的工作。
‘拾’ 安卓逆向和windows逆向哪个难
如果你比较两个操作系统下应用平台开发难度,其实相差不大,window稍微简单点,毕竟提供.net sdk的可视化开发窗口门槛会低些,Android开发界面稍微难用,但是window系统是闭源,Android是基于linux是开源,从这一点也说明window要难于android,window内部默认有两套渲染语言OpenGL和DirectX,但是Android仅仅默认OpenGL,从音频上来说window支持更高级声卡,而Android仅仅支持基础DP,从语言来说Android基于liunx可支持语言极其有限,而window几乎兼容所有编程语言,甚至黑苹果还支持MacOS,因此window操作系统也称为“计算机基础软件工业机床”,相对于主流Linux和MacOS都是难以企及window,window优点很多但是对于开发者来说并不友好,window里面由于历史原因过于漫长,曾几何时与intel联盟,地位不可撼动导致window内部API极其繁杂,比如VS C++也成为所有C++版本中最难的,因此深入研究门槛远高于Android,Linux,MacOS,这也导致国内极少人去深入研究window,而转移研究linux,相对于Linux起步门槛高但是一旦深入就并没有那么难,但是window则是起步容易深入很难,他们两个正好相反,从开发者来说国内开发Android明显多与window,产品上android也多于window,国内window产品基本都是些基础应用,国外的window开发大部分都是IDE开发环境和工具,比如3dsmax,maya,Autodesk CAD,各类编程环境,因此国内基本上没有window方面的人才,Android方面不适合做IDE,因此结论是显而易见,Android起步门槛高深入研究门槛低,window起步门槛低深入研究门槛高,我的建议主要弄android.毕竟是开源而且可移植性高。