2020 高校战疫
天津垓
首先题目要求我们输入用户名, 解密脚本:
cipher = [17, 8, 6, 10, 15, 20, 42, 59, 47, 3, 47, 4, 16, 72, 62, 0, 7, 16] |
得Caucasus@s_ability
但输入后就直接退出了, 再次查看发现如果在运行过程中发现这几个窗口就会运行错误代码, 此处直接在调用处patch为nop即可
signed __int64 __fastcall EnumFunc(HWND a1, _DWORD *a2) |
在调试过程中还发现SMC(代码自修改), 用IDA脚本patch一下:
import ida_bytes |
得到函数:
int sub_10040164D() |
加密比较简单:
res = [0x1EA272, 0x206FC4, 0x1D2203, 0x1EEF55, 2421009, 0x193A7C, 0x1F3C38, 2184813, 2302911, 2263545, 1909251, 2165130, 1968300, 2243862, 2066715, 2322594, 1987983, 2243862, 1869885, 2066715, 2263545, 1869885, 964467, 944784, 944784, 944784, 728271, 1869885, 2263545, 2283228, 2243862, 2184813, 2165130, 2027349, 1987983, 2243862, 1869885, 2283228, 2047032, 1909251, 2165130, 1869885, 2401326, 1987983, 2243862, 2184813, 885735, 2184813, 2165130, 1987983, 2460375] |
最终flag为:flag{Thousandriver_is_1000%_stronger_than_zero-one}
fxck
s = (char *)malloc(0x2BuLL); |
主逻辑为接受一个长度小于42的字符串对其进行操作后校验
在check()
函数中由于return strcmp(a4vyhutqrfyfnq8, check_array) == 0;
可以在调试过程中直接得到校验字符串为4VyhuTqRfYFnQ85Bcw5XcDr3ScNBjf5CzwUdWKVM7SSVqBrkvYGt7SSUJe
操作过程为对输入进行base58加密, tab表为自修改后出现
最终解密脚本为:
from binascii import * |
flag为:flag{63510cf7-2b80-45e1-a186-21234897e5cd}
以下是Apeng大佬wp原话:
base58, 之后用brainfuck语言加密, 但是代码可能写错了, 每次加密的都是上一位的结果。修改之后的版本改为直接对比编码结果, 解base58即可。 |
学到了0.0
easyparser
VM题, init和finit还有另外几部分虚拟机, 主要用于输出题目和初始化res数组, 加密比较简单:
res = [0x90, 0x14C, 0x1C, 0xF0, 0x84, 0x3C, 0x18, 0x40, 0x40, 0xF0, 0xD0, 0x58, 0x2C, 0x8, 0x34, 0xF0, 0x114, 0xF0, 0x80, 0x2C, 0x28, 0x34, 0x8, 0xF0, 0x90, 0x44, 0x30, 0x50, 0x5C, 0x2C, 0x108, 0xF0] |
flag:flag{G0d_Bless_Wuhan_&_China_Growth!}
cyclegraph
图算法, 用深搜和可见字符进行过滤爆破, 且题目对最后一位进行了校验, 避免多解:
# graph = [0x34, 0x0F13398, 0x0F1338C, 0x2, 0x0F13398, 0x0F133E0, 0x2C, 0x0F1338C, 0x0F133D4, 0x2A, 0x0F13458, 0x0F13494, 0x6, 0x0F133D4, 0x0F133EC, 0x2A, 0x0F13398, 0x0F13464, 0x2F, 0x0F134B8, 0x0F134F4, 0x2A, 0x0F1341C, 0x0F13494, 0x33, 0x0F133B0, 0x0F133EC, 0x3, 0x0F133F8, 0x0F1341C, 0x2, 0x0F133B0, 0x0F13410, 0x32, 0x0F1347C, 0x0F134DC, 0x32, 0x0F13428, 0x0F133F8, 0x32, 0x0F1338C, 0x0F134A0, 0x30, 0x0F13380, 0x0F133EC, 0x3, 0x0F13428, 0x0F134A0, 0x1, 0x0F133BC, 0x0F134AC, 0x32, 0x0F133D4, 0x0F133EC, 0x2B, 0x0F134D0, 0x0F134B8, 0x2, 0x0F13410, 0x0F133A4, 0x2E, 0x0F134D0, 0x0F13488, 0x1, 0x0F13434, 0x0F133C8, 0x2, 0x0F13434, 0x0F1344C, 0x2D, 0x0F13398, 0x0F1341C, 0x32, 0x0F13440, 0x0F133D4, 0x4, 0x0F13494, 0x0F13434, 0x2D, 0x0F134E8, 0x0F13470, 0x30, 0x0F13494, 0x0F1338C, 0x31, 0x0F13464, 0x0F13440, 0x2F, 0x0F133EC, 0x0F133B0, 0x33, 0x0F13488, 0x0F13404, 0x5, 0x0F134F4, 0x0F134F4] |
flag: flag{d8b0bc97a6c0ba27}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Lantern's 小站!
评论