2022省赛复现手记

0x00 rushB 0x01 代码分析 首先进行查壳,无壳,64位程序。拖入IDA和虚拟机。 IDA分析代码发现代码存在混淆,但是还是可以捋出来逻辑。 __int64 __fastcall main(int a1, char **a2, char **a3)

pwn入门到入土1-堆概述

本篇主要参考了https://xz.aliyun.com/t/10650?page=1 对其中的知识点进行了理解和重新排序,便于对其更好的理解 0x00 堆的数据结构,申请与释放 堆和栈都是一种数据结构,在内存中线性分布储存数据,栈由高地址向低地址伸展,堆由低地址向高地址伸展。堆的位置一般都在bss

pwn入门到放弃7-绕过Canary进行栈溢出攻击

0x00 前言 栈溢出攻击比较常见而且比较简单,所以为了保护程序免于栈溢出攻击,就出现了Canary。 {% note primary %} canary的意思是金丝雀,来源于英国矿井工人用来探查井下气体是否有毒的金丝雀笼子。工人们每次下井都会带上一只金丝雀如果井下的气体有毒,金丝雀由于对毒性敏感就

pwn入门到放弃6-整数溢出漏洞及64位ROP

0x00 前言 这次主要分析整数溢出漏洞,分析样本为bugku题目Easy_int。 什么是

pwn入门到放弃5-绕过地址随机化及LibcSearcher

前面的学习测试中,一般都是关闭了地址随机化来测试以及学习的。但是一般情况下,除了基址,其它的地址一般都是开启了随机化保护的。 0x00 准备工作 0x01 pwngdb&pwndbg peda的插件虽然好用,但是pwn专属的调试插件会更好用。安装教程如下: pwngdb cd ~/ git clon

pwn入门到放弃4-ROP绕过栈可执行保护与GOT表劫持

0x00 前言&准备工作 该篇是基于前一篇的基础之上所做的研究。上一篇中,因为程序没有system所以导致需要我们构造自己的shellcode,但是前提是栈可执行,该篇研究的是在栈不可执行的情况下如何获取shell 准备工作还是上一篇差不多,先关闭操作系统的地址空间随机化(ASLR),这是针对栈溢出

pwn入门到放弃3-没有system之构造自己的shellcode

在挖掘和利用漏洞的时候,会遇见没有没有system函数的时候,无法执行system("/bin/sh"),此时,需要构造自己的shellcode 0x00 准备工作 随手写一个作为测试使用 #include<stdio.h> #include<string.h> int main

bugku练题记录2 timer[阿里ctf]&逆向入门

0x10 timer[阿里ctf] 一道安卓题,接触不多,使用jdk-gui打开找到main函数 这里的关键是时间差,而且可以看到是二十万秒后,换算一下两天多,不想做就慢

pwn入门到放弃2-格式化字符串漏洞

title: pwn入门到放弃2-格式化字符串漏洞 date: 2022-03-03 15:42:01 tags: [Pwn] categories: Pwn基础知识 index_img: https://asteri5m.oss-cn-chengdu.aliyuncs.com/img/image-

bugku练题记录1-signin&Easy_Re

0x00 signin 一道安卓逆向题,这里推荐使用jadx-gui 这个工具,还不错。直接打开,找到main。这个需要一点经验或者基础,不然main在哪都找不到。 就这小小的一行就蕴含了这么多东西,这个代码质量我觉得挺高的。 首先是 str.equals(str1),这是java的字符串比较的引用