- 博客(44)
- 收藏
- 关注
原创 逆向sgavmp篇
sgavmp篇觉着降生也许在业界中sgavmp算是一个比较高的点了;它让很多人望而生畏,特别是对于我这种菜鸡来说,它简直是一个无法跨越的屏障。和猫一样人也对一些事物充满好奇,但往往催生你欲望的不是好奇而是外界事物。前不久有一个阿里安全部的面试邀请,记得最后一面的时候面试官几次问到了我他们avmp的实现原理,在当时我几乎除了听过其名字外对此一无所知,这便燃起了我的好奇心。聊到sgavmp就不得不聊聊liteVM,不过我并不想在这里过多的描述它,我会单独在写一篇liteVM的文章。在逆sgavmp早
2020-05-29 12:49:47 1468 1
原创 逆向学习litevm篇
乾为天要不要写这篇文章我是想了很久的,本来不想再写;写文章看似简单,实际上合理的组织语言写一篇即有点深度又易懂的文章是很难的;但自己许下的愿就这样半途而废有悖天地法则,所谓天圆地方,圆圆满满,做事需有头有尾,乃为规律。我同样秉着和上篇文章一样的态度,尽量用浅显的语言让更多的人了解它。地水师 想研究无线保镖中的安全特性,你就不得不弄懂litevm;如avmp、安全对抗、数据收集等,很多核心安全的实现被内置在这个litevm中,sgmain6.3.80对应sgavmp6.3.29中还...
2020-06-08 20:08:50 1156
原创 堆漏洞原理介绍
本人花时间撰写了堆漏洞的一些原理和使用技巧,如果大家对学习这些感兴趣可以到我的github下载,github地址:https://github.com/ylcangel/exploits/tree/master/heap这些文档仅用于学习目的,你不可用用于商业,不能用于出版,如转载必须标明出处,否则后果自付。由于本人水平有限,文档中避免不了出现纰漏,还请原谅,同时希望大家给予指出,我及...
2019-12-17 15:44:13 458
原创 分享一篇glibc 2.30内存管理源码分析
分享一篇glibc 2.30内存管理源码分析,出于时间关系文章中可能存在问题(如纰漏、或者解释不顺,后续我会持续更新修正),还请大家海涵,大家互相探讨,也多多希望大家指出文章中问题,我及时斧正。本文只用于学习目的,不能用于商业目的,转载需标明出处,版权归我自己所有。github地址:https://github.com/ylcangel/exploits/tree/master/unders...
2019-12-07 09:14:26 406
原创 格式化字符串漏洞
格式化字符串漏洞github地址:https://github.com/ylcangel/exploits/tree/master/fmtstr你可以用于学习,但不能用于商用(如出书、以盈利为目的的课程、文章等),转载需标明出处。测试平台系统:CentOS release 6.10 (Final)、32 位内核版本:Linux 2.6.32-754.10.1.el6.i686...
2019-10-30 13:26:16 2784
原创 二进制漏洞挖掘之栈溢出-开启FORTIFY
二进制漏洞-栈溢出github地址:https://github.com/ylcangel/exploits/tree/master/stack_overflow你可以用于学习,但不能用于商用(如出书、以盈利为目的的课程、文章等),转载需标明出处。测试平台系统:CentOS release 6.10 (Final)、32位内核版本:Linux 2.6.32-754.10.1.e...
2019-10-18 15:25:38 3724 1
原创 二进制漏洞挖掘之栈溢出-开启RELRO
二进制漏洞-栈溢出github地址:https://github.com/ylcangel/exploits/tree/master/stack_overflow你可以用于学习,但不能用于商用(如出书、以盈利为目的的课程、文章等),转载需标明出处。测试平台系统:CentOS release 6.10 (Final)、32位内核版本:Linux 2.6.32-754.10.1.e...
2019-10-18 15:23:03 9712 5
原创 二进制漏洞挖掘之栈溢出-开启Canary
二进制漏洞-栈溢出github地址:https://github.com/ylcangel/exploits/tree/master/stack_overflow你可以用于学习,但不能用于商用(如出书、以盈利为目的的课程、文章等),转载需标明出处。测试平台系统:CentOS release 6.10 (Final)、32位内核版本:Linux 2.6.32-754.10.1.e...
2019-10-18 15:10:50 1067
原创 二进制漏洞挖掘之栈溢出-开启PIE
二进制漏洞-栈溢出github地址:https://github.com/ylcangel/exploits/tree/master/stack_overflow你可以用于学习,但不能用于商用(如出书、以盈利为目的的课程、文章等),转载需标明出处。测试平台系统:CentOS release 6.10 (Final)、32位内核版本:Linux 2.6.32-754.10.1.e...
2019-10-18 15:05:22 3516 1
原创 二进制漏洞挖掘之栈溢出-开启NX开启ASLR
二进制漏洞-栈溢出github地址:https://github.com/ylcangel/exploits/tree/master/stack_overflow你可以用于学习,但不能用于商用(如出书、以盈利为目的的课程、文章等),转载需标明出处。测试平台系统:CentOS release 6.10 (Final)、32位内核版本:Linux 2.6.32-754.10.1.e...
2019-10-18 14:54:25 950
原创 二进制漏洞挖掘之栈溢出-开启NX未开启ASLR
二进制漏洞-栈溢出github地址:https://github.com/ylcangel/exploits/tree/master/stack_overflow你可以用于学习,但不能用于商用(如出书、以盈利为目的的课程、文章等),转载需标明出处。测试平台系统:CentOS release 6.10 (Final)、32位内核版本:Linux 2.6.32-754.10.1.e...
2019-10-18 14:35:27 1132
原创 分享早期的一个Android Elf解析器
基于学习和分享的目的,你可以自行下载,随意进行更改,但需要注明出处,版权属于我个人所有。分享目的减少造轮子头文件:/** * * For Elf parse by Dynmic segment * For android exe protect * * Author : sp00f * **/#ifndef ELF_PARSER_H_#define ELF_PARS...
2019-03-03 12:42:31 754 1
原创 分享一个曾经实现的ArtHook源码
基于学习和分享的目的,你可以自行下载,随意进行更改,但需要注明出处,版权属于我个人所有。实现原理和思路:1、核心原理是利用java反射+代理2、在java层实现一个method,在jni层替换method结构指针注意:我当时使用的手机是google 原生Android6.0,可以在6.0手机跑通,其他版本的ArtMethod结构体头文件中有,不过我代码中并没有添加对其他类型...
2019-03-03 12:28:27 1279
原创 分享早期写过的基于Android的Got Hook
基于学习和分享的目的,你可以自行下载,随意进行更改,但需要注明出处,版权属于我个人所有。实现原理和思路:1、必须完全了解Android linker加载和解析so过程2、仿照linker解析过程解析要进行hook的so3、修改GOT条目对于segment属性为可写,替换GOT条目,修改回为原属性该版本为很早以前版本,可能仅支持4.4和5.0,想支持更高版本,应该稍作修改就可以了...
2019-03-03 11:58:17 595
原创 xss检测和绕过方法
xss测试步骤:1、输入一个几乎不出现的字符串在应用程序中,以其作为每个页面的每一个参数,且每次只针对一个参数,监控程序响应,看是否出现同样字符串,然后替换字符串为脚本,在进行测试。2、进行避开过滤测试。3、post发现xss,要用burp的get同样继续测试.4、对http消息头进行测试。实例(如输入myxsstest),进行这些测试时必须对任何特殊字符如&,=+;和空格...
2019-03-03 11:40:08 6972
原创 函数调用之栈结构
堆栈分析:---------------------------------------------------------------------------------------------------------------------------------------------------父函数[stack]:BFB2951C dd 8048477h ...
2019-02-26 09:48:47 368
原创 jeb调试
adb forward tcp:5005 jdwp:20058 , 让AS可以attach上这个端口adb shell am start -D -n com.eg.android.AlipayGphone/.AlipayLogin3 JDB 的使用方式上面说了这么多,其实都是为了讲 JDB 的使用原理做的铺垫,JDB 其实是 JDWP 协议中所讲的 Debugger,它运行在 dev...
2019-02-26 09:47:04 840 1
原创 gdb调试常用命令
显示汇编x/i $pc,x/i main ,i前面可以带数字,代表显示多少行gdb查看指定地址的内存地址的值:examine 简写 x-----使用gdb> help x 来查看使用方式 x/ (n,f,u为可选参数)n: 需要显示的内存单元个数,也就是从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义f:显示格式 x(...
2019-02-26 09:46:06 764
原创 Mysql注入技巧
note:在执行类似注入是 select * from user where username = 'admin' and password ='123''a or 1=1 -- (注意-- 有时候--后面需要有一个空格),另外 如果1=1不成立,可以尝试2=2,3=3等绕过waf规则。1、查询所有mysql数据库select schema_name from information_...
2019-02-26 09:44:38 294
原创 解析ELF 运行结果
start .......................................Elf path = /cygdrive/e/tmp_test/libprotectClass.soelf path : /cygdrive/e/tmp_test/libprotectClass.so52ELF Header:Magic: 7F 45 4C 46 01 01 01 00 0
2014-07-20 22:43:41 1192
原创 ELF 解析符号包,包含symtab 和dynsym
ELF 解析符号包,包含symtab 和dynsym,并未对所以平台支持/* * ParseDynSymTable.c * * Created on: 2014年7月19日 * Author: angel-toms */#include "ElfParser.h"Elf32_Sym* get_elf_section_of_sym_table(MemMapping*
2014-07-20 22:34:34 7952
原创 ELF 解析.dynamic 节
解析 .dynamic 节/* * ParseAllDyna.c * * Created on: 2014年7月19日 * Author: angel-toms */#include "ElfParser.h"void print_elf_section_of_dynamic(MemMapping* mem,Elf32_Ehdr* pHeader,Elf32_Sh
2014-07-20 22:32:12 4534
原创 ELF文件解析之 ELF头 程序头表 节头表-补充之前文章代码 只支持32位 出版
#ifndef UTIL_H#define UTIL_H#include #include #include #include #include #include #include #include #include "Types.h"#include "Helper.h"#define GET_SIZE(n) (sizeof(n))#define PRINT_PRE_FIVE_BYTE(p) p
2014-07-20 22:17:07 2702
原创 安卓启动相关以及架构设计相关
安卓启动相关已经架构设计相关 我们知道安卓大多数是服务等的启动是伴随着init进程启动一起启动,这个init进程类似于linux的init,进程pid为1。 读过安卓源码的人都应该很熟悉init会读取init.rc和init.xxx.rc等,想必也读取过关于rc的相关readme。文档中介绍了Actions、Service、Command、Options。其中我只摘
2014-04-27 09:39:09 1059
原创 IPC 程序例子二
共享内存#include #include 通过程序建立了一个共享内存# ipcs -m 建立并且存放了数据------ Shared Memory Segments --------key shmid owner perms bytes nattch status 0x740
2014-01-14 18:19:12 553
原创 IPC程序例子 一
这里只是简单的举例来说明ipc通讯机制相关函数用法:管道===============================================================================#include int pipe(int pipefides[]);举例:#include #include #include #i
2014-01-14 14:16:40 820
原创 ELF(七)可重定位目标,部分摘自深入理解操作系统,深入理解linx内核
可重定位目标 重定位是将EFL文件中的未定义符号关联到有效值的处理过程。在main.o中,这意味着对printf和puts的未定义的引用必须替换为该进程的虚拟地址空间中适当的机器代码所在的地址。在目标中用到的相关符号之处,都必须替换。 对用户空间程序符号的替换,内核并不涉及其中,因为所有的替换操作都是由外部工具完成的。对内核模块来说,情况有所不同,因为内核所
2014-01-12 20:11:19 9187 1
原创 ELF(六)符号解析,此大多摘自深入理解操作系统
符号解析 链接器解析符号引用的方法是将每个引用与它输入的可重定向目标文件的符号表中的一个确定的符号定义联系起来。对于那些和引用定义在相同模块中的本地符号的引用,符号解析是非常简单明了的。编译器只允许每个模块中每个本地符号只有一个定义。编译器还确保静态本地变量,它们也会有本地链接器符号,拥有唯一的名字。 不过对全局符号的解析就棘手多了。当编译器遇到一个不是在当
2014-01-12 20:02:33 1933
原创 复制构造函数,赋值操作符、关系操作符,const函数
#include using namespace std;class A {private:int *val;public:A(int v) {cout val = new (int);*val = v;}~A() {if (val != NULL) {coutdelete val;}}/*** 复制构造函数
2014-01-12 19:53:07 613
原创 ELF(五)符号表
符号表 符号是表示每个ELF文件的一个重要部分,因为它保存了程序实现或使用的所有(全局)变量和函数。如果程序引用了一个自身代码未定义的符号,则称之为未定义的符号(例如一般程序中printf函数,就定义在c标准函数中)。此类引用必须在静态链接期间用其他目标模块或者库解决,或在加载期间通过动态链接(使用ld-linux.so)解决。nm工具可以生成程序定义和使用的所有符合列表。
2014-01-11 18:14:06 9850
原创 ELF(四)节头表
节头表以32位为例,节头表通过数组实现,每个数组项包含一个节的信息。各个节构成了程序头表中定义的各段的内容。数据结构/* Section header. */ typedef struct{ Elf32_Word sh_name; /*Section name (string tbl index) */节的名称。其值不是字符串本
2014-01-11 18:10:54 4278
原创 ELF(三)程序头表
程序头表以32位为例;程序头表由几个项组成,其处理方式类似于数组项。数据结构/* Program segment header. */ typedef struct{ Elf32_Word p_type; /* Segment type */ 描述段的种类,其中段的种类如下: PT_
2014-01-11 18:07:37 8402
原创 ELF(二)ELF头
elf头以32位为例,64位与其区别只是在于数据类型的区别。数据结构typedefstruct{ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ Elf32_Half e_type; /* Object file
2014-01-11 18:04:52 1375
原创 ELF(一)介绍
ELF文件 其中引自,还包含,等,平时引用elf.h就可以了,如果做应用开发,而不是内核开发。数据类型 为了达到平台无关性,下面是内核定义的一些数据类型。/* Type for a 16-bit quantity. */typedef uint16_t Elf32_Half;typedef uint16_t Elf64_Half;
2014-01-11 18:00:46 1919
原创 安卓之启动-初析(四)
补充总结 有源代码的好处就是让我们能够通过读取源代码而了解一个可执行的最小单元的逻辑流程,但是大家都会经常犯一个错误,当然也包括我自己,那就是一旦我们自己拿起了代码,就深陷进了代码跳来跳去的泥潭了。一旦陷入了这个深渊,即使我们熟读代码,也很难和真正的“事实”(流程本身,逻辑本身等)联系起来。所以建议大家应该先对“事实”有个了解在去读代码,可是你要问我了,要是知道了这个“事实”还
2014-01-11 17:52:46 732
原创 安卓之启动-初析(三)
代码解析首先引入依赖文件init.rc,这个是init执行依赖的文件。还有uevetd.rc,其他rc文件我就不在这里列举了。关于以rc为后缀的文件的说明请看,它里面介绍了The Android Init Language consists of four broad classes ofstatements,which are Actions, Commands, Services, a
2014-01-11 17:50:35 978
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人