文章分类 - CyberSpace Security / CTF
摘要:base64隐写 脚本: import base64 path = r'.\base.txt' file = open(path) a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" aaa = '' whil
阅读全文
posted @ 2023-10-11 13:17
N0zoM1z0
摘要:from Crypto.Util.number import * p = getPrime(512) q = getPrime(512) e = 65537 print(p) # 685349523826215539197501105792931452370615902047808406102012
阅读全文
posted @ 2023-10-11 00:14
N0zoM1z0
摘要:考察花指令的移除 方法: 找到花指令 u ctrl+N 回到函数开始处 按p就可以F5反编译了 以这道题为例: IDA打开 点开sub_45A9A0: 查看loc_4605D0 在00460612处 按U 然后ctrl+N 变成90(nop) 然后回到loc_4605D0按P F5反编译 就可以看到
阅读全文
posted @ 2023-10-10 20:40
N0zoM1z0
摘要:关键加密代码 由于只有最后一个循环的最后一步涉及到a3(也就是flag)的变换 所以直接逆即可 exp: byte_6000 = [0x1B, 0x9B, 0xFB, 0x19, 0x06, 0x6A, 0xB5, 0x3B, 0x7C, 0xBA, 0x03, 0xF3, 0x91, 0xB8,
阅读全文
posted @ 2023-10-10 20:16
N0zoM1z0
摘要:winhex查看发现PK 所以将后缀改为.zip 解压 在document.xml打开后 有个新佛曰解密 解密网站 最后得到flag
阅读全文
posted @ 2023-10-10 11:17
N0zoM1z0
摘要:低加密指数广播攻击 这里更新一下以前的CRT脚本(这题好像要用十几组才行) 首先 手动nc 获取20组n,c CRT求出m^e mod(N1N2N3...)后开e次方即可 exp: from functools import * def CRT(mi, ai): M = reduce(lambda
阅读全文
posted @ 2023-10-10 11:06
N0zoM1z0
摘要:逆向题 有花指令 IDA打开 关键在 loc_1209 最后会跳转到 在 13B0处 按 U 然后 ctrl+N将这条指令nop掉 最后回到 1209处 按P 就可以F5编译成函数了 这里其实最后v5应该是v5[256] 得到v5后程序做了一个简单的变换 对a1[]进行了修改 由于我们知道最后的a1
阅读全文
posted @ 2023-10-09 22:08
N0zoM1z0
摘要:打到1000000就给flag ctrl+u查看源代码 点开.js查看 这个gameover函数中向/api.php POST了我们的分数 我们可以自己伪造分数POST上传 这里要注意 POSTjson的stringfy形式
阅读全文
posted @ 2023-10-09 13:02
N0zoM1z0
摘要:卧槽 打开真原神... 直接jadx打开 找到关键代码 一个RC4 一个base64 先看base64 没有对base64进行除了table表以外算法的变化 再看RC4 这里直接模拟它对table的变化 得到变化后的table表 再利用变种base64脚本解密即可 exp: 得到table #inc
阅读全文
posted @ 2023-10-09 12:48
N0zoM1z0
摘要:dnspy打开 直接逆向即可 #include<bits/stdc++.h> #include<windows.h> using namespace std; signed main(){ string text2="NEWSTAR"; int array[] = {68, 75, 66, 72,
阅读全文
posted @ 2023-10-09 12:27
N0zoM1z0
摘要:很巧妙的一道题 题目源码: import random from secret import flag ror = lambda x, l, b: (x >> l) | ((x & ((1<<l)-1)) << (b-l)) N = 1 for base in [2, 3, 7]: N *= pow
阅读全文
posted @ 2023-10-08 22:39
N0zoM1z0
摘要:主函数是一个双线程交替进行 变换函数: 对应的变换字符串 这个函数变换的本质: 若原来的是大写字母 就转为off[]中的小写 若原来的是小写字母 就转为off[]中的大写 这里逆向有个点要注意: 不能算出off[pos]的位置后用 pos+38 <97 这种来判断 最终exp: #include<b
阅读全文
摘要:from Crypto.Util.number import * from gmpy2 import * from secret import flag p = getPrime(25) e = '# Hidden' q = getPrime(25) n = p * q m = bytes_to_l
阅读全文
摘要:lfsr题目 flag = "flag{xxxxxxxxxxxxxxxx}" assert flag.startswith("flag{") assert flag.endswith("}") assert len(flag)==14 def lfsr(R,mask): output = (R <<
阅读全文
摘要:给出了 RSA的标准public key生成 直接用标准库 from Crypto.PublicKey.RSA import * with open(r'D:\浏览器下载\attachment\safety_in_numbers\pubkey.pem','r+') as f: key = f.rea
阅读全文
posted @ 2023-10-06 12:23
N0zoM1z0
摘要:这题的关键在于 移位的过程中要防止溢出!!! 因为它移的很大(<<6) 可能超过char(8位)的范围 exp: #include<bits/stdc++.h> #include<windows.h> using namespace std; signed main(){ unsigned char
阅读全文
摘要:本来以为可以好好练一练流密码的逆向分析 结果练习到的反而是python3对hex byte 类型的处理转换 题目源码 import sys from binascii import unhexlify if(len(sys.argv)<4): print("Usage: python Encrypt
阅读全文
摘要:题目给的CBC: #!/usr/bin/python2.7 # -*- coding: utf-8 -*- from Crypto.Cipher import AES from Crypto.Random import random from Crypto.Util.number import lo
阅读全文
摘要:利用dnspy patch代码 dnspy打开 很容易找到关键的函数 但是由于无法直接逆向计算byte[]的值 观察调用getkey的函数 第一个if是判断我们踩雷终止 第二个是成功获得flag 所以我们将第一个if整个删除 编译成功后 然后再打开就可以随便点了 只是不知道为什么我的exe打开最后几
阅读全文
摘要:第一次接触 Unity的逆向题 这种关键代码一般都在 中 dnspy打开 搜索关键词 buttton 找到 ButtonSpawnFruit类 条件是sha1(str)="..." 我们可以直接枚举所有可能的变化(注意python的sha1是小写而题目的判断是大写!) from hashlib im
阅读全文

浙公网安备 33010602011771号