- 博客(25)
- 收藏
- 关注
原创 ios逆向学习之砸壳(dumpdecrypted)和头文件获取(class-dump)
一、前言记录下自己学习ios逆向的过程,学习用到的书籍是<ios应用逆向与安全>。本人用的手机系统是ios9.3.5(不完美越狱,蛋疼)手机一定要越狱,越狱后的手机要装不少越狱插件,OpenSSH是一定不能少的。二、逆向流程首先要从AppStroe上下载目标App(抖音、微信啥的),从AppStore上下载到的软件是加密的,在运行的时候才开始解密,所以静态分析是无效的,所以...
2019-11-25 14:42:38
832
原创 IDA中复杂表达式的解析
在逆向中,IDA是经常使用到的工具,在IDA中使用最频繁的就是F5了,能够让我们看到伪C代码,但有时会看到如下语句。a1 = ( ((v48 * v34)+ (((((v19 * (v2 * v14)) * v34)+ ((v44 * v34)+ ((((v40 * v35)+ ((v35 * v39)+ ((((v32 * v35) + ((v10 * v28) + ((((v10 * ...
2019-10-30 14:52:54
587
原创 ida 插件学习(9) 查找包含指定助记符的指令
#include <loader.hpp>#include <dbg.hpp>#include <allins.hpp>#include <ida.hpp>#include <ua.hpp>int idaapi IDAP_init(void){ msg("procname: %s\n",inf.procname)...
2019-09-19 11:31:21
677
原创 ida 插件学习(8) 查找某函数交叉引用
#include <loader.hpp>#include <dbg.hpp>#include <kernwin.hpp>#include <name.hpp>int idaapi IDAP_init(void){ if(inf.filetype != f_MACHO){ //检测文件类型 ...
2019-09-18 17:43:07
1392
原创 ida 插件学习(7) 事件操作
#include <string>#include <pro.h>#include <loader.hpp>#include <dbg.hpp>static ssize_t idaapi dbg_callback(void* udata,int event_id,va_list va);int idaapi IDAP_init(vo...
2019-09-17 11:26:51
352
原创 ida 插件学习(6) 打印断点信息和进程信息
#include <string>#include <pro.h>#include <loader.hpp>#include <dbg.hpp>int idaapi IDAP_init(void){ msg("init %s\n",inf.procname); //获取处理器架构 inf为loader.hpp中的全局变量 ...
2019-09-17 11:26:16
614
原创 ida 插件学习(5) 寄存器操作
#include <string>#include <pro.h>#include <loader.hpp>#include <dbg.hpp>#include <ieee.h>int idaapi IDAP_init(void){ msg("init %s\n",inf.procname); //获取处理器架构...
2019-09-16 21:44:31
1074
原创 ida 插件学习(4) 交叉引用
#include <ida.hpp>#include <idp.hpp>#include <loader.hpp>#include <kernwin.hpp>#include <xref.hpp>int idaapi IDAP_init(void){ msg("init %s\n",inf.procname); ...
2019-09-12 10:35:25
973
原创 ida 插件学习(3) 获取指令和操作数信息
#include <ida.hpp>#include <idp.hpp>#include <loader.hpp>#include <ua.hpp>#include <allins.hpp>int idaapi IDAP_init(void){ msg("init %s\n",inf.procname); //...
2019-09-11 14:29:09
918
原创 ida 插件学习(2) 遍历函数信息
#include <ida.hpp>#include <idp.hpp>#include <loader.hpp>#include <funcs.hpp>int idaapi IDAP_init(void){ msg("init %s\n",inf.procname); //获取处理器架构 inf为loader.hpp中的全...
2019-09-11 10:23:40
551
原创 ida 插件学习(1) 遍历段信息
#include <ida.hpp>#include <idp.hpp>#include <loader.hpp>#include <segment.hpp>#include <funcs.hpp>int idaapi IDAP_init(void){ msg("init %s\n",inf.proc...
2019-09-10 18:51:02
520
原创 android 不依靠aidl,自己实现Binder间通信
依靠aidl编写Binder间的通信,确实很方便,只要写好接口,Android Studio编译一下,就会在Project目录->app->generated->source->aidl->debug->包名目录下自动生成代码。为了加深理解,本文决定自己手动实现Binder客户端和服务端的通信,参考了android开发艺术探索这本书籍。先开始编写服务端,首先...
2019-05-21 11:18:22
1339
1
原创 linux 延迟重定位
以前看书的时候,模模糊糊知道linux延迟重定位的意思,没对知识点进行总结和记录,面试的时候,问到了ELF文件的时候,才知道自己并没有搞懂。在面试中,ELF文件中的plt和got是必问的问题,plt和got是用来实现linux中的延迟重定位,意思是等到调用到这个外部函数的时候再进行重定位,优点很明显,加快了程序的启动速度,在传统的运行时重定位中,在程序启动的时候,直接将对每个动态函数解析,将动...
2019-04-24 10:06:12
468
原创 fsutil 不支持该请求
使用 fsutil.exe file SetCaseSensitiveInfo C:\TargetFloder enable 更改文件启用区分大小写时,出现错误:不支持该请求。解决方案:勾选适用于Linux的Windows子系统,需要重启。...
2019-04-10 14:46:10
5522
原创 ViewPager、notifyDataSetChanged和观察者模式
一、前言最近用ViewPager做一个用户引导界面,对于为什么在setAdapter后,再对数据更改时要加notifyDataSetChanged()产生了疑惑。在不加notifyDataSetChanged()时,程序就会崩溃,并提醒你要加上notifyDataSetChanged。通过查找源码找到了答案,并且学习了一下设计模式中的观察者模式,不对的地方,欢迎指教和艾特我出来挨打。二、源...
2019-03-23 11:34:31
353
原创 Android 初识适配器(adapter)和ListView
一、前言最近初学android编程,在看到ListView的使用后,总是想不明白适配器(adapter)为什么会跟ListView在一起使用,这好像跟传统中的适配器(adpater)的作用不太像,适配器的主要作用是将不兼容的接口转换为兼容的接口。经过上网查资料和翻阅书籍资料后,发现其实适配器分为两种,传统的适配器称为类适配器,就是上面提到的那种。还有一种称为对象适配器,就是android里和L...
2019-03-19 14:13:17
175
原创 android 第一行代码 第六章 sqlite3 not Found
我的手机操作系统版本是4.4。1、更改system文件夹权限为读写adb rootadb shellmount -o rw,remount /system2、将PC上下载到的sqlite3 上传到 android的/system/xbin/目录中(文章底部提供下载),并将sqlite3的文件权限更改为4755adb push sqlite3文件绝对路径 /system/xb...
2019-03-06 14:37:58
337
原创 android 二次打包
1.首先下载个apktool,设置好环境变量,百度上有很多教程,这里就不写了2.用apktool d app-dbug.apk,对apktool.apk解包,会在当前目录下生成app-debug文件夹。3.然后你就可以在app-debug里修改东西,比如替换so文件啥的,干完之后,执行apktool b app-debug,在app-debug目录下会多一个dist文件夹,里面有一个a...
2019-02-28 18:30:13
921
原创 Android so文件函数加密
一、前言经过上次写完在ELF文件中根据函数名找函数,就准备开始编写so文件函数加密,这里这是对代码进行加密,还没有对函数名做混淆,会放到下次写。还有本次的测试机是nexus4,操作系统为android 4.4。二、函数加密一般在android中,各种核心的东西都会放在so文件中,因为native层的代码分析难度大,执行效率高。本文选择对so文件的核心函数进行加密,用来对抗静态分析。在加...
2019-02-28 17:36:27
2614
1
原创 Android ELF文件根据函数名查找函数位置
一、前言最近一段时间,工作比较空闲,准备研究下so文件上的函数加密和函数名混淆,首先从根据函数名找到对应代码开始。记得很早之前,自己写过一个ELF解析工具,到现在都忘得差不多了,趁现在这个机会,顺便复习下。本文给出两种方法来查找函数代码位置,第一种是直接遍历动态符号表,取出字符串与目标函数名比较,找到之后,根据里面的字段来得到函数代码位置。第二种是根据ELF文件中的hash节来遍历动态符号表,...
2019-02-22 10:50:26
2023
2
原创 android 逆向以debug方式启动
1、将IDA中的android_server上传到android机器上2、修改文件权限chmod 777 android_server3、以./android_server 运行服务端 (可以选择带参数,修改端口运行 ./android_server -p23456,23456可以替换成其它数)4、打开monitor。(不知道为什么,反正要开,不然容易出问题)5、以调试方式启动ap...
2019-02-16 15:00:54
637
原创 用ndk-build 编译C语言文件,生成可在android系统上运行的文件
1、首先要在你的linux上装上ndk-build。到这个网站上下载http://dl.google.com/android/ndk/android-ndk64-r10-linux-x86.tar.bz22、解压文件 tar -jxvf xx.tar.bz23、设置环境变量,我的是unbuntu14 ,在/home/自己的用户名/.bashrc这个文件上添加一条 export ...
2019-02-14 18:03:51
1377
1
原创 DDMS 获取UI布局中 报Error obtaining UI hierarchy
1.使用输入 adb root 命令解决2.假如输入adb root报错 adbd cannot run as root in production builds,安装 adbd insecur.apk,安装完毕后,勾选Enable insecure adbd和Enable at root,接着输入adb root即可解决 ...
2019-01-06 13:45:42
2376
1
原创 orangeg's 操作系统的实现-于渊-学习笔记 boot从磁盘中读取loader的过程
由于BIOS是从磁盘的第一个扇区中只读取512字节,所以boot.bin所做的事很局限,所以我们用boot.bin中读取loader.bin,loader.bin所占字节大小不受限制,所以能做更多的事。boot.bin读取loader.bin的过程:首先需要找到根目录区,根目录区在文件系统的第19个扇区。 接着从根目录开始,每次读取大小为32字节的条目中的...
2018-12-01 17:55:13
265
原创 android 逆向 .so文件 IDA 动态调试
1.首先一定要有一个root过的android手机,我用的是nexus4,操作系统版本android4.4,咸鱼买的。2.打开手机中的开发者选项,勾选调试选项中的USB调试。3.现在可以将手机与电脑用数据线连接(有的数据线不行,也会影响调试),在电脑中开启控制台窗口,输入adb devices,可以看 到已经检查到设备了。4.这时候可以使用adb push "C:\Prog...
2018-05-31 13:48:21
360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人