Android安全
年前疯狂更了一波博客,是因为准备换工作了,说不定可以拿博客出去吹一吹.然而这么菜,根本没有勇气拿出来吹.本来是打算搞搞windows内核那些东西,结果感觉自己菜的一笔,没勇气干,还是面的Web.最终在年前,面上了某家的渗透测试(实质上是安服),工作后就莫名其妙偏了点移动方面的安全,于是就又捡起来以前的东西搞了搞.这一搞,不但发现了之前绕的弯路,也发现了一大堆有意思的东西:frida, llvm, etc…
基础的前置工具
到现在依旧好用的apktools, signapk.jar, dex2jar, jd-gui, jeb, ida;以及最近发现的jadx, Luytan
apktools
哪一部分出错了就删哪一部分, 再出错了再尝试修复.有时候甚至你用–no-res会出现问题,不使用却没问题.
ida
Shift + F11直接导入头文件即可,JNIEnv和JavaVM给你自动识别还有啥不满足的,还要啥自行车.
Alt + G修改ARM工作模式,这还是之前做pwnable.kr的题知道的.
Android Studio
没错!是AS!这玩意可以直接解包apk,配合smalidea,设置为code目录即可直接开始调试.
基础工具
Xposed
简单来说,Xposed仅仅用findAndHookMethod就可以搞定99%的应用场景.
Xposed最近读了一遍它的源码,过了一遍Xposed的流程.
SEH
Structured Exception Handling,即SEH,是windows的异常处理机制.官方已不建议使用SEH,而是用ISO标准的c++异常处理.但是因为要向前兼容,所以在windows下SEH还是可以使用的,除了系统的代码大量使用以外,自己在一些特殊情况下,也是非常好用的.
也是一些基础啦.
获取DLL的函数地址
zabbix的安装与使用
PWN学习
前言
简单来说,pwn既是使用某种方法,修改内存中的数据,劫持程序的执行流程(即改变eip),使程序执行我们的shellcode。shellcode可以简单理解为一串汇编代码对应的机器码,因为它通常就是用机器代码编写的。
对于call _fun与jmp _fun他们都会使eip变为对于_fun的地址;而对于ret它实际上就是pop eip,如果此时栈顶的数据为我们的shellcode的地址,就可以实现pwn。
而如何修改内存中的数据呢?大概主要就是字符读取的函数函数*gets()和scanf()与其类似的函数、字符串处理函数strcpy()和strcat()*等函数,所造成的缓冲区溢出,从而覆盖返回地址/对内存地址进行赋值操作了。
获取pid对应Tcp与Udp连接的信息
最近疯狂的在肝Warframe,疯狂的挂生存模式,但是在开多人后总有人瞎玩搞乱,为了把他们踢出房间,我需要获取他们的ip。
简单?
一开始用过ipip.net出的一个工具,能够获取到tcp与udp连接的源地址、目的地址与PID。但是有个问题,就是他那个工具用着用着就莫名其妙卡死了,所以遂决定自己造个一样的轮子。
csgo 修改血量控制台命令
1 | ent_fire !self addoutput "health 666" |
查找并修改游戏的内存数据
身为一个手残,小时候玩游戏经常不能通关,于是各种修改器即是我的选择。小时候会用一些什么金山游侠之类的本土修改器,但是使用过程中往往有一个问题:游戏重新开始,或者软件关了重开后上次搜索出来的结果就不能再次使用了。当时也是对这类问题一头雾水,只好使用别人做好的修改器。