安卓逆向学习资料
a 这篇博客记录一下我在学安卓逆向时遇到的各种学习资料 如果可能的话,我也会在下面写一下我的评价,学习感悟就各自单开了吧 刷机说到这个我是真的要吐槽,我试过N多个版本的root方法,安装了无数次系统,都不能成功,最后发现是手机的问题 小肩膀的: https://mp.weixin.qq.com/s/1EySfXSucGdiuEBTfLsymA 谷歌官方的: https://source.android.com/source/running.html 谷歌手机镜像工厂: https://developers.google.com/android/images 安卓系统的基础知识apk文件的基础知识 当你学习基础知识的时候会发现基础知识还有基础知识,属于是无限套娃了 探索 APK 文件的内部:了解 Android 应用程序的组织结构_apk如何查看文件构成情况-CSDN博客 基础的书 《第一行代码》 logcat使用使用 Logcat 查看日志 | Android Studio | Android Developers
刷机初体验
买的谷歌手机到货了,跟着教程来走一遍刷机流程 安装安卓10谷歌官方的 https://source.android.com/source/running.html 小肩膀的 https://mp.weixin.qq.com/s/1EySfXSucGdiuEBTfLsymA 采用线刷的方式,去下面这个网址找工厂镜像包 https://developers.google.com/android/images 最左边的一栏是谷歌旗下所有手机牌子,找到所对应的手机型号 一般来说,手机上能安装什么安卓版本就要看这里提供的包了 下载这个最新的 在电脑上安装adb 和 fastboot 在手机上选择 【设置 – 系统 – 关于手机 – 版本号】,点击【版本号】7次开启 【开发者选项】 打开USB连接 通过数据线将手机连接至电脑,手机端会弹出 USB 调试申请,允许即可 开启成功的标志,cmd中输入adb devices 我是淘宝买的二手机,所以Bootloader解锁和oem解锁都已经完成 手机进入Bootloader模式 1 关机状态下【按住音量减少键 + 电源键】 2 开机状...
RC4加密
RC4加密简介RC4加密流程分析
IDA使用技巧
本文记录了在IDA使用时遇到的使用技巧 IDA 常见窗口函数列表窗口(Functions)列举所有已经被IDA识别的函数 IDA-View窗口汇编代码窗口,空格键切换图形模式和文本模式,TAB和F5键切换到伪代码窗口 Pseudocode窗口伪代码窗口,在伪代码位置按下TAB键可以切换到对应的汇编窗口 字符串窗口列举程序代码所有引用到的字符串常量 Shift + F12打开字符串窗口 Ctrl +F可以弹出底部搜索小窗口 F5召唤伪代码ida最基础的操作之一 味大无许多盐 G进行位置导航在IDA view界面进行使用G位置导航 R转换字符串在看伪代码时如果遇到长数字可以用R快捷键来转换成字符串 N给函数重命名A创建字符串,U解散字符串
TEA加密
tea算法是逆向中经常遇到的一种算法 算法特征tea算法的主要特征表现在sum和delta变量,以及3行核心加密中出现的右移4左移5,两行各有3个小括号互相异或 delta的值一般为0x9E3779B9(-0x61C88647),但题目中往往会改变它的值 算法加密12345678910111213141516171819void tea_enc(uint32_t* v, uint32_t* k) { uint32_t v0 = v[0], v1 = v[1]; // v0、v1分别是明文的左、右半部分 uint32_t sum = 0; // sum用作加密过程中的一个累加变量 uint32_t delta = 0xd33b470; //作为sum每次累加的变化值,题目中往往会修改此值 for (int i = 0; i < 32; i++) { // tea加密进行32轮 //以下3行是核心加密过程,题目中往往会对部分细节做出修改(但由于异或的对称性质,根本不需要记,写解密...
初探逆向
IDA动态调试01 动态调试概述IDA作为一款强大的逆向集成工具,对于动态调试也有比较好的支持。利用IDA自带的动态调试功能可以完成大部分动态调试任务。 动态调试是一种观察程序运行时状态的一种手段。 逆向工程中的动态调试的目的主要有: 1 验证静态分析结果 2 观察程序运行时数据 IDA调试器支持的特性: 1 软件断点/硬件断点/条件断点/脚本断点 2 步入/步过/步出函数/执行到光标位置 3 汇编级/伪代码级/源码级 调试代码支持 4 寄存器/内存 读写 5 启动进程调试/附加调试 02 Linux 远程动态调试ELF文件无法在win 上直接运行 IDA 远程调试需要一个远程调试服务端 实际调试指令的执行由调试服务端完成,IDA充当调试前端 IDA与该服务端通过tcp通信发送调试指令 调试机与被调试机之间需要保证网络畅通,一般是在同一个内网 03 动态调试技巧1 Ctrl + N 设置代码执行位置(可以用来跳过不想执行的代码) 2 Lazy IDA插件批量修改内存数据【Paste...
逆向题目题解
记录了我目前做过的逆向题目和题解,以做题平台和比赛为分类依据 BUUCTF第八题 “helloword”既然是第一道题,那么写一个最简单的应该是很合理的 下载题目文件后,发现是一个.apk文件,把它拖入jadx,找到mainactivity,点开就是明晃晃的flag了 小结:题目确定没有拼错??? 第十题 “SimpleRev”下载文件后,拖入查壳软件中 没有壳,直接一套流程,就找到了伪代码 12345678910111213141516171819202122tcall __noreturn main(int argc, const char **argv, const char **envp){ int v3; // eax char v4; // [rsp+Fh] [rbp-1h] while ( 1 ) { while ( 1 ) { printf("Welcome to CTF game!\nPlease input d/D to start or input q/Q to quit this p...
安卓逆向入门笔记
cmd与环境变量1. cmd的打开方式开始 -> 右键 ->运行 -> cmd 指定目录快捷打开cmd; 路径栏输入cmd 2. cmd基本操作dir: 显示当前路径下的所有文件 cls: 清屏 cd/d: 用于切换不同盘之间的文件 cd: change dirction 改变当前位置 cd . . 回到上级目录 cmd中运行文件 ,上下键选择之前输入过的命令,tab补全,右键复制/粘贴 3.相对路径和绝对路径路径名从C盘,D盘开始到你想要去的位置是绝对路径,而从当前位置到你想去的位置是相对路径 4. 环境变量系统变量/用户变量 环境变量的作用 : 通过加入环境变量可以让你在不同的位置来访问文件 adb工作原理1 adb的作用2 adb构成1 client端,在电脑上,负责发送adb命令 2 daemon守护进程adbd,在手机上,负责接收和执行adb命令 3 server端,在电脑上,负责管理client和daemon之间的通信 3 adb工作原理1 client端将命令发送给server端 2 server端...
初识JAVA
JAVA语言特点1.面向对象,强类型 完全面向对象: Java是纯粹的面向对象语言,所有代码都必须封装成类使用,即使是简单的”Hello World”程序也需要定义类和main方法作为程序入口。 强类型特性: 区别于JavaScript等弱类型语言,Java要求变量必须明确定义数据类型。 2. 垃圾自动回收机制 回收机制: Java的GC不是立即回收不再使用的内存,而是由JVM决定回收时机,但保证最终会回收。 对比C/C++: 在C/C++中,堆内存需要程序员手动释放,否则会导致内存泄漏,最终可能使程序崩溃。 作用域限制: Java变量一旦超出作用域,程序就无法再访问该变量,为GC回收创造条件。 3. 解释型 编译过程: Java需要先将源代码(.java)编译为字节码(.class),这点区别于JavaScript/PHP等纯解释型语言。 语言分类对比: 解释型语言:JavaScript、Python、PHP(直接解释执行) 编译型语言:C/C++(直接编译为机器码如.exe) Java特点:介于两者之间,先编译为字节码再...
