algorithm给了源代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 flag = '[test]' hflag = flag.encode('hex') iflag = int(hflag[2:], 16) def polinom(n, m): i = 0 z = [] s = 0 while
TL;DR这道题是关于 optee 即可信执行环境的开源内核, 我们需要仔细了解 ARM 的 TrustZone 相关技术、optee 的架构, 尤其是文件安全存储的实现细节. 做题过程中
WxyVM1main: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 __int64 __fastcall main(int a1, char **a2, char **a3) { char isok; // [rsp+Bh] [rbp-5h] int i; // [rsp+Ch] [rbp-4h] puts("[WxyVM 0.0.1]"); puts("input your flag:"); scanf("%s", &input); isok = 1; runVM(); if ( strlen(&input) != 24 ) isok = 0; for ( i = 0; i <=
ezrev 调试到图示位置就好, 把经过加密的字符串拿出来, 异或常数回去, 再解 base64 frontdoor 长亭大佬的博客: http://acez.re/the-weak-bug-exploiting-a-heap-overflow-in-vmware/ open-vm-tools源码: https://github.com/vmware/open-vm-tools.git 1 frontdoor: ELF 64-bit LSB pie executable, x86-64, version
get_lit 返回 i + 1 / - i - 1 然后根据后面的去还原那个 01 序列, 给了输入长度是 17 个 ascii 字符. 数据里面有干扰. 8-bit 一组, 第一个肯定是 0, 这样可以得到一组负的索
DigitalCircuits走流程得到源代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46