分类: 逆向

逆向工程

18 篇文章

近20年Windows权限提升集合
来源:https://github.com/Ascotbe/Kernelhub 前言 该项目是一个Windows提权搜集项目,除未通过测试EXP都有详细说明以及演示GIF图,如果项目中的代码有您的代码,本人为标注来源的请提交Issues 未测试成功编号 下列编号都是在筛选后未能通过复现测试的CVE,附带未成功原因,欢迎提交PR SecurityBu…
安卓逆向学习总结
前置技能 一定程度的安卓正向开发经验 会写简单的脚本,例如python、c     正向开发越熟练,在逆向的过程越容易找到关键点,同时在正向开发的过程中总要了解一下安卓系统的机制吧,这都是后面的无论是脱壳还是写自己的加固代码必要的知识;至于后面的会写简单的脚本,既是为了逆向也是为了能够正向开发,例如脱壳现在的主流方案要么IDA动态调试到脱壳点dum…
逆向路由器固件之解包
通用的linux RE工具 file — 用来检测是否是有效的文件和文件类型 hexdump —16进制导出工具 strings 跟hexdump类似但是可以以可读的形式展示 dd — 从二进制文件中挖掘数据 lzma — 解压LZMA文件 第三方工具 binwalk — 通过固件文件头来分析文件和文件系统 Fireware Mod Kit — 自…
安卓app常用抓包计巧
渗透测试的过程中总会遇到要测试app的时候,这里总结了一下常用抓app数据包的方法,大佬笑笑就好,可以略过。 简单介绍 常见的抓包软件有很多很多,例如fiddler、burpsuite、tcpdump、wireshark、HttpCanary、HTTP Catcher等等。使用方法都不难,只要了解大概网络流程,就知道如何操作了。 下述所用工具 夜神…
汇编:jmp系列跳转指令总结
助记方法: J:跳转 C: 进位位置位 N: 否 S: 符号位置位 o: 溢出位置位 Z: 零标志位置位 E: 等于 P:奇偶位置位 A: Above B: Below L: Less (Little的比较级) G: Greater (Great的比较级) (SF^OF)=1 --> SF=0, OF=1 --> a SF=1, OF=…
Android权限
访问网络 android.permission.INTERNET,访问网络连接,可能产生GPRS流量 android.permission.CHANGE_WIFI_STATE Wifi 改变状态 android.permission.ACCESS_WIFI_STATE WiFi 状态 android.permission.ACCESS_NETWOR…
寻找OEP——堆栈平衡法
 0x00 为什么要使用堆栈[引入概念] 程序运行需要使用数据,那么数据存放在内存中. 首选存放位置是寄存器(运行速度快),但是由于可用的太少,所以就把数据存放在堆栈中. 但是要考虑存储位置的问题,要想精准的访问到存储的数据,就需要一个固定的内存地址(栈底)数据从一个固定的位置开始, 依次排列函数内使用的局部变量都是临时存储的,如果每次调用都要往内…
X-CTF(REVERSE高级) parallel-comparator-200
题目代码: #include <stdlib.h> #include <stdio.h> #include <pthread.h> #define FLAG_LEN 20 void * checking(void *arg) { char *result = malloc(sizeof(char)); char *argument…
BUUCTF—XOR
elf文件,IDA中打开,定位main函数查看伪代码: int __cdecl main(int argc, const char **argv, const char **envp) { char *v3; // rsi int result; // eax signed int i; // [rsp+2Ch] [rbp-124h…
BUUCTF-reverse2
非常简单的题目,没有加壳: main函数伪代码: // local variable allocation has failed, the output may be wrong! int __cdecl main(int argc, const char **argv, const char **envp) { const char *v3; /…
BUUCTF–reverse1
测试文件:https://buuoj.cn/files/81c48295620d635f0c7e35b41efcc52d/b095c2d1-aa44-4e11-9ab5-137f66e1a48c.rar?token=eyJ1c2VyX2lkIjoyOTU2LCJ0ZWFtX2lkIjpudWxsLCJmaWxlX2lkIjoxOTh9.XkkG-A…
memset函数及其用法,C语言memset函数详解
定义变量时一定要进行初始化,尤其是数组和结构体这种占用内存大的数据结构。在使用数组的时候经常因为没有初始化而产生“烫烫烫烫烫烫”这样的野值,俗称“乱码”。 每种类型的变量都有各自的初始化方法,memset() 函数可以说是初始化内存的“万能函数”,通常为新申请的内存进行初始化工作。它是直接操作内存空间,mem即“内存”(memory)的意思。该函数…
比较strcmp, strncmp和memcmp
做到一道挺简单逆向题 这是伪代码: 看到strncmp这个函数顺便说一下strcmp, strncmp和memcmp的区别 函数:int memcmp (const void *a1, const void *a2, size_t size)         函数memcmp用于…