自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 资源 (4)
  • 收藏
  • 关注

原创 ASISCTF

warm up题目代码如下图所示,我们会发现整个加密过程如下所示,先在flag后面加上p长度的随机字符,然后选择pow(s,i,p)的结果选择字符重新连接字符串实现加密#!/usr/bin/env python3from Crypto.Util.number import *import stringfrom secret import is_valid, flagdef random_str(l): rstr = '' for _ in range(l): rstr += s

2021-10-31 23:40:16 661

原创 PBCTF2021

PBCTF20211 MISC1.1 幽灵作家 Ghost Writer2 Crypto2.1 Alkaloid Stream2.2 Steroid Stream1 MISC1.1 幽灵作家 Ghost Writer【题目介绍】当我在写我的新畅销小说的开头时,一个鬼魂占据了我的键盘并开始输入旗帜!我试图完成这个故事,但不久之后电脑就死机了。幸运的是,我的数字录音机记录了这一切。你能恢复吗?我是个写手很慢的人,我的自定义键盘只有 27 个唯一键;“az”和“”(空格)。没有使用其他键。另外,我似乎

2021-10-17 19:44:46 790

转载 陇剑杯 2021 write up整理

竞赛 write up 收集和整理陇剑杯 2021 write up整理1 签到题1.12 JWT2.12.22.32.42.52.63 webshell3.13.23.33.43.53.63.74 日志分析4.14.24.35 流量分析5.15.25.36 内存分析6.16.27 简单日志分析7.17.27.38 SQL注入8.18.28.39 wifi9.110 IOS10.110.210.310.410.510.6 暂未发现write up10.710.811 加密的大文件11.1陇剑杯 202

2021-10-17 19:43:20 1524 2

原创 TCTF writeup

cryptocheckin题目如下图所示我们发现题目是要求算一个比较复杂的算数,且要求十秒内出结果。这里需要调数学库gmpy2计算,使用python来算会超时。解题过程如下from pwn import *import hashlibimport mathimport gmpy2io=remote("111.186.59.11",16256)io.recvuntil("(2^")tian=int(io.recvuntil(")")[:-1],10)io.recvuntil

2021-08-08 23:00:39 498

原创 Cybrics ctf

1.Signer阅读源码,同时nc一下我们会发现,该题是ECDSA签名。选项1是使用ECDSA对一个当前时间戳+salt进行签名,输出(R,S,HASH),。选项2是让我i们输入使用ECDSA对一个当前时间戳+get_flag进行签名的结果,输入正确获得flag。我们发现在签名过程中除了明文以外所用的参数都没有发生更改,所以我们可以使用k共享的方式对改签名进行攻击。其原理如下已知ECDSA的签名过程是,所以当我们有两组同参数的签名明文hash1,hash2和签名值(r,s1),(r,s2),那么,。

2021-08-08 22:39:05 607

原创 libc 2.27 堆管理机制

由于在libc2.26之后引入tcachebins,所以堆分配机制和之前不太相同tcachebins——tcachebins是一个长度为64的字节数组,每个字节数组对应一条链表。所以tcachebins只能存放0x0-0x400大小的堆,且每个链表长度为7。并且类似于fastbins,是一个单链表。在释放大小为0x0-0x400大小的堆的时候,首先会被释放入对应长度tcachebins对应的链表中,当长度超出7后,再放入fastbin或unsortbins中。malloc的时候当发现malloc对应大小

2020-10-06 20:58:10 1227

原创 burpsuite简介

1 burpsuite简介burpsuite作为web渗透较为常用的软件,有着9个比较常用的模块——proxy,target,intruder,comparer,repeater,decoder,extendere,sqlmap,csrf。下面将对这九个模块进行一一介绍1.1 proxyproxy代理模块是BurpSuite的核心功能,作为一个在浏览器和目标应用程序之间的中间人,允许你...

2020-08-11 15:55:43 40829 1

原创 一些关于程序内存布局的问题

1.栈栈大小是有默认值的,当申请的临时变量太大或者函数调用深度过深会导致程序的栈空间不够用。这时我们需要修改栈大小1.Linux系统:ulimit -a #显示当前用户的栈大小ulimit -s 32768 #将当前用户的栈大小设置为32M bytes2. Windows (在编译过程中的设置):1). 选择 "Project->Setting".2). 选择 "Link".3. 选择 "Category"中的 "Output".3. 在 "Stack alloca

2020-07-28 17:43:13 314

原创 给docker中的ubuntu系统安装桌面程序

原本服务器是centos的,用的不是很习惯,也为了可以分割功能,于是在服务器上装了docker,docker里装了ubuntu系统,具体过程可以参见https://blog.csdn.net/hpf247/article/details/80078240中的内容。但是这样只能连到一个命令行,用的还是不习惯,于是找了一个给linux系统安装桌面程序方法使得我们可以远程访问docker中的桌面由于远程桌面访问必须要打开端口3389,所以在启动docker中linux系统的时候要首先将linux系统的3389

2020-07-26 15:11:47 10305 1

转载 linux-pthread-多线程编程

线程按照其调度者可以分为用户级线程和核心级线程两种用户级线程主要解决的是上下文切换的问题,它的调度算法和调度过程全部由用户自行选择决定,在运行时不需要特定的内核支持;我们常用基本就是用户级线程,所以就只总结一下POSIX提供的用户级线程接口;基本线程操作相关的函数:1线程的建立结束2线程的互斥和同步3使用信号量控制线程4线程的基本属性配置基本线程操作:函数 说明 函数声明 返回值 参数 pthread_start() 创建线程开始运行相关...

2020-07-13 14:31:12 431

原创 C++ stl 算法

1.概述对于C++的stl,除了一些基本结构和一些自带的函数,还有着大量的使用函数模板实现的算法支持stl。这些算法主要由<algorithm>,<numeric>组成。要使用stl的算法函数要包括头文件<algorithm>,对于数值算法要包含<numeric>2常用算法简介2.1排序算法sort(),stable_sort()——对全体元素排序,不同的是stable_sort()会保证相等的元素的相对关系 partial_sort():对

2020-06-26 20:27:07 403

原创 c++ stl set

1.定义set,就是数学上的集合——即set中的每一个元素只能出现一次,并且set中的元素是已经从小到大排好序的,使用set需要引入头文件#include<set>2.基本函数2.1构造函数std::set<int> se:创建一个空的set std::set<int> se{1,2,3,4,5}:创建一个拥有元素1,2,3,4,5的set std::set<int> se1(se):创建一个和se相同的set std::set<i

2020-06-23 18:37:03 375 1

原创 python 逆向浅析

1.编译过程简介python是一种解释性的语言,其原理是将代码块按照需求边运行边翻译给机器执行。python运行原理就是首先把python源文件解释成pyc二进制文件,然后再将pyc文件交由python虚拟机直接运行。但是有时候我们在运行的过程中并没有pyc文件。通常在默认编译的情况下,只有被调用库文件会生成pyc文件保证代码重用,主文件不会生成pyc文件。我们可以通过使用-m参数生成pyc文件2.python逆向在这里我们不详述pyc文件格式。由于在pyc文件中对字节码做了处理。我们使用库对p

2020-06-17 13:27:01 5031

原创 C++ stl map

1.定义map是一类关联容器,他提供一对一的数据处理能力。它的特点是增加和删除节点对迭代器的影响很小。而且map可以修改实值,而不能修改key。注意使用需要加头文件#include<map>2.基本函数2.1.构造函数std::map<int,int> ma1:创建一个空的map。 std::map<int, int> ma1{ { 0, 0 }, { 1, 2 }, { 2, 3 } }:创建一个拥有元素{0,0},{1,2},{2,3}的map s

2020-06-16 11:14:34 263

原创 C++ stl list

目录1.定义2.基本函数2.1.构造函数2.2.添加元素2.3.删除元素2.4.list重要的迭代器2.5.list其他函数3.list使用实例1.定义list是C++ stl中的部分内容,本质上list容器就是一个双向链表,可以高效的插入删除元素。使用的时候需要添加头文件#include<list>2.基本函数2.1.构造函数std::list<int> li:创建一个空的list std::list<int> li

2020-06-15 18:17:23 277

原创 HSCTF-部分writeup

1.XORed根据题意,我们很容易发现这是一个异或加密,根据异或的运算法则,我们很容易解密,下面是我们的writeupKey1 = 0x5dcec311ab1a88ff66b69ef46d4aba1aee814fe00a4342055c146533Key13 = 0x9a13ea39f27a12000e083a860f1bd26e4a126e68965cc48bee3fa11bKey235 = 0x557ce6335808f3b812ce31c7230ddea9fb32bbaeaf8f0d4a

2020-06-07 17:57:13 1105

原创 defcon-ctf qualifer crypto writeup

ooo-flag-sharing阅读题目,我们发现这是一个密钥分享的密码系统。题目使用100*5的矩阵A对填充为5*1明文向量C(向量第一个数是明文)加密得到100*1的向量B。在系统中保存部分向量数据b1,b2……,并将剩下的向量数据b3,b4……分发。当我们和系统由于5个向量数据b1,b2,b3,b4,b5。我们就可以将A中对应向量行组合成一个新矩阵,并求得逆矩阵。我们将的第一行(s1,s2,s3,s4,s5)和密文向量(b1,b2,b3,b4,b5)相乘即为明文。...

2020-05-29 16:17:01 860

原创 2020-网鼎杯部分writup-3

1.simple根据下载题目提示,这可能是一个仿射编码,根据仿射密码求解import gmpy2miwen="kgws{m8u8cm65-ue9k-44k5-8361-we225m76eeww}"minwen=""k=8b=22for i in miwen: if ord(i)>=ord('a') and ord(i)<=ord('z'): miwenint=ord(i)-ord('a') for j in xrange(26):

2020-05-20 16:51:17 1804 1

原创 2020——网鼎杯部分writeup

1.you raise me up题目源码如下#!/usr/bin/env python# -*- coding: utf-8 -*-from Crypto.Util.number import *import randomn = 2 ** 512m = random.randint(2, n-1) | 1c = pow(m, bytes_to_long(flag), n)print 'm = ' + str(m)print 'c = ' + str(c)# m = 3911

2020-05-13 17:41:45 3878

原创 de1ctf 部分writeup解析

1.NLFSR:在ctf-wiki中我们可以找到一种对NLFDSR的攻击方法——https://wiki.x10sec.org/crypto/streamcipher/fsr/nfsr/。由于对多个LFSR组合时不能实现均匀混合吗,我们可以发现有的值和最后结果相近,我们可以据此对NLFSR中的部分LFSR进行爆破。最后我们可以对剩下的LFSR进行爆破。首先我们可以根据多个LFSR组合判断哪些LF...

2020-05-09 00:21:19 1823 1

翻译 ProFuzzer: On-the-fly Input Type Probing for Better Zero-day Vulnerability Discovery

目录摘要介绍动机总览设计与实施类型探测探测类型指导突变摘要现有的基于变异的模糊器倾向于在不了解其底层语法和语义的情况下随机变异程序的输入。在本文中,我们提出了一种新颖的即时探测技术(称为ProFuzzer),该技术可自动恢复并了解在模糊过程中对漏洞发现至关重要的输入字段,并智能地调整突变策略以增加击中零日目标的机会。由于这种探测透明地背负于常规的模糊测试,因...

2020-04-27 16:26:13 1008

原创 安恒月赛-dasctf 部分writeup

1.crypto-not rsa题目很简单,r是一个随机数,g=n+1,已知(pow(g,m,n*n)*pow(r,n,n*n))%(n*n)=c,即密文c,求解明文m。我们根据二项式定理易知可将pow(g,m,n*n)=pow(n+1,m,n*n)=pow(m*n+1,n*n)。由于n=p*q,所以我们知道phi(n*n)=p*(p-1)*q*(q-1)。我们对加密公式两侧同时加(p-1)*...

2020-04-26 16:56:28 38328

原创 虎符-ctf crypto writeup

1.GM由于题目中描述了这时一个GM密码系统,所以我们在网上查到FM密码系统破解方式https://blog.csdn.net/qq_26816591/article/details/82957481首先根据n,phin建立一元二次方程求解n的因子p,q,再带入到解密公式中求解import gmpy2phi=943345166174941322591941459524332131...

2020-04-23 14:58:38 1840

翻译 Matryoshka: Fuzzing Deeply Nested Branches

Abstract灰盒fuzz近年来取得了令人瞩目的进展,从基于启发式的随机变异进化到求解单个分支约束。但是,它们很难解决包含深度嵌套条件语句的路径约束,这些条件语句在图像和视频解码器、网络包分析器和校验和工具中很常见。我们提出了解决这个问题的方法。首先,我们识别目标条件语句的所有控制流相关条件语句。接下来,我们选择污染流相关的条件语句。最后,我们使用三种策略来寻找同时满足所有条件语句的输入。我...

2019-12-12 14:28:32 1152

原创 红帽杯-ctf

1,cryptorelated:题目看起来是一个prng随机数生成器,实际上是在考察RSA,阅读源码我们找到了几个成立的等式:flag=state1+state2+state3state1^17modn=106072354000985866999943925848418065920006608161913150089479177736054763658845720565446214...

2019-11-13 17:52:57 1491

原创 Built-in Functions for Memory Model Aware Atomic Operations

下面的内置函数大致符合C++ 11内存模型的要求。它们都是通过前缀'__atomic'来标识的,而且大多数都是重载的,因此它们可以处理多种类型。这些函数用于替换传统的“__sync”内置函数。主要区别在于请求的内存顺序是函数的参数。新代码应该始终使用“__atomic”内置代码,而不是“__sync”内置代码。注意,“__atomic”的构建假设程序将符合C++ 11内存模型。特别是,他们...

2019-11-04 11:45:52 1061

翻译 GREYONE Data Flow Sensitive Fuzzing

目录AbstractIntroduction1.1questions to address1.2 our solution1.3 result2 design of greyone2.1 Fuzzer-driven Taint Inference2.1.1 Taint inference2.1.2 Comparison with Traditional T...

2019-10-29 16:50:30 3670

原创 C attribute

目录C++ attribute定义解释标准属性gnuattribute对变量进行属性设置aligned(alignment)packed对函数进行属性设置format (archetype, string-index, first-to-check)noreturnweakweakref,weakref ("target")hot...

2019-10-24 13:16:29 553

原创 C++ 匿名函数

1.定义所谓匿名函数,其实类似于python中的lambda函数,其实就是没有名字的函数。使用匿名函数,可以免去函数的声明和定义。这样匿名函数仅在调用函数的时候才会创建函数对象,而调用结束后立即释放,所以匿名函数比非匿名函数更节省空间2.详解C++中的匿名函数通常为[capture](parameters)->return-type{body},当parameters为空的时候,...

2019-09-20 14:18:11 39266 4

原创 clang 10 介绍——sanitizerCoverage

1.Introductionllvm内置了一个简单的代码覆盖率检测(sanitizercoverage)。它在函数级、基本块级和边缘级插入对用户定义函数的调用。提供了这些回调的默认实现,并实现了简单的覆盖率报告和可视化,但是,如果您只需要覆盖率可视化,则可能需要改用sourcebasedcodecoverage。2.Tracing PCs with guards使用-fsanitize...

2019-09-18 15:47:17 9492 6

原创 C++ 文件操作

1.定义本章主要介绍一些和unix文件操作相关的结构体,例如stat,dirnet等2.详解2.1.stat简介stat是文件类,主要作用是用来获取文件信息,其需要的头文件为#include<sys/types.h>,#include<sys/stat.h>,#include<unistd.h>2.2.stat声明我们使用struc...

2019-09-16 18:24:27 1158

原创 C++ unordered_set

目录1.定义2.基本的函数2.1.unordered_set构造2.2.添加新的元素(注意无法插入相同元素)2.3.查找元素2.4.查找桶接口2.5.观察器2.6.清除元素2.7.其他函数1.定义unordered_set本质是使用hash散列的方式存储数据,是一种使用hash值作为key的容器,所以当有频繁的搜索、插入和移除拥有常数时间。unor...

2019-09-16 15:22:48 28146 3

原创 C++ stl vector

目录1.定义2.基本函数2.1.vector 构造:2.2.vector添加元素2.3.vector删除元素2.4.vector重要的迭代器2.5.vector其他函数3.vector使用实例3.1.初始化vector中的元素3.2.遍历vector中的元素3.3.vector中的元素排序(这里只是简单介绍一些对stl的算法,详细了解可以查看alg...

2019-09-15 11:34:39 461

原创 C++ weak

1.弱符号:弱符号,这涉及到编译中符号的概念。在Linux开发环境中,有强符号和弱符号,符号简单来说就是函数、变量的名字,对于全局(非局部、非static)的函数和变量,能不能重名是有一定规矩的,强、弱符号就是针对这些全局函数和变量来说的。 符号类型 对象 强 函数名,赋初值的全局变量 弱 ...

2019-09-11 19:44:30 1873

原创 广东省强网杯

1:美丽的回忆打开源码文件阅读我们发现其加密算法为CBC,加密模式是CBC模式,加密以8位字符长度为一块,如下图所示我们已知开头明文为“have a good time”和加密后的密文,即已知plaintext1,plaintext2和所有密文,于是我们可以得到ciphertext2=ciphertext1^plaintext2^key,那么key=ciphertext2^cipher...

2019-09-11 12:29:36 9193

原创 vuzzer 具体原理解析

目录1.安装(vmware 15.01环境下安装):2.vuzzer使用说明3.vuzzer原理3.1权重文件以及有着cmp信息的文件生成3.2 vuzzer种子生成,变异原理3.2.1 runfuzz.py3.2.2.gautils.py:1.安装(vmware 15.01环境下安装):由于vuzzer是比较久远的项目,且无人更新,所以使用的环境比较老,我们需...

2019-08-28 19:30:09 2339 3

原创 网络与信息安全领域专项赛 writeup

crypto sm4:题目提示这是一个sm4加密的题目,给出了key和密文,于是在网上找了一个sm4加密的代码(https://blog.csdn.net/songdawww/article/details/79112548),稍加修改即可得到正确答案(将源代码主函数的ecb解密留下,将密钥和密文放入即可)key_data = [13, 204, 99, 177, 254, 41, 19...

2019-08-19 13:56:04 1380

原创 mcsema ida库引用

mcsema中python文件是放在/usr/local/lib/python2.7/dist-packages/mcsema_disass-2.0-py2.7.egg/mcsema_disass/目录下,所以一些ida接口也在/usr/local/lib/python2.7/dist-packages/mcsema_disass-2.0-py2.7.egg/mcsema_disass/下,在普通...

2019-08-05 11:28:55 416

原创 CMake简单介绍

1.如何写CMakeLists.txtcmake_minimum_required (VERSION 2.8) #cmake最低版本project (demo) #本工程信息,也就是工程名叫demoadd_executable(main main.c) #表示最终要生成的elf文件的名字叫main,使用的源文件是main.ccmake_minimum_require...

2019-07-21 19:00:18 235

原创 sctf

1.warmup阅读源码,我们发现整个加密流程如下—对明文长度使用pad()填充至长度为16的倍数,然后将msg分成长度为16 的n段,将n段明文做异或得到一段长度为16的明文,然后使用aes_cbc模式加密得到密文。在题目中已经给出了明文'see you at three o\'clock tomorrow'和它的密文,题目要求我们输入“please send me your flag”使用...

2019-06-26 16:44:52 1680

stegdetect

在Linux上运行linux32./configure linux32 make即可使用命令./stegdetect进行使用

2018-07-05

outguess-1.1.5

在Linux下解压,运行outguess即可使用, 可对jpg图形隐藏信息查询

2018-07-05

tweakpng-1.3.2

可以方便的对png文件关键信息进行查看,更改,并保存更改后的图片

2018-07-05

Image Steganography

待加密的图像到界面,然后输入密码字符串,或者也可以拖动一个密码文件,然后加密。将程序调为decode模式,拖动加密后的文件,点击START之后,密码字符串便显示出来了!同样,也可以在图像中加了私密的文件将它解出来。

2018-04-28

空空如也

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

TA关注的人

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