- 博客(17)
- 收藏
- 关注
原创 利用ptrace hook 系统调用
我们知道gdb的实现原理就是利用ptrace,关于ptrace我就不多介绍了,主要看怎么利用它去hook首先,利用ptrace可以给被调试进程下断点,也可以改其寄存器,和opcode,我们利用这点可以实现一个简易的调试器,那么我们如果把实现调试器时插入的0xcc字节码换成我们想要执行的hook函数会发生什么呢?比如我们...
2021-04-10 15:12:14
1269
原创 afl-fuzz.c精注释版
我感觉我一行一行写注释这种行为本身就很傻。。关键的地方作者都写过注释了,我就觉得我这一行行写很不合适,下次读源码还是用眼看吧,想记得地方再写文档上吧,这次接上次还是参考的https://bbs.pediy.com/thread-265936.htm,这份博客,发现可能是版本差异,有些源码不同,不过不碍事,其实注释算是硬写上去的,就把作者的英文注释翻译了一下,我真觉得我这一行行写注释行为太不可取了,真的afl-fuzz.c...
2021-03-06 00:05:56
687
5
原创 afl-gcc.c源码分析 源码精注释版
这是对照着看雪一篇文章写的精注释版,基本一行源码一行注释,原本以为会写的很麻烦,但是没想到源码阅读起来并不困难,加上看雪那位大佬写的十分详细,基本就是一行源码一行源码写的解析,所以整个过程十分顺利,下篇继续afl-fuzz觉得看着源码不方便的可以看上面链接的那篇文章请从main开始阅读,我事是直接对着源文件写的注释/* american fuzzy lop - wrapper for GCC and clang ---------------------------------------
2021-03-04 22:24:14
601
1
原创 对ctfwiki格式化字符串漏洞的一点补充
看过ctfwiki格式化字符串部分,把遇到的疑惑的理解记录下来首先是偏移拿改栈上一个参数的值为例,更改我们的输入我起初不懂为什么会有这个偏移,看wiki说的我以为是简单的入栈顺序造成的,后来看了这个才知道为什么有这个偏移,简单来说就是,例如 char a[100]; scanf("%s",a); printf(a);这里输入a时是把栈上a的值给替换成输入的值,这个栈指的是main函数的栈,因为a是mian函数的局部变量,然后就又有printf函数的调用,这时printf函数的栈在a栈桢
2021-02-13 00:12:16
300
原创 csapp malloclab
这次实验起初感觉书上就有答案,但是把书上的一点一点打上去之后看了大佬的博克,我就菜的睡不着了,这一章的最后一部分看的不认真,当时实在是头疼,急着看完去睡觉,结果错过了这次实验最重要的部分,分离空闲链表法,刚开始看到这个我以为就是维护一个存放空闲块的链表,因为不记得之前写ucore时候有这种优化方法,回过头又去看了遍书,感觉和我想的完全不一样,是我坐井观天了,这一算法就是维护多个链表,每个链表都是存放大小近似于一个值的空闲块,这样要分的话直接去对应的找就行,说最有匹配算法我觉得不为过。其实只要理解这点就好办
2021-02-08 22:38:26
936
原创 csapp shlab
这个shell lab起初以为类似unix编程实践中的类似,写着发现难度还是不小,主要是阻塞信号还有发送信号,卡到了就回头看书,其实有很多实现书上都有板子,同时也参考了别人写的,发现别人对信号阻塞的考虑比我周全多了,csapp真是一本适合多次阅读的书,这次看了write upeval这个函数其实书上有实现,记不起来的可以回头看看,反正这章也没多少页。void eval(char *cmdline) //书上有类似实现{ char *argv[MAXARGS+1]; int bg=p
2021-02-07 23:28:17
301
原创 csapp cachelab
下载完hand-out没有实验文档,之前的没实验文档看代码注释也知道大概是干嘛的,这次不行,cism.c里面可以说是啥都没有,完全不知道让干嘛,无奈看别人答案才知道原来在wite up里有详细说明,还有提示,受ctf的影响我一直以为那wite up是答案,所以从来没看过,今天下载来看看觉得长得很像课堂ppt,不清楚是不是,如果是的话,那做这个实验还是很有必要听听课的看到开局的这一张图感觉好好笑啊,突然好想听听课part A这是让实现一个对cache的LRU算法的部分,然后有个测试,根据trace里的
2021-02-06 13:43:00
263
原创 csapp archlab
代码在githubpart A做这个实验之前先看那两个文档,其中simguid中这个图告诉我们写的汇编代码的大体结构,然后开始,第一个是sum.ys,自己建文件,然后仿照这个结构哦写一个sum.ys#Execution begins at address .pos 0 irmovq stack, %rsp irmovq stack, %rbp call main halt .align 4ele1: .
2021-02-05 17:12:13
596
原创 csapp attack lab
期待已久的attack lab, handout里没有实验文档,前俩都是看的readme,这次readme直接是txt,好吧,打开看一眼没觉得有啥,不过不怕,做过pwn题,但是没想到,这玩意打开发现不是为了得到shell,看了一会不知道让干嘛的,无奈就去看了眼别人的博客,发现别人有实验文档,好吧,只能照着别人的文档写,限看了眼知道前三题对应三个函数touch1、touch2、touch3,然后自己写,本来想用pwntool,但是发现运行不起来,要加-q参数,不清楚在pwntool里怎么加,就按文档上的提的h
2021-02-02 20:42:42
192
原创 csapp bomb lab
题目链接身为一个二进制选手,看到这样的题目心里笑开了花,下面还有俩pwn的实验,csapp的实验真是太有意思啦!!拿到题目一眼还有个.c源码,看了下发现就是给一个程序执行的大致流程,方便下断点,但是我有ida还需要这个??做时候感觉用ida大概算作弊,哪怕不用f5感觉也是在作弊,但是为了快点干完我还是开了ida看。第一题手不经过我的大脑同意,擅自点了f5,害的我一眼就看到了答案,罪过罪过。Border relations with Canada have never been better.第二
2021-02-02 13:36:44
192
原创 csapp data lab
题目链接完整答案在我的github上看到第四章要做个cpu的样子,所以我打算把前面的实验都补上这是我第二次看csapp了,大一时候啥都不懂,看了三四章没有体会到这本书的妙处,现在看时不时会爆出一句csapp nb!!bitXor 这题很简单就公式代换就好了/* * bitXor - x^y using only ~ and & * Example: bitXor(4, 5) = 1 * Legal ops: ~ & * Max ops: 14 * Ra
2021-02-02 12:51:48
159
原创 pyinstaller打包的exe运行不成功 报Failed to execute script
我的是这句话后面还有一句说是No such file or directory: ‘C:\Users\qhcsu\AppData\Local\Temp\_MEI106802\xxxxx\yyyy’从别人博客那里看到废话不多说 直接上解决方案命名一个hook-xxxx的py文件在py中写入:from PyInstaller.utils.hooks import collect_data_filesdatas = collect_data_files(“xxxx”)保存将此py文件放入Pyins
2020-11-23 23:00:27
1028
2
原创 pyinstaller安装
网上传的用pip3 install wheel我用了不行,把wheel卸了用这条重安都不行无奈只得下离线的安装包在别的回答下下的,不是最新版,然后解压,进入解压后的文件夹,输入python setup.py install,报错,然后在底下的搜索栏搜cmd用管理员身份打开,再运行上面的命令就成功了两天了终于成功了...
2020-11-22 23:09:28
189
原创 pyuic5不是内部命令
是因为没有添加话环境变量,可以不添加,首先在python解释器同级目录下的scripts里找到他,复制他的路径,然后在命令行中使用pyuic5时要包括其完整路径或者是cd到该目录下
2020-11-19 21:38:55
4901
原创 Qt5安装后没有Qt Designer以及报错This application failed to start because no Qt platform plugin的问题
我的python是308,用pip正常安装的pyqt5,和pyqt5-tool,但是找不到别人说的designer,后来看帖子发现按第二个人说的可以找到然后是报错,添加用户环境变量,是C:\Users\ddme\AppData\Roaming\Python\Python38\site-packages\PyQt5\Qt\plugins变量名是QT_QPA_PLATFORM_PLUGIN_PATH,看清了是PyQt5下的,别跑偏...
2020-11-17 18:27:15
658
原创 poj3185
poj 3185 反转代码如下:#include<iostream>#include<cstdio>#include<cstring>using namespace std;int bowls[25];int f[25];int calc(int k){ memset(f,0,sizeof(f)); int res=0,sum=0; for(int i=0;i<20;i++){ if((bowls[i]+
2020-11-15 14:20:48
136
原创 poj1222
poj1222当模板用#include<iostream>#include<cstdio>#include<cstring>using namespace std;int dx[]={0,0,0,-1,1};int dy[]={0,1,-1,0,0};int f[10][10];int flip[10][10];int otp[10][10];int get(int x,int y){ int c=f[x][y]; for(in.
2020-11-15 14:20:29
99
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人