安洵杯RE(PE_Debug)
本帖最后由 lihaohua 于 2018-11-28 23:46 编辑拿到题目名字已给出提示PE结构OD打开查看一下字符串
啥也莫得用PEinfo 查看一下区块发现端倪
参照了一下逆向工程核心原理
用PEditor修改一下大小E00
放OD里跑一下修改了PE区块rdata大小之后 可以看到一下数据
这里看到base64的table 猜测后面会用到base64的加密动态调试了一下发现这里的一个bug
感到很奇怪 ,调试了发现执行了int 0x2D 程序直接结束了 ,修改一下保存
发现程序能够正常运行了,继续调试会发现无论如何都不能执行到正确的输出,(也有可能是我太菜了)。
IDA启动!
看一下关键代码int sub_401080()
{
char v0; // ST2B_1@2
int result; // eax@5
signed int v2; // ecx@7
__int16 *v3; // @1
signed int v4; // @6
char v5; // @6
char v6; // @8
__int16 v7; // @1
int v8; // @1
int v9; // @1
int v10; // @1
int v11; // @1
int v12; // @1
int v13; // @1
int v14; // @1
__int16 v15; // @1
int v16; // @1
int v17; // @1
char v18; // @1
v15 = 0;
v16 = 0;
v17 = 0;
v18 = 0;
v7 = 0;
v8 = 0;
v9 = 0;
v10 = 0;
v11 = 0;
v12 = 0;
v13 = 0;
v14 = 0;
sub_401020("first,you need make program run\n");
sub_401020("please input flag:\n");
sub_401050("%s", &v7); // input
v3 = &v7;
do
{
v0 = *(_BYTE *)v3;
v3 = (__int16 *)((char *)v3 + 1);
}
while ( v0 );
if ( v3 != (__int16 *)((char *)&v7 + 1) && strlen((const char *)&v7) < 0x1E )// flag长度
{
sub_4013F0(&v15);
sub_4012A0((const char *)&v7, (int)&v5); // base64加密
v4 = 10;
while ( 1 )
{
v2 = v4--;
if ( !v2 )
break;
if ( *((_BYTE *)&v15 + v4) != v6 || *(&v5 + 2 * v4) + 2 != (off_404018 ^ 3) )// v15=v6||v5+2==str1^3
{
sub_401020("sry,u are wrong :(\n");
system("pause");
return 0;
}
}
sub_401020("Congratulation, flag is:\nD0g3{%s}\n");
system("pause");
result = 0;
}
else
{
sub_401020("sry,u are wrong :(\n");
system("pause");
result = 0;
}
return result;
}
大概的运算意思就是
两组数据加密奇偶穿插其中例如 str1:123456 Str2:abcdef Flag:1a2b3c4d5e6f 拿到数据之后逆运算一下# -*- coding: UTF-8 -*-
import base64
str1 = "LKd8gPYWS["
str2 = "2TVBnx0lnn"
flag= ''
flags = ''
#MFe9bQXRNV
for i in range(len(str1)):
flag += chr((ord(str1)^3) -2)
print(flag)
for j in range(10):
if j % 2 ==0:
flags += flag+str2
print(flags)
else:
flags += flag+str2
print(flags)
flags = base64.b64decode(flags)
print(flags)
#outM2FTeV9BbnQxX0RlNnVn
这道题其实考察了很多知识点,当时由于比赛冲突,没仔细看就放弃了,现在看来题目质量不错啊 好复杂的说啊 前来学习一下{:1_893:} 核心原理。。。看到这本书突然就好怀念 不觉明历哦,看不懂;
好复杂的说啊 感谢分享 现在的CTF真多啊, 啥啥杯都来了。。。 考察了好几个点啊。感谢分享 不错的文章
页:
[1]
2