[WUSTCTF2020]level3

base64换表,给出了加密后的字符串,那么我们只需要找到换表函数即可,通过交叉引用查看到关键函数

1 |
|
base64解密即可
特殊的 BASE64

猜测是base64换表

文章作者: Randolf luo
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Randolfluo's blog!
相关推荐

2023-12-29
CrackRTF
CrackRTF 函数atoi将输入的字符串化为整型,同时限定了v7为长度为6的字符串,因此我门可以尝试爆破,sub_401230有标识符0x8004u,判断为sha1 12345678910import hashlibstring='@DBApp'for i in range(100000,999999): flag=str(i)+string x = hashlib.sha1(flag.encode("utf8")) y = x.hexdigest() if "6e32d0943418c2c33385bc35a1470250dd8923a9" == y: print(flag) break 123321@DBApp passwd(2)只限定了输入的长度,有 95^6种可能 (可见字符),显然无法直接爆破。 在sub_4014D0我们发现了 hResInfo = FindResourceA(0, (LPCSTR)0x65,...

2023-12-26
z3求解器
Z3z3有整型(Int),实型(Real)和向量(BitVec)。 先生成一个求解对象Solver solver.model()求解 BUUCTF-re-[GUET-CTF2019]re1234567891011121314151617181920212223242526272829303132333435363738394041from z3 import *s = Solver()a1 = [0]*32for i in range(32): a1[i] = Int('a1['+str(i)+']')s.add( 1629056 * a1[0] == 166163712 )s.add( 6771600 * a1[1] == 731332800 )s.add( 3682944 * a1[2] == 357245568 )s.add( 10431000 * a1[3] == 1074393000 )s.add( 3977328 * a1[4] == 489211344 )s.add( 5138336 * a1[5] ==...

2023-12-19
红帽杯easyre
step1,通过字符串查找突破口,发现疑似base64加密的字符串,进入交叉引用查看主函数。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485int __fastcall main(int argc, const char **argv, const char **envp){ int result; // eax __int64 v4; // rax __int64 v5; // rax __int64 v6; // rax __int64 v7; // rax __int64 v8; // rax __int64 v9; // rax __int64 v10; // rax __int64 v11; // rax __int64 v12; // rax __int64...

2023-11-19
buuctf_wp1
IDAPRO 快捷键 功能 Esc 回到上一个位置 Enter 跳转到当前光标处的地址 - 折叠代码 + 展开代码 * 创建一个结构 Alt + A 手动定义一个数组 Alt + F 寻找直接引用的函数 Alt + G 跳转到特定的地址 Alt + T 搜索 Alt + X 重命名 Ctrl + G 快速跳转到指定地址 Ctrl + J 显示引用列表 Ctrl + K 显示 XREF 到选中的函数/数据 Ctrl + N 创建一个函数 Ctrl + Q 快速重命名 Ctrl + X 显示从选中的函数/数据的 XREF Ctrl + E 显示结构类型 Ctrl + R 手动定义一个数据结构 Ctrl + W 打开函数列表 Ctrl + D 以十进制显示当前值 Ctrl + B 以二进制显示当前值 Ctrl + H 以十六进制显示当前值 Space 在图形/文本视图中切换 shift + f12 打开字符串窗口 F5 转伪C代码 easyreExeinfo...

2023-11-24
SWPUCTF 2021 新生赛-老鼠走迷宫
在看雪学苑看到了一题py逆向,正好最近在学习,遂拿来做。 题目链接https://pan.baidu.com/s/1Rq4lJmANHSL1EKk8AZxqDw?pwd=0422 首先拿到一个附件,没有后缀 将其拖入010Editor查看文件头,发现其为4D5A开头,为windowsPE文件的MS-DOS 头,将文件后缀修改为PE文件的可执行系列.exe ** 可以通过该文件图标特征判断该文件为PyInstaller打包的文件,也可以通过Exeinfo PE来查看文件提示,推荐查看 python打包的二进制文件反编译 - Hk_Mayfly - 博客园 (cnblogs.com)博客里也有一个pwn题 打开exe程序发现是一道迷宫题,flag是用wasd表示的最短路径的md5值。 反编译成py文件我们先把pyinstxtractor.py复制到exe文件同一目录,执行命令 1>python pyinstxtractor.py...

2023-11-19
2020-虎符网络安全赛道-Re-game
题目链接https://pan.baidu.com/s/1Rq4lJmANHSL1EKk8AZxqDw?pwd=0422 下载下来是一个txt文件,直接人工逆向分析。 初始化及flag判断 前面容易看出初始化了三个列表arr0、arr1和arr2,python版本为2.7 123arr0 = [249, 91, 149, 113, 16, 91, 53, 41]arr1 = [43, 1, 6, 69, 20, 62, 6, 44, 24, 113, 6, 35, 0, 3, 6, 44, 20, 22, 127, 60]arr2 = [90, 100, 87, 109, 86, 108, 86, 105, 90, 104, 88, 102] 先声明四个check函数,然后是校验flag。由于每一次返回FALSE都是跳转到239偏移地址,flag错误。因此可以判断出四个check间是&的关系。 123456flag = input()if check0(flag) & check1(flag) & check2(flag) &...
公告
This is my Blog