- 博客(183)
- 收藏
- 关注
原创 2022-03-19
fpbeJust a simple sudo program打开main函数int __cdecl main(int argc, const char **argv, const char **envp){ __int64 v3; // rbp@0 char *v4; // rsi@2 const char *v5; // rdi@2 __int64 v6; // rdx@2 int result; // eax@2 int err; // [sp+14h] [bp-54h]
2022-03-19 18:32:26
572
1
原创 2022-3-18
rsaras是一个非常神秘的算法,那么它神秘在哪里 请少侠自己摸索! 注意:得到的 flag 请包上 flag{} 提交-----BEGIN PUBLIC KEY-----MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMAzLFxkrkcYL2wch21CM2kQVFpY9+7+/AvKr1rzQczdAgMBAAE=-----END PUBLIC KEY-----这是道密码题吧公钥解析一下,然后分解个n,然后常规解就可注意一下,flag.enc文件直接open打开
2022-03-18 21:07:26
1359
原创 2022-03-17
[GWCTF 2019]pyrepyc,如此亲切啊随便找一个python反编译的# Embedded file name: encode.pyprint 'Welcome to Re World!'print 'Your input1 is your flag~'l = len(input1)for i in range(l): num = ((input1[i] + i) % 128 + 128) % 128 code += numfor i in range(l -
2022-03-17 23:00:53
774
原创 2022-03-16
简单注册器生活中难免会有需要使用一些付费的程序,但是没有绿色版怎么办?只能自己逆向看看注册程序的代码是什么逻辑了。 注意:得到的 flag 请包上 flag{} 提交apk文件啊,这次知道了,是安卓的程序,用APKIDE打开啊这换个名字先成功打开,发现一个名字带flag的文件根据名字在com下的example下找到了一个名为flag的文件夹打开文件夹,寻找main函数里带flag的找到两串可疑字符,但是并不能读懂代码换了个工具:JEB能看出来是Java语言了,找flag可以使
2022-03-16 21:16:30
1531
原创 ECDSA数字签名
ECDSA算法(深入浅出密码学笔记)ECDSA标准中的步骤与DSA方案的步骤在概念上紧密相连,但ECDSA中的离散对数问题是在椭圆曲线群中构建起来的。因此,实际计算一个ECDSA签名所执行的算术运算与DSA中的完全不同。ECDSA标准是针对素数域Zp\mathbb{Z}_pZp和有限域GF(2m)GF(2^m)GF(2m)上的椭圆曲线定义的密钥生成使用椭圆曲线EEE,其中:模数为ppp;系数为aaa和bbb;生成素数阶qqq的循环群的点A选择一个随机整数ddd,且0<d<q0<
2022-03-14 21:02:43
2847
原创 一些无用功
small weiner来源:dvCTFSomeone I hate sent me an insulting message using RSA. Can you retrieve his private key?m = 0x596f7520686176652073756368206120736d616c6c207765696e65722e2049204841544520594f5521212121N = 0x26553fbb7e4bd5bd48868a25f24d9cc5975aa8597f82
2022-03-13 19:48:40
4978
原创 《格理论与密码学》笔记一
格的基本定义根据向量空间的概念,格的定义如下:定义3.1 设v1,⋯ ,vn∈Rmv_1,\cdots,v_n \in \mathbb{R}^mv1,⋯,vn∈Rm为一组线性无关的向量。由v1,⋯ ,vnv_1,\cdots,v_nv1,⋯,vn生成的格LLL指的是向量v1,⋯ ,vnv_1,\cdots,v_nv1,⋯,vn的线性组合构成的向量集合,且其所使用的系数均在Z\mathbb{Z}Z中,即L={a1v1+a2v2+⋯+anvn:a1,a2,⋯ ,an∈Z}L= \{a_1v
2022-03-09 21:09:37
818
原创 2022-03-09
d3factor(来源:AntCTF & Dˆ3CTF 2022)from Crypto.Util.number import bytes_to_long, getPrimefrom secret import msgfrom sympy import nextprimefrom gmpy2 import invertfrom hashlib import md5flag = 'd3ctf{'+md5(msg).hexdigest()+'}'p = getPrime(256)q
2022-03-09 11:21:42
455
原创 2022-02-25
findit不知不觉,小明长大了,变成了一个程序员,虽然很苦逼,但是偶尔编写个小东西坑害公司新人还是蛮好玩的。新人小萌一天问小明wifi账号密码,一分钟后,小萌收到了一个文件。小萌想了好久都没得到密码,怎么办,女朋友要买东西,流量告罄,没wifi上不了网,不买就分手,是时候该展现月老的实力了兄弟们!代表月亮惩罚小明!得出答案。 注意:得到的 flag 请包上 flag{} 提交IDA打开没看明白,搜了下,发现这是安卓的,不能用IDA,要用APK改之理(APK IDE)是一款可视化的、易用的、快捷
2022-03-03 17:25:00
306
原创 2022-02-21
[极客大挑战 2019]EasySQL用户名输入:1’ or 1=1#密码随意加载出来[极客大挑战 2019]HavefunF12网址加上/?cat=dog得到
2022-02-21 22:23:54
152
原创 2022-02-13
[BJDCTF2020]JustREIDA打开,找主函数F5int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ int result; // eax@1 HACCEL v5; // esi@2 struct tagMSG Msg; // [sp+8h] [bp-1Ch]@2 LoadStringA(hInstance, 0x67u, W
2022-02-13 21:37:11
81
原创 2022-02-09
[第七章 CTF之CRYPTO章]N1DES# -*- coding: utf-8 -*-import hashlib,base64def f(a,b): digest = hashlib.sha256(a + b).digest() return digest[:8]def str_xor(a,b): return ''.join( chr(ord(a[i]) ^ ord(b[i])) for i in range(len(a)))def round_add(a, b
2022-02-09 23:02:06
7665
3
原创 2022-02-07
[GXYCTF2019]luck_guy64位IDA打开F5打开主函数// local variable allocation has failed, the output may be wrong!int __cdecl main(int argc, const char **argv, const char **envp){ int result; // eax@1 __int64 v4; // rdx@1 unsigned int v5; // [sp+14h] [bp-Ch
2022-02-07 21:23:11
532
原创 2022-01-24
2022HWS硬件安全冬令营 X DASCTF Janbabyrsaimport osfrom secret import FLAG,p,q,efrom Crypto.Util.number import bytes_to_long,long_to_bytesN = p*qdef encrypt(m,N,e): return pow(m,e,N)def decrypt(c,N,d): return pow(c,d,N)def padding(msg): res = ms
2022-01-24 16:02:55
135
原创 2022-01-23
[第七章 CTF之CRYPTO章]N1DES# -*- coding: utf-8 -*-import hashlib,base64def f(a,b): digest = hashlib.sha256(a + b).digest() return digest[:8]def str_xor(a,b): return ''.join( chr(ord(a[i]) ^ ord(b[i])) for i in range(len(a)))def round_add(a, b
2022-01-23 21:07:31
496
4
原创 2022-01-22
BUU LFI COURSE 1[第五章 CTF之RE章]Hello, RE[第七章 CTF之CRYPTO章]KeyBoardhjmb 2wq ghnv 90plki 90plki iol,mj -=]';p 0-[;lo qwsz wedxza wedxza 23esaq 90plki 45tfde erfcxs =\'[n1book{pasword}[第七章 CTF之CRYPTO章]BabyRSAfrom Crypto.Util.number import *flag = byt
2022-01-22 18:59:29
6486
原创 2022-01-17
silent_peeperfrom Crypto.Util.number import *from Crypto.Cipher import AESimport binasciiflag = "flag{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}"bs = AES.block_sizepad = lambda s: s + (bs - len(s) % bs) * chr(bs - len(s) % bs)p = 1748071573654650927313
2022-01-17 22:29:31
608
原创 2022-01-07
Java逆向解密程序员小张不小心弄丢了加密文件用的秘钥,已知还好小张曾经编写了一个秘钥验证算法,聪明的你能帮小张找到秘钥吗? 注意:得到的 flag 请包上 flag{} 提交解压就得到一个.class文件,用Eclipse还打不开搜了一下java反编译工具,jd-gui要下载,直接用的在线反编译网站:https://jdec.app/得到/* Decompiler 33ms, total 22066ms, lines 39 */import java.util.ArrayList;impo
2022-01-17 10:39:47
396
原创 2022-01-12
消失的岛屿题目来源: 2019_看雪CTF_晋级赛Q2题目描述:flag{xxxxxxxxxxxx} 本题考查了修改过编码table的base64算法,重点在于单个字符的变换强度。真实的编码table从头到尾不会在内存中显示。所以攻击者需要先将断点设置在charEncrypt处,找出编码的变换规则,然后找到修改过后的编码table,根据变换规则推导出真正的编码table。附件是一个,额,exe看来是和re结合的题用IDA32位打开,F5进入主程序base64_encodeint __cde
2022-01-12 22:28:14
306
原创 2022-01-08
长安“战疫”网络安全卫士守护赛no_cry_no_can有幸二血from Crypto.Util.number import*from secret import flag,keyassert len(key) <= 5assert flag[:5] == b'cazy{'def can_encrypt(flag,key): block_len = len(flag) // len(key) + 1 new_key = key * block_len retur
2022-01-08 16:04:46
549
原创 2022-01-06
SimpleRev说明这是一个win文件,没有加壳,而且是64位的用IDA64打开很容易找到main函数F5查看代码读程序,发现当输入的字符v4既不是d也不是D的时候会停止内层循环,反之会调用Decry()函数;过了内测循环之后是判断v4如果等于q或者Q就会直接结束,如果没有结束(继续运行的话),会输出:请输入错误格式!可以查看这个Decry()函数,如下i++,表示先取i的值进行表达式计算或函数调用,最后加法再计算 i=i+1;++i,表示先加法计算i=i+1,然后在进行表达式计算
2022-01-06 22:54:43
281
原创 2022-01-05
ciruit mapA valid mapDigital circuits is hard , right?#! /usr/bin/python3 from FLAG import flagfrom Crypto.Util.number import *import randomdef genPrime(): while True: a = random.getrandbits(512) b = random.getrandbits(512)
2022-01-05 21:47:16
156
原创 2022-01-04
TetCTF——CryptoSharesDescription: Yet another secret sharing scheme.Service: nc 139.162.61.222 13371Binary: https://drive.google.com/file/d/1sP0zKSKoF6TJZ-gtaUf7rv4dQ-bGr-cp/view?usp=sharing用nc并没能拿到题目代码,不知道问题出哪了????一直显示链接超时所以比完赛才拿到题目"""This is an
2022-01-04 22:37:39
484
原创 2022-01-01
BMZCTF第二届网络公开赛——crypto签到题hex解码以及base64解密DO_YOU_KNOW_IT跟之前美团的密码里一道差不多,都是LaTeX根据网址:https://www.latexlive.com/help可以找到图中符号对应的字符,首字符串一串就是flag了flag{Play_with_LaTeX}注意大小写问题simplezip文件伪加密,没解开????...
2022-01-01 22:15:48
2675
原创 2021-12-31
[XNUCA2018]baby_cryptolen(key_a) = mlen(key_k) = nc[i] = (p[i] * key_a[i % m] + key_k[i % n]) % 26p is plain text, only lowercase letters are refered to.c is encrypted textI have appended the flag at the end of plain text, the format of which is li
2021-12-31 23:20:05
149
原创 2021-12-30
xor_gameciMbOQxffx0GHQtSBB0QSQIORihXVQAUOUkHNgQLVAQcAVMAAAMCASFEGQYcVS8BNh8BGAoHFlMAABwCTSVQC2UdMQx5FkkGEQQAAVMAAQtHRCNLF0NSORscMkkaHABSExIYBQseUmBCFgtSKwEWfwELFRcGbzwEDABHVS8DDAcXfwUcMQwCDUUBCgYYSQEBATNKGwQeOkkbPhsYERYGDB0TYzwCUSVCDE8dKh0BNg4GAAkLSVMWHBp
2021-12-30 21:30:55
238
原创 2021-12-29
[watevrCTF 2019]Baby RLWEfrom sage.stats.distributions.discrete_gaussian_polynomial import DiscreteGaussianDistributionPolynomialSampler as d_gaussflag = bytearray(raw_input())flag = list(flag)n = len(flag)q = 40961## Finite Field of size q. F =
2021-12-29 22:43:59
274
原创 2021-12-1
helloword有难的题目,也就有简单的题目,就像程序员一辈子编写的第一个程序,极有可能是helloword,它很普通,但是也很让人怀念。你猜这题flag在哪里?让我们怀念第一次编写的easy程序吧!下载附件是一个apk为后缀名的文件APK(全称:Android applicationpackage)是Android操作系统使用的一种应用程序包文件格式。简单的说就是安卓手机的应用程序文件,我们平常用的使用如微信、猎豹浏览器等等app应用程序就是apk文件格式。一个Android应用程序的代码想要在
2021-12-01 21:47:01
1956
原创 2021-11-28
easyre解压得到一个exe文件需要用到IDA工具指路新手指南用IDA打开后,找到main函数,空格切换到代码区,可以看到flagflag{this_Is_a_EaSyRe}成功做出来第一道re题目reverse1同样是exe文件,同样IDA打开这一次却没有在左边找到main就只发现许多跳转这里用到一个快捷键:shift+F12,打开字符串窗口...
2021-11-28 19:55:03
438
原创 格密码学基础
格密码学(Lattice-based Crypto是现在比较火的一个密码学分支,而且本身拥有抵抗量子计算的特性。在即将到来的NIST后量子时代加密算法标准化讨论中,基于格的加密体系就是其中的一个选择之一。其实想要理解格密码学非常简单,只需要一些最基本的线性代数知识。格密码学就是基于格(Lattice)和格上的一些问题而定义的一套密码学体系。关于基础数学知识及入门可参考:https://zhuanlan.zhihu.com/p/150920501格密码线性独立空间上有集合 v1,⋯ ,vn∈Rnv_1
2021-11-17 22:03:29
3205
原创 背包体制问题
概述打开百度百科搜索背包问题的话可以搜到如下解释背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。相似问题经常出现在商业、组合数学,计算复杂性理论、密码学和应用数学等领域中。也可以将背包问题描述为决定性问题,即在总重量不超过W的前提下,总价值是否能达到V?它是在1978年由Merkle和Hellman提出的。
2021-11-14 16:01:41
1229
原创 rsa-buffet
rsa-buffetboston-key-party-2017encrypt.pyimport randomfrom Crypto.Cipher import AES,PKCS1_OAEPfrom Crypto.PublicKey import RSAdef get_rand_bytes(length): return "".join([chr(random.randrange(256)) for i in range(length)])def encrypt(public_key,
2021-11-01 22:01:26
385
原创 2021-11-01
RSA#!/usr/bin/env python3import gmpy2from Crypto.Util.number import getPrimefrom Crypto.PublicKey import RSAfrom Crypto.Cipher import PKCS1_v1_5from base64 import b64encodeflag = open('flag', 'r').read().strip() * 23def encrypt(p, q, e, msg):
2021-11-01 19:50:06
3475
转载 ByteCTF 2021(Crypto部分)
easyxor核心加密算法convert就是四个shift,写个逆就行,flag被分为两部分,前半部分用OFB模式加密,后半部分用CBC模式加密,由于CBC模式的缺陷,当我们只考虑最后一块时,将倒数第二块作为iv,凭借flag的格式做判断即可爆破出key,再利用OFB模式的漏洞,结合key与已知的flag格式即可逆推出iv,此时iv和key尽知,直接解密即可from Crypto.Util.number import bytes_to_long, long_to_bytesfrom random im
2021-10-24 15:56:53
823
原创 2021-10-15
smfrom Crypto.Util.number import getPrime,long_to_bytes,bytes_to_longfrom Crypto.Cipher import AESimport hashlibfrom random import randintdef gen512num(): order=[] while len(order)!=512: tmp=randint(1,512) if tmp not in order:
2021-10-15 23:25:00
253
原创 2021-10-10
2021-10-08鹤城杯cryptoEASY_CRYPTO公正公正公正诚信文明公正民主公正法治法治诚信民主自由敬业公正友善公正平等平等法治民主平等平等和谐敬业自由诚信平等和谐平等公正法治法治平等平等爱国和谐公正平等敬业公正敬业自由敬业平等自由法治和谐平等文明自由诚信自由平等富强公正敬业平等民主公正诚信和谐公正文明公正爱国自由诚信自由平等文明公正诚信富强自由法治法治平等平等自由平等富强法治诚信和谐很明显的社会主义核心价值观,直接在线解密得到flag{IlUqU9O5guX6YiITsRNPiQm
2021-10-10 23:11:01
579
1
原创 RSA已知高位攻击
背景:rsa解密,已知e,n,c(其中n太大,分解不了),和p的高位或m的高位或d的高位工具:sage(没下载的话,有个在线网站可用:https://sagecell.sagemath.org/)基础知识:PR.<x> = PolynomialRing(Zmod(n))用于生成一个以x为符号的一元多项式环f = x + p4定义求解的函数roots = f.small_roots(X=2^kbits, beta=0.4)多项式小值根求解及因子分解,其中X表示求解根的上
2021-10-09 18:05:52
11669
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅