[笔记] Z3prover 学习记录 菜鸟笔记

[笔记] Z3prover 学习记录

z3作为微软开发的求解器,其提供的接口在很多应用程序和编程语言中都可以使用。 > z3prover在CHAINSAW和NAVEX中均有使用 在这里关键的作用是想要配和CodeQL,通过CodeQL提取...
继续阅读
[CTF] SCTF2020 PWN部分write up 2020CTF-wp

[CTF] SCTF2020 PWN部分write up

解题思路综合了wp和比赛时的思路,做了一点简化 CoolCode 这题一开始粗心了,没看见有个逻辑漏洞导致可以绕过可见字符判断,但是在这种情况下sad师傅还是吧shellcode构造出来了,实属牛批…...
继续阅读
[转载] LLVM binary

[转载] LLVM

转载自: https://www.cnblogs.com/wuhh123/p/10668609.html 什么是LLVM LLVM项目是模块化、可重用的编译器以及工具链技术的集合。 美国计算机协会 (...
继续阅读
[heap] House of Einherjar - 2016 Seccon tinypad binary

[heap] House of Einherjar – 2016 Seccon tinypad

虽然这也不是啥特别高级的技术,都是已有技术的组合。但是在实际运用的时候面临各种条件限制,各种奇葩构造方式真是让人心力憔悴。这部分wiki里给的例题还不错,集合了很多实用的技巧,值得深入分析。 引用: ...
继续阅读
[SROP] ciscn_2019_s_3题解 binary

[SROP] ciscn_2019_s_3题解

这是一道入门级别的Kernel rop,但是写的时候不小心翻车了,记录一下一些细节。 0x00 分析 首先在IDA中可以发现三个主要的函数 main text:000000000040051D ; i...
继续阅读
C++ 实现哈夫曼树 C++学习

C++ 实现哈夫曼树

离散数学课本最后一章有讲到这一种“近大远小”的数据结构哈夫曼树,这种数据结构是实现哈夫曼编码的基础,书上讲得比较抽象于是尝试用C++简单的实现一下。 0x00 前提 在这看到了一个比较通俗易懂的解释:...
继续阅读

Dijkstra 算法的 python 实现

离散课上图论的时候讲了理论知识,但是还没实践过,于是拿python写了一下,顺便做个笔记防止忘记。 python自带的数据结构比较丰富,写起来的确顺滑很多,太香了md mymap = { 1:{1:0...
继续阅读
[web] [RoarCTF 2019]Easy Calc web

[web] [RoarCTF 2019]Easy Calc

卑微web菜鸡.... 要用到的几个php函数 部分常用函数在waf中可能会被过滤掉,需要用一些其它的函数。 vardump() 将变量以字符串形式输出,替代print和echochr() ASCII...
继续阅读
[笔记] 在发生Unlink时一个要注意的细节 binary

[笔记] 在发生Unlink时一个要注意的细节

在写题的时候遇到了一个诡异的问题。去请教了槐师傅,学到了一点带源码调试的技巧,于是尝试手动调试了好久才找到大致原因,归根结底还是没有把glibc中各种堆相关的实现和宏看得足够明白,以至于忽略了一些可能...
继续阅读
WIN32远程DLL注入的基本原理 windows

WIN32远程DLL注入的基本原理

没想到入坑WIN32居然是从这个地方,由于对WIN32不太了解,所以摸索起来比较困难。sad师傅推荐了《windows核心编程》这本书,个人感觉还是挺好的,就是得耐下心多读读才能领会。 0x00 Wi...
继续阅读
[pwn] 2016_zctf_note2 (Unlink) binary

[pwn] 2016_zctf_note2 (Unlink)

算是unlink的一道经典题目,借助这道题来整理一下Unlink任意写的基本使用方法与注意事项。exp参照官方wp做了调整。 这里不对题目本身做太多逆向分析,下面是下载链接,包含了题目和exp:点击下...
继续阅读
[数据结构] C语言队列(链表实现) C++学习

[数据结构] C语言队列(链表实现)

英语课日常摸鱼,写个队列。懒得封装了,一团糊 队列结构 无论是用数组还是链表来实现队列,关键就在于用front和rear指针去维护整个队列。 注意考虑好各个方法实现的逻辑完整性,不然很容易出现漏洞。 ...
继续阅读
[笔记] KMP算法 C++学习

[笔记] KMP算法

算是一个比较简单的算法吧,主要思想就是空间换时间。挺早之前在知乎上看到一篇文章写的不错,看懂了个大概,但是还没写过。于是趁有时间(偷懒)写了个简单的例子,备忘。 https://www.zhihu.c...
继续阅读

[pwn] 2014_hack.lu_oreo (House of sprit )

题目很巧妙,而且很容易忽略一些细节导致掉进坑里出不来。本人在写的时候就遭遇了一些百思不得解的问题,而后通过慢慢的调试推演找到了问题所在地。在博客里🐎一下,防止以后再犯。参考资料: https://wi...
继续阅读

[heap] __malloc_hook初体验

在Arbitrary Alloc 的学习中,不可避免的一种用法就是通过字节偏移伪造size域绕过malloc的检测从而在__malloc_hook处伪造一个chunk,达到任意写的目的。 参考资料:h...
继续阅读

[pwn] hacknote (UAF)

Linux中堆相关的基础知识太多了,研究了好久(为此还专门装了一个ubuntu 16.04 ),尝试做uaf题的时候按照自己的理解写exp,然后很顺利的成功了,记录一下我的思路。 题目分析 题目:ha...
继续阅读
编程题目 writeup C++学习

编程题目 writeup

鉴于你校人均OI背景,我这种弱者得自己找时间补补了。 模拟题 铺地毯(洛谷) https://www.luogu.org/problem/P1003 这题是一道模拟题,但是有坑。如果直接照着题目文字流...
继续阅读
base64加密原理以及C语言实现 binary

base64加密原理以及C语言实现

按照二进制学习的路线,了解二进制程序常用的加密方式以及对应的汇编、伪代码特征是很必要的。我在CSDN上看了很多篇方法都不一样,而且很冗长,于是打算自己用C实现一下。 0x00 base64的原理 编码...
继续阅读
C语言链表的实现 binary

C语言链表的实现

唉,总得水点啥。 0x00 啥是链表 链表是区别于数组的非连续结构,每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比于插入或删除数据时数组的复杂度O(n),链...
继续阅读
对于ECB的初步认知 2019CTF-wp

对于ECB的初步认知

moeCTF中有一道题,flag.bmp使用了sm4-ecb加密得到flag.bmp.enc后需要解出flag,而我这个菜鸡之前过于注重sm4的分析,忽略了ECB ECB加密方式的特点 ECB通过补充...
继续阅读

Nginx与php-rpm的结合

工作原理 http请求->nginx->php-fpm http请求:由用户发起 nginx:解析和代理用户请求的流量 php-fpm:fastCGI的实现,后端进程管理 安装软件 安装nginx s...
继续阅读

EDNS简述与利用

EDNS的由来 1、什么是EDNS?     EDNS就是在遵循已有的DNS消息格式的基础上增加一些字段,来支持更多的DNS请求业务。 需要注意的是,像DNS服务器这样一个大型且广泛应用的系统软件,新...
继续阅读
DNS负载均衡基础知识 (一) moeCTF笔记

DNS负载均衡基础知识 (一)

当网站的访问量大了就会考虑负载均衡,这也是每一个架构师的基本功了,其基本地位就相当于相声里的说学逗唱,活好不好就看这个了 :) 传统的负载均衡思路是单点的,不管你是硬件的还是软件的基本都是这样的原理 ...
继续阅读
基于DNS的负载均衡原理 moeCTF笔记

基于DNS的负载均衡原理

DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网文章出自:http://blog.csdn.net/cywo...
继续阅读
(转自CTFwiki)SQL注入技巧 moeCTF笔记

(转自CTFwiki)SQL注入技巧

基本概念 SQL 注入是一种将 SQL 代码插入或添加到应用(用户)的输入参数中,之后再将这些参数传递给后台的 SQL 服务器加以解析并执行的攻击。攻击者能够修改 SQL 语句,该进程将与执行命令的组...
继续阅读

SHA1的原理与破解方法

SHA1 基本描述 SHA1 的输入输出如下 输入:任意长的消息,分为 512 比特长的分组。首先在消息右侧补比特 1,然后再补若干个比特 0,直到消息的比特长度满足对 512 取模后余数是 448,...
继续阅读