自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 收藏
  • 关注

原创 linux内核调试方法总结

前言最近想复现一个关于linux kernel的漏洞,无奈之前没有接触过内核调试,搭建环境还是废了一些功夫的,这里把我自己一路躺过来的坑记录一下分享给大家,如有不正确的,还请大佬不吝赐教^ ^环境qemu+gdbUbuntu16.04架构:x86_64内核:linux5.11.1qemu:2.5.0gdb:10.2busybox:1.33.1双机调试debugging:ubuntu18.04 (调试端)debuggee:ubuntu18.04 (被调试端)架构:x86_64内核

2021-07-22 23:55:44 2249 1

原创 2021强网杯 ezmath writeup

前言题目ida查看后发现是浮点数的运算,涉及到精度的问题,本来想的是爆破每一位,但是发现条件由于精度损失的问题不可能相等,且数据越来越大,直到程序inf。后来听说是math有关的知识,看了别人的wp,发现竟是一大堆的数学公式的运算:积分,泰勒公式,辛普森公式。下面就分析一下题目功能和思路。题目功能题目逻辑是内置了一个长度为19的数组,输入的数据经过函数sub_13F3运算后,如果相等则输出correct! __isoc99_scanf("%39s", s); if ( strlen(s) ==

2021-06-30 12:55:29 446

原创 idapython 记录

idapython 版本api变化api变化基础apiidc.ScreenEA()--> idc.get_screen_ea() 获取当前光标所在行的地址, 返回一个 int 类型idc.MaxEA()--> ida_ida.inf_get_min_ea() 获取当前idb 的最小地址 和 最大地址idc.SegName(ea) --> idc.get_segm_name(ea) ea是一个变量存储当前地址, 这个api 是获取当前地址所在的段idc.GetDisasm

2021-05-30 18:09:18 1183

原创 python常用功能代码笔记

矩阵运算numpy库:# -*- coding:utf-8 -*-#矩阵的乘,加,转置和逆#numpy库提供矩阵运算的功能from numpy import *;import numpy as np;#矩阵的创建(随机) data=mat(random.randint(10,size=(3,3)))data=mat([ [3,4,4], [4,9,7], [2,3,3] ])#矩阵的乘:data_1=mat([[1],[2],[3]]);# 3 x 3 矩阵与 3

2021-05-28 20:14:25 159

原创 qemu与宿主机通过网桥链接通讯

网桥连接通讯网上搜了一下,用以下方法尝试失败:使用网桥方式,可以让qemu和host主机之间直接进行网络通信安装网桥工具sudo apt install bridge-utils 和 sudo apt install uml-utilities新建一个网桥 sudo brctl addbr br0 网桥会在重启后消失启用此网桥 sudo ip link set br0 up确认/etc/qemu/bridge.conf中allow br0 (我的没有这个文件,创建一个)给帮助程序权限sud

2021-05-14 17:16:48 2536 1

原创 mips架构汇编指令

mips架构特点MIPS32 架构中是没有 EBP 寄存器的,程序函数调用的时候是将当前栈指针向下移动 n 比特到该函数的 stack frame 存储组空间,函数返回的时候再加上偏移量恢复栈传参过程中,前四个参数a0−a3,多余的会保存在调用函数的预留的栈顶空间内MIPS 调用函数时会把函数的返回地址直接存入ra 寄存器数据类型所有MIPS指令都是32位长的各单位:1字节=8位,半字长=2个字节,1字长=4个字节一个字符空间=1个字节一个整型=一个字长=4个字节单个字符用单引号,例如

2021-05-14 16:20:36 464

原创 Ubuntu16.04升级gdb7.11升级到10.2版本

下载源码gdb源码可选最新的,接下来执行以下命令:tar -zxvf gdb-10.2.tar.gzcd gdb-10.2/./configuremake && make installmake 过程会有点长,一般会出现下面的错误:WARNING: 'makeinfo' is missing on your system. You should only need it if you modified a '.texi' file, or

2021-05-13 16:06:26 3940 3

原创 条件竞争

原理条件竞争就是两个或者多个进程或者线程同时处理一个资源(全局变量,文件)产生非预想的执行效果,从而产生程序执行流的改变,从而达到攻击的目的。条件竞争需要如下的条件:并发,即至少存在两个并发执行流。这里的执行流包括线程,进程,任务等级别的执行流。共享对象,即多个并发流会访问同一对象。常见的共享对象有共享内存,文件系统,信号。一般来说,这些共享对象是用来使得多个程序执行流相互交流。此外,我们称访问共享对象的代码为临界区。在正常写代码时,这部分应该加锁。改变对象,即至少有一个控制流会改变竞争对象的状

2021-05-13 12:03:43 5425

转载 gdb编译选项

linux下有5中程序保护机制CANARY 栈保护NX no-executePIE(ASLR)position-independent executables位置独立可执行区域;address space layout randomization内存地址随机化机制RELRO read only relocationFOURTYFY_SOURCE常用的机制有前4种: CANARY, NX, PIE(ASLR), RELRO(1) CANARYgcc -o test test.c

2021-05-13 11:38:35 349

转载 各种密码算法记录

TEATeac实现:#include <stdio.h> #include <stdint.h> //加密函数 void encrypt (uint32_t* v, uint32_t* k) { uint32_t v0=v[0], v1=v[1], sum=0, i; /* set up */ uint32_t delta=0x9e3779b9; /* a key schedu

2021-05-12 18:14:27 914

原创 gdb多线程、多进程相关命令

进程相关set follow-fork-mode <parent|child>,设置调试哪个进程set detach-on-fork <on|off>,GDB在fork之后是否断开(detach)某个进程的调试info inferiors,查看当前所有进程inferiors <num>,切换当前GDB调试进程,其中num为上一条指令中列出的进程Num多线程相关线程打断点:break line thread threadNo threadNo为线程号、line为

2021-05-12 17:11:16 131

原创 Tcache Attack

tcache overviewtcache机制在libc2.27之后新增,可以说它是类似于fastbin的机制,LIFO,但比fastbin的优先级更高,由名字可以看出它相当于一个缓存的作用。先看关于它的两个结构体 tcache_entry 和 tcache_perthread_struct(见glibc2.27源码):/* We overlay this structure on the user-data portion of a chunk when the chunk is stored

2021-04-21 20:32:49 694

原创 one_gadget不能搜索libc2.31及以上版本解决

更新ruby首先卸载已有的ruby、onegadget:sudo gem uninstall one_gadgetsudo apt remove gem ruby下载ruby-install安装,由他来安装或升级rubywget -O ruby-install-0.8.1.tar.gz https://github.com/postmodern/ruby-install/archive/v0.8.1.tar.gztar -xzvf ruby-install-0.8.1.tar.gzcd ru

2021-04-14 12:59:20 879

原创 exim2018-6789漏洞原理及迁移pwn题

exim2018-6789漏洞原理漏洞的成因是b64decode函数在对不规范的base64编码过的数据进行解码时可能会溢出堆上的一个字节,比较经典的off-by-one漏洞。存在漏洞的b64decode函数部分代码如下:b64decode(const uschar *code, uschar **ptr){int x, y;uschar *result = store_get(3*(Ustrlen(code)/4) + 1);*ptr = result;/* Each cycle of

2021-04-07 12:00:48 396

原创 pwngdb+pwngef+peda三合一+pwngdb+pwndbg联合使用

pwn调试工具安装最近一直奇怪安装peda有些好用的工具突然用不了,比如fmtrag、heapinfo等命令,重新装了peda还是没有。经过一番查找,终于知道,pwngdb和pwndbg还不一样,有些是pwngdb的命令,有些事pwndbg的命令,所以找到一个他们几个联合使用的方法,记录一下。下载pwngdbcd ~/git clone https://github.com/scwuaptx/Pwngdb.git cp ~/Pwngdb/.gdbinit ~/它支持的命令如下:libc :

2021-04-01 22:44:24 5249

原创 IO_file结构、FSOP、house of orange总结

占个坑总结目录:IO_file相关结构FSOPlibc2.23利用方式 修改vtablelibc2.24 添加check 利用io_str_jumpsio_str_overflowerio_str_finishio_buf_base scanflibc2.27 利用方式例子:2018suctf note(libc2.24)clear_note(io_str_overflows、io_str_finish有一定几率失败)参考文章https://xz.aliyun.co

2021-03-30 15:59:18 2798 2

原创 suctf2018-noend writeup

题目保护全开,主函数很简单,发现malloc没有检查分配失败的情况,若分配失败会返回0,接可以伪造size-1实现任意地址末位写0,为利用提供了条件。可以看到题目size>0x7f不会被free,小于0x7f就会被free掉。 while ( 1 ) { do { memset(s, 0, 0x20uLL); read(0, s, 0x1FuLL); size = strtoll(s, 0LL, 10); buf = mall

2021-03-24 17:11:04 276

原创 堆结构记录

fast binLIFO 最近释放的chunk会被更早分配,当用户需要的 chunk 的大小小于 fastbin 的最大大小时, ptmalloc 会首先判断 fastbin 中相应的 bin 中是否有对应大小的空闲块,有的话分配,否则ptmalloc 进行下一步操作。fast bin chunk大小最大64字节,但是其可以支持的 chunk 的数据空间(出去pre_size、chunk_size)最大为 80 字节。除此之外, fastbin 最多可以支持的 bin 的个数为 10 个,从数据空间为

2021-03-24 14:33:15 260

原创 一道简单的访问越界、栈溢出pwn解题记录

检查题目checksec保护都没开,降低了难度。64位程序,ida查看代码: ManageBook *v3; // rbx char buf[24]; // [rsp+0h] [rbp-30h] BYREF ManageBook *v6; // [rsp+18h] [rbp-18h] setvbuf(stdout, 0LL, 2, 0LL); setvbuf(stdin, 0LL, 1, 0LL); puts("your name:"); read(0, buf, 0x100u

2021-03-16 17:52:16 740

原创 2020强网杯Siri记录

题目检查checksec检查,保护全开。ida看下函数功能,发现sub_1212函数有格式化字符串漏洞:__int64 __fastcall sub_1212(const char *a1){ char *v2; // [rsp+18h] [rbp-128h] char s[280]; // [rsp+20h] [rbp-120h] BYREF unsigned __int64 v4; // [rsp+138h] [rbp-8h] v4 = __readfsqword(0x28u);

2021-03-15 19:14:42 858 4

原创 docker常用命令

pulldocker pull skysider/pwndockerrundocker run -d \ --rm \ -h ${ctf_name} \ --name ${ctf_name} \ -v $(pwd)/${ctf_name}:/ctf/work \ -p 23946:23946 \ --cap-add=SYS_PTRACE \ skysider/pwndockerUsage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

2021-03-11 13:21:45 77

原创 栈迁移过程记录,栈指针rsp、rbp、rip、leave变化过程

栈迁移通过ROP leave_ret 改变ebp的值伪造栈,到达栈迁移的目的。下面就一个题目的一个payload进行调试,逐指令理解栈迁移的过程。这里只是通过ROP来实现,还有一种是通过ROP,向bss段伪造栈,这个以后再说。stack=rbp-0x70 #指向当前栈顶# ROPgadget --binary easy_ad --only "pop|ret" | grep rdipop_rdi_ret=0x400953 fun_addr=0x400756leave_ret=0x4007B5pu

2021-03-11 11:16:01 6739

原创 Off-By-One Asis CTF 2016 b00ks

Off-By-One学习、练习0x1、Off-By-One原理0x2、Asis CTF 2016 b00ks1、利用流程:2、泄露过程a、输入用户名,泄露book1地址b、构造假的fake_book结构体,使其指向book2的name和description字段。c、修改book1的描述字段,填入fake_book,输出book,得到book2的name和description地址。d、根据book2的name字段(为什么要是这个字段呢?)由固定偏移计算libcbasee、根据libcbase得到syste

2021-03-09 22:45:00 638

原创 远程调试android Webview JS逆向

一、工具TBS Studio是面向基于TBS的Web开发者和移动应用开发商(包括微信、手Q,三方App等)打造的开发服务整体解决方案,以提升广大开发者在真机环境下的开发效率,并帮助开发者分析和优化网页的设计,主要功能有网页Inspector调试,网页性能分析等。二、断点类型1.BreakPoint下的是普通的代码断点,和平时调代码的断点是一样的,当代码运行到断点处断下2...

2020-03-26 16:50:35 1306

原创 解析谷歌官方刷机包结构

自己编译过源码的人一定都知道,编译成功之后/out目录下会有相应的输出文件,典型的就是那些img镜像文件,编译成功后的结晶,大部分没有真机的就可能直接模拟器打开了,但是对我来说,模拟器真的是太鸡肋了,可能是配置原因吧,虚拟机根本拍不起来,慢的一批,那就只有刷到真机那才是真正的流畅啊,同志们,那么重点就来了,刷机要刷什么呢?输出的文件有哦那么多img,怎么个刷法?先看看编译成功后的几个重要文件:...

2020-02-29 22:50:21 1369

原创 查看安卓系统是否卡开了可调试debuggable

Android是AOSP_bullhead android6.0.1,系统是自己编译的是userdebug的,自带root权限.一、安卓原生系统1.在android根目录下/default.prop## ADDITIONAL_DEFAULT_PROPERTIES#ro.secure=1 # ro.secure=0 默认开启未知源APKro.allow.mock.locati...

2020-02-29 16:20:06 1177

原创 nexus 5x刷入twrp 安装xposed框架

手机的系统是自己编译的android6.0.1_r11.刷入twrp找到对应自己手机型号的twrp,记住一定是自己手机型号的,不然变砖的可能很大下载好之后输入以下命令:adb reboot bootloaderadb reboot bootloaderfastboot flash recovery /Volumes/virtual/twrp-3.3.1-0-bullhead....

2020-02-29 14:19:46 2331 3

原创 Ubuntu16.04编译android6.0.1源码记录

一、安装环境1.Ubuntu16.04 内存6G 硬盘200G 源码大概在十几个G,不用aosp-laster.tar的方法去同步代码的话,硬盘空间足够用了2.android6.0.1_r1源码下载3.jdk7.0安装环境配置可参考https://blog.csdn.net/pengtgimust/article/details/90758507二、下载源码1.下载rep...

2020-02-15 20:16:58 1445 1

原创 macOS上DDMS打开为空白或点击无反应

网上很多人说是jdk版本太高,换用jdk版本90~151的可以,但经过我的试验并没有改善,仍然无法点击,又经过一番寻找,发现可以使用我们电脑的最新jdk,需要一下操作修改配置文件:查找您的android SDK位置 去<android-sdk>/tools/libs/monitor-x86_64/ 找到该monitor.app应用程序,然后右键单击它,选择“显示软件包内容”...

2020-02-13 14:43:41 989 1

原创 AndroidKeyStore加解密app实现

app应用图标添加方法:https://blog.csdn.net/u014701314/article/details/79774489加解密app获得KeyStore秘钥解密app项目地址

2020-01-15 14:11:15 419

原创 adb连接各种模拟器

1.网易Mumu模拟器adb connect 127.0.0.1:75552.夜神模拟器adb connect 127.0.0.1:620013.google模拟器adb connect 127.0.0.1:5555adb connect 127.0.0.1默认为5555端口

2020-01-14 10:26:33 1398

原创 git clone 错误

fatal: unable to access 'https://github.com/frida/frida.git/': Failed to connect to 127.0.0.1 port 1087: Connection refused或fatal: unable to access 'https://github.com/frida/frida.git/': LibreSS...

2019-10-23 10:23:53 214

原创 pip升级出现的问题

✘ sanfengzhang@sanfengzhangdeMac-mini  /usr/local/bin  pip2.7Traceback (most recent call last): File "/usr/local/bin//pip2.7", line 10, in <module> sys.exit(main())TypeError: 'module'...

2019-10-22 19:10:16 214

原创 adb devices检测不到设备

adb devices检测不到设备进过搜索网上的所有方法1.在C:\Users\Administrator\.android 目录下的adb_usb.ini文件加入设备硬件id 0x4ee2(根据自己的设备id)设备id在设备管理器,设备属性 详细信息 硬件id中的四位对我来说没有用2.安装usb_deriver,https://blog.csdn.net/lin...

2019-09-26 11:38:50 1370

原创 IOS OPlayer Lite广告去除

一、去除思路OPlayer Lite是一款视频播放软件,可以播放本地视频,也可以播放链接,但是播放视频时上方又出现广告框,飞行模式和联网模式还不一样,联网状态下广告会自动变换。确定以下去除思路:1.确定广告位置 cycript2.砸壳 frida 、clutch等方法3.lldb调试定位广告位置 lldb+debugserver4.ida寻找代码逻辑 ida5.找到关键调用...

2019-09-18 20:01:29 4126

原创 ios反注入与反反注入

0x1 反注入原理防止别人的动态库注入到我们自己程序的进程的内存空间,在正向开发中可以在编译的时候加上-WI,-sectcreate,__RESTRICT,__restrict,/dev/null 选项在可执行文件增加一个__RESTRICT节,忽略掉环境变量的注入,也就是说别人的动态库无法注入(可以在dyld源码中有体现),有这个节后dyld会忽略掉环境变量。dyld-210.2...

2019-09-06 17:11:38 2426 2

原创 IOS反调试与反反调试

0x1 反调试原理及方法1.ptrace 调试就是通过ptrace附加去读取内存的值,然后去做动态调试打印寄存器的值之类的,所以可以通过ptrace让我们的程序不能被调试器附加。2.sysctl sysctl发送一个指令去查询程序是否被调试器附加了,如果被附加了,系统是否调试状态的标志位会改变,我们可以处理一些自己的逻辑。3.syscall 系统的调用,每...

2019-09-06 09:44:40 2144

原创 MachO文件格式

目录0x1 前言0x2 例子程序0x3 MachO文件格式分析0xx1 Mach Header-可执行文件头0xx2 Load Commands-加载命令segment_command结构体定义:dyld_info_command结构体LC_SYMTAB结构体LC_LOAD_DYLINKER结构体LC_UUID结构体LC_LOAD_DYLIB结构...

2019-07-30 20:50:23 2635

原创 Mac 安装cycript过程

Cycript允许开发人员通过交互式控制台,使用Objective-C ++和JavaScript语法的混合,在iOS或Mac OS X上检测和修改正在运行的应用程序。一. 安装 cycript下载 SDK ,将下载好的文件解压到磁盘/opt目录下(没有opt目录的新建一个)http://www.cycript.org/将文件夹命名为 cycript_0二. 配置环境变量...

2019-07-29 11:32:30 855

原创 IOS双向验证、代码注入

双向验证首先开发者电脑上有公钥M、私钥M,苹果服务器上有私钥A(Apple),iphone手机上有公钥A,app上会附有app签名和苹果颁发的证书,他的认证过程是这样的: Mac电脑(开发者)拿着公钥M通过CSR文件向苹果服务器申请证书,会把公钥M发给苹果服务器,然后苹果服务器就会给其返回一个证书,里面附了公钥M和公钥M的hash值,开发的app中附有苹果颁发的证书...

2019-07-28 20:10:31 492

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除