摘要: 用int / long long储存字符类型的解释 如图,用IDA的快捷键r将该int转化为char型,该大数就变成了一个字符串,现在再按下ctrl + z 发现在v7内存的字符都应该反过来才对,造成这种情况发生的原因是此处使用的是小端序存储。 小端序存储即数据的高位字节保存在内存的高地址中,低位字 阅读全文
posted @ 2021-11-04 14:08 iPlayForSG 阅读(34) 评论(0) 推荐(0) 编辑
摘要: Crypto Sudoku Game 虚拟机打开终端,输入nc 10.122.253.190 10007,得到数独后直接在线解数独 得到flag TSCTF-J{Re41_ch3ck_in_just_hav3_fun} Dragonborn 一看图片就知道老抓根宝了,直接肉眼翻译龙语 TSCTF_J 阅读全文
posted @ 2021-10-23 15:01 iPlayForSG 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 严格按照IDA给出的数据类型进行数据定义 教训:CNSS Recruit 2021 这个题里面我忽略了IDA里v1是__int16,后续调用的时候用(int)强制转换了一次数据类型 我直接将其定义为了int,导致后面的解密输出flag全是乱码 注意一个超大longlong转换为字符串后的顺序 好像一 阅读全文
posted @ 2021-10-02 13:29 iPlayForSG 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 一些常见的数据类型(与编译器相关) typedef unsigned char uint8; /* Unsigned 8 bit quantity */ typedef signed char int8; /* Signed 8 bit quantity */ typedef unsigned sh 阅读全文
posted @ 2021-10-02 13:18 iPlayForSG 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 先用exeinfo查一下,发现是32位程序 运行程序,发现抛出了乱码窗口 ida打开,反编译主函数 int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int v3; // ecx CHAR *l 阅读全文
posted @ 2021-09-30 15:32 iPlayForSG 阅读(174) 评论(2) 推荐(0) 编辑
摘要: 先exeinfo查一下,是64位文件linux环境 64位ida打开,观察到21行到30行中程序生成了flag.txt,并且在strlen(t)次循环中分别将p[i]与字符串u输出到了文件头,于是猜测flag可能与t, p[i], u有关 进行动态调试,在24行设置断点 直接分别双击t, p[i], 阅读全文
posted @ 2021-09-02 11:33 iPlayForSG 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 先exeinfo查一下,发现是32位文件,linux环境 用ida32位打开,阅读主函数,发现authenticate()内有stdin和比较操作,猜测stdin为输入,ws内储存flag与s2比较 考虑在linux下进行动态调试,打开remote linux debugger,配置好后在if ( 阅读全文
posted @ 2021-09-01 15:32 iPlayForSG 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 打开exe后发现不需要上ida,直接玩游戏即可 相当于一个初始全为0的长度为8的数组,每次操作选一个位置,将其与其相邻共3个数取反(首尾相邻,可看做一个环),一直操作到全部为1。易知最优解的按键上限为8次,在最优解中不会重复按键。 直接用c++写出搜索脚本 // rg是register,print是 阅读全文
posted @ 2021-08-29 01:07 iPlayForSG 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 先用exeinfo查一下 发现是64位文件并且有壳,进入下面所给出的网址下载脱壳软件,在题目目录下打开cmd键入 upx.exe -d *filename来脱壳 然后用64位ida打开,将main函数反编译 发现是将输入的s1与flag比对,直接双击flag追踪,得到flag: flag{Upx_1 阅读全文
posted @ 2021-08-29 00:09 iPlayForSG 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 先exeinfo查一下 发现是32位文件,用32位的ida打开,反编译主函数 观察代码主体 scanf("%s", &v9); v3 = strcmp((const char *)&v5, &v9); if ( v3 ) v3 = -(v3 < 0) | 1; if ( v3 ) printf(aF 阅读全文
posted @ 2021-08-28 16:34 iPlayForSG 阅读(176) 评论(0) 推荐(0) 编辑