攻防世界中此题信息未给全,题目来源为[TWCTF-2016:Reverse] Reverse Box 网上有很多wp是使用gdb脚本,这里找到一个本地还原关键算法,然后再爆破的 https://www.megabeets.net/twctf-2016-reverse-reverse-box/ [TWCTF-2016:Reverse] Reverse Box Writeup 标准 Shak的客座文章. 挑战描述$ ./reverse_box $ {FLAG} 95eeaf95ef942349995…
这是2017 ddctf的一道逆向题, 挑战:<恶意软件分析> 赛题背景: 员工小A收到了一封邮件,带一个文档附件,小A随手打开了附件.随后IT部门发现小A的电脑发出了异常网络访问请求,进一步调查发现小A当时所打开的附件其实是一个伪装成word文档的恶意可执行文件. 赛题描述: 请在试着分析evil.exe和其所下载的x.jpg, 从中找出key. 评分标准: 密钥正确则可进入下一题. 攻防世界只给了exe文件,没有给x.jpg文件,(每个人的x.jpg文件是不同的,解得的flag也是不一样的…
tt3441810 tinyctf-2014 附件给了一堆数据,将十六进制数据部分提取出来, flag应该隐藏在里面,(这算啥子re,) 保留可显示字符,然后去除填充字符(找规律 0.0) 处理脚本: 1 text=[0x68, 0x66, 0x6C, 0x00, 0x00, 0x48, 0xBF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 2 0x8D, 0x34, 0x24, 0x48, 0xBA, 0x02, 0x00, 0…
APK-逆向2 Hack-you-2014 (看名以为是安卓逆向呢0.0,搞错了吧) 程序是.net写的,直接祭出神器dnSpy 1 using System; 2 using System.Diagnostics; 3 using System.IO; 4 using System.Net.Sockets; 5 using System.Text; 6 7 namespace Rev_100 8 { 9 // Token: 0x02000002 RID: 2 10 internal class…
8.The_Maya_Society Hack.lu-2017 在linux下将时间调整为2012-12-21,运行即可得到flag. 下面进行分析 1 signed __int64 __fastcall main(__int64 a1, char **a2, char **a3) 2 { 3 size_t v3; // rbx 4 size_t v4; // rax 5 unsigned __int64 size; // rax 6 unsigned __int64 size_1; // ra…
Windows_Reverse2   2019_DDCTF 查壳: 寻找oep-->dump-->iat修复   便可成功脱壳 int __cdecl main(int argc, const char **argv, const char **envp) { char Dest; // [esp+8h] [ebp-C04h] char v5; // [esp+9h] [ebp-C03h] char myinput; // [esp+408h] [ebp-804h] char Dst; //…
Replace 湖湘杯2018 查壳upx,手动脱壳,修复IAT,去掉重定向便可以运行. ida查看,流程清晰.关键函数check_E51090. int __cdecl main(int argc, const char **argv, const char **envp) { int lens; // kr00_4 char Buf; // [esp+4h] [ebp-2Ch] char Dst; // [esp+5h] [ebp-2Bh] Buf = 0; memset(&Dst, 0,…
BabyXor     2019_UNCTF 查壳 脱壳 dump 脱壳后 IDA静态分析 int main_0() { void *v0; // eax int v1; // ST5C_4 char *v2; // ST6C_4 const char *v3; // ST68_4 void *v4; // ST64_4 size_t v5; // eax char *v6; // ST60_4 v0 = (void *)sub_4010B4((int)&unk_4395F0, "世界上…
parallel-comparator-200 school-ctf-winter-2015 https://github.com/ctfs/write-ups-2015/tree/master/school-ctf-winter-2015/reverse/parallel-comparator-200 linux平台,mark,以后解决. 给出了源代码,关键在于checking函数返回0 void * checking(void *arg) { char *result = malloc(si…
easy_Maze 从题目可得知是简单的迷宫问题 int __cdecl main(int argc, const char **argv, const char **envp) { __int64 v3; // rax int v5[49]; // [rsp+0h] [rbp-270h] int temp_data[7][7]; // [rsp+D0h] [rbp-1A0h] _DWORD org_maze_data[7][7]; // [rsp+1A0h] [rbp-D0h] org_maz…
seven  hctf2018 这是一个驱动文件 ida载入,查找字符串 根据字符串来到函数:sub_1400012F0 __int64 __fastcall sub_1400012F0(__int64 a1, __int64 a2) { __int64 v2; // rbx _KEYBOARD_INPUT_DATA *KEYBOARD_input; // rsi unsigned __int64 v4; // rdx int index; // ecx __int16 *k_ipt; // r…
crazy 百越杯2018 查看main函数: int __cdecl main(int argc, const char **argv, const char **envp) { __int64 v3; // rax __int64 v4; // rax __int64 v5; // rax __int64 v6; // rax __int64 v7; // rax __int64 v8; // rax __int64 v9; // rax __int64 v10; // rax __int6…
流浪者 int __thiscall sub_401890(CWnd *this) { struct CString *v1; // ST08_4 CWnd *v2; // eax int v3; // eax int v5[26]; // [esp+4Ch] [ebp-74h] int i; // [esp+B4h] [ebp-Ch] char *Str; // [esp+B8h] [ebp-8h] CWnd *v8; // [esp+BCh] [ebp-4h] v8 = this; v1 =…
666  2019_UNCTF main int __cdecl main(int argc, const char **argv, const char **envp) { char myen; // [rsp+0h] [rbp-1E0h] char myinput; // [rsp+F0h] [rbp-F0h] memset(&myen, 0, 0x1EuLL); printf("Please Input Key: ", 0LL); __isoc99_scanf("…
SignIn    2019_SUCTF __int64 __fastcall main(__int64 a1, char **a2, char **a3) { char mod; // [rsp+0h] [rbp-4A0h] char exp; // [rsp+10h] [rbp-490h] char base; // [rsp+20h] [rbp-480h] char goal; // [rsp+30h] [rbp-470h] char myinput; // [rsp+40h] [rbp-…
Windows_Reverse1  2019_DDCTF 查壳 脱壳 脱壳后运行闪退,(或许需要修复下IAT??),先IDA 静态分析一下 int __cdecl main(int argc, const char **argv, const char **envp) { char v4; // [esp+4h] [ebp-804h] char v5; // [esp+5h] [ebp-803h] char v6; // [esp+404h] [ebp-404h] char Dst; // [e…
Mysterious  BUUCTF-2019 int __stdcall sub_401090(HWND hWnd, int a2, int a3, int a4) { char v5; // [esp+50h] [ebp-310h] CHAR Text[4]; // [esp+154h] [ebp-20Ch] char v7; // [esp+159h] [ebp-207h] __int16 v8; // [esp+255h] [ebp-10Bh] char v9; // [esp+257h…
xx 程序开始验证输入长度为19位. 取前4位(作为后面加密的key),验证这4位都在'qwertyuiopasdfghjklzxcvbnm1234567890'中. 将key用0填充为16位 调用xxtea进行加密,加密结果再进行置换. 再进行异或操作 最终比较 wp import struct _DELTA = 0x9E3779B9 def _long2str(v, w): n = (len(v) - 1) << 2 if w: m = v[-1] if (m < n - 3) or…
secret-string-400 school-ctf-winter-2015 解压文件得到html和js文件 Task.html <html> <head> <title>JSMachine</title> <meta charset="UTF-8"> <script type='text/javascript' src='Machine.js'></script> </head> &l…
Guess-the-Number  su-ctf-quals-2014 使用jd-gui 反编译jar import java.math.BigInteger; public class guess { static String XOR(String _str_one, String _str_two) { BigInteger i1 = new BigInteger(_str_one, 16); BigInteger i2 = new BigInteger(_str_two, 16); Bi…
EasyRE 主函数 int sub_401080() { unsigned int lens; // kr00_4 signed int i; // edx char *v2; // esi char v3; // al unsigned int j; // edx int v5; // eax __int128 myinput; // [esp+2h] [ebp-24h] __int64 v8; // [esp+12h] [ebp-14h] int v9; // [esp+1Ah] [ebp…
tinyctf-2014 elrond32 1 int __cdecl main(int a1, char **arg_input) 2 { 3 if ( a1 > 1 && check_8048414(arg_input[1], 0) ) 4 { 5 puts("Access granted"); 6 print_flag_8048538((int)arg_input[1]); 7 } 8 else 9 { 10 puts("Access denied…
EASYHOOK XCTF 4th-WHCTF-2017 1 data=[ 0x61, 0x6A, 0x79, 0x67, 0x6B, 0x46, 0x6D, 0x2E, 0x7F, 0x5F, 2 0x7E, 0x2D, 0x53, 0x56, 0x7B, 0x38, 0x6D, 0x4C, 0x6E, 0x00] 3 data[18]^=0x13 4 for i in range(17,-1,-1): 5 t=i^data[i] 6 if i%2: 7 data[i]=t+i 8 else:…
2ex1 CISCN-2018-Quals mark 1 import base64 2 3 std_base= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" 4 mg_base='@,.1fgvw#`/2ehux$~\"3dity%_;4cjsz^+{5bkrA&=}6alqB*-[70mpC()]89noD' 5 6 en_trantab=str.maketrans(std_b…
Newbie_calculations Hack-you-2014 题目名百度翻译成新手计算,那我猜应该是个实现计算器的题目.... IDA打开程序,发现一长串的函数反复调用,而且程序没有输入,只有输出.额,那这样的话程序运行就应该输出flag,但程序中肯定会有垃圾循环操作,就让你跑不出来.0.0 这种题目就要分析函数作用,简化,自己实现算法. 程序流程: 1 for ( i = 0; i < 32; ++i ) 2 flag[i] = 1; 3 v121 = 0; 4 puts("You…
 android-app-100  suctf-2016 jeb启动,找到点击事件: 验证流程: 输入作为参数 --> processObjectArrayFromNative 得到一返回值(ret_a) --> IsCorrect 返回0,失败:返回1,成功 --> 输出"Sharif_CTF("+md5(str(d+ret_a)+" "+")"      (.d = 0x1BEBE) 可以发现flag的获取关键在于proce…
debug  XCTF 3rd-GCTF-2017 .net程序,这里我用的dnspy,当然.net Reflector也很好用. 查看程序,发现是明文比较,下断,debug,完成. flag{967DDDFBCD32C1F53527C221D9E40A0B}…
reverse-for-the-holy-grail-350   tu-ctf-2016 程序流程很简单,就一个检验函数: 1 __int64 __fastcall stringMod(__int64 *a1) 2 { 3 __int64 length; // r9 4 char *c_str; // r10 5 __int64 i; // rcx 6 signed int v4; // er8 7 int *temp_2; // rdi 8 int *temp_3; // rsi 9 sign…
babymips   XCTF 4th-QCTF-2018 mips,ida中想要反编译的化需要安装插件,这题并不复杂直接看mips汇编也没什么难度,这里我用了ghidra,直接可以查看反编译. 1 void FUN_004009a8(void) 2 3 { 4 int iVar1; 5 int i; 6 byte input [36]; 7 8 setbuf(stdout,(char *)0x0); 9 setbuf(stdin,(char *)0x0); 10 printf("Give me…
hackme XCTF 3rd-GCTF-2017 __int64 __fastcall sub_400F8E(__int64 a1, __int64 a2) { char input[136]; // [rsp+10h] [rbp-B0h] int v4; // [rsp+98h] [rbp-28h] char v5; // [rsp+9Fh] [rbp-21h] int v6; // [rsp+A0h] [rbp-20h] unsigned __int8 c; // [rsp+A6h] [r…