攻防世界 reverse BabyXor
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, "世界上最简单的Xor");
sub_40107D(v0, (int)sub_40102D);
if ( --stru_436270._cnt < 0 )
{
_filbuf(&stru_436270);
}
else
{
v1 = (unsigned __int8)*stru_436270._ptr;
++stru_436270._ptr;
}
v2 = first_xor_40108C((int)dword_435DC0, 56); // for ( i = 0; i < (signed int)(a2 >> 2); ++i )
// sprintf(&v3[i], "%c", i ^ *(_DWORD *)(a1 + 4 * i));
// return v3;
//
//
v3 = second_xor_401041((int)dword_435DC0, (int)dword_435DF8, 56u);// sprintf(v5, "%c", *(_DWORD *)a2);
// for ( i = 1; i < (signed int)(a3 >> 2); ++i )
// sprintf(&v5[i], "%c", *(_DWORD *)(a1 + 4 * i) ^ *(_DWORD *)(a2 + 4 * i) ^ *(_DWORD *)(a1 + 4 * i - 4));
// return v5;
//
//
v4 = malloc(0x64u);
v5 = strlen(v3);
memcpy(v4, v3, v5);
v6 = third_xor_4010C3((int)dword_435DC0, (int)v3, (int)dword_435E30, 56);// v7 = (char *)malloc(a4 - 1);
// v6 = (char *)malloc(4 * a4 - 1);
// for ( i = 0; i < (signed int)((a4 >> 2) - 1); ++i )
// {
// sprintf(&v6[i], "%c", *(_DWORD *)(a3 + 4 * i + 4) ^ *(char *)(i + a2));
// sprintf(&v7[i], "%c", i ^ v6[i]);
// }
// sprintf(&byte_439558, "%c", dword_435E30[0] ^ dword_435DF8[0]);
// strcat(&byte_439558, v7);
// return &byte_439558;
//
//
sub_40101E((int)v2, (int)v3, (int)v6);
return 0;
}
动态调试
在401712处下断就可得到flag

wp:
#!/usr/bin/python
dword_435DC0=[102, 109, 99, 100, 127, 55, 53, 48, 48, 107, 58, 60, 59, 32 ]
dword_435DF8=[55, 111, 56, 98, 54, 124, 55, 51, 52, 118, 51, 98, 100, 122]
dword_435E30=[26,0,0,81,5,17,84,86,85,89,29,9,93,18,0,0]
temp=[]
flag=''
for i in range(14):
flag+=chr(dword_435DC0[i]^i) flag+=chr(dword_435DF8[0])
temp.append(dword_435DF8[0])
for i in range(1,14):
x=dword_435DC0[i]^dword_435DF8[i]^dword_435DC0[i-1]
flag+=chr(x)
temp.append(x) x=''
for i in range(13):
x+=chr(dword_435E30[i+1]^(temp[i])^i)
flag+=chr(dword_435E30[0] ^ dword_435DF8[0])+x
print(flag)
flag{2378b077-7d6e-4564-bdca-7eec8eede9a2}
攻防世界 reverse BabyXor的更多相关文章
- 攻防世界 reverse 进阶 10 Reverse Box
攻防世界中此题信息未给全,题目来源为[TWCTF-2016:Reverse] Reverse Box 网上有很多wp是使用gdb脚本,这里找到一个本地还原关键算法,然后再爆破的 https://www ...
- 攻防世界 reverse evil
这是2017 ddctf的一道逆向题, 挑战:<恶意软件分析> 赛题背景: 员工小A收到了一封邮件,带一个文档附件,小A随手打开了附件.随后IT部门发现小A的电脑发出了异常网络访问请求,进 ...
- 攻防世界 reverse tt3441810
tt3441810 tinyctf-2014 附件给了一堆数据,将十六进制数据部分提取出来, flag应该隐藏在里面,(这算啥子re,) 保留可显示字符,然后去除填充字符(找规律 0.0) 处理脚本: ...
- 攻防世界 reverse 进阶 APK-逆向2
APK-逆向2 Hack-you-2014 (看名以为是安卓逆向呢0.0,搞错了吧) 程序是.net写的,直接祭出神器dnSpy 1 using System; 2 using System.Diag ...
- 攻防世界 reverse Windows_Reverse2
Windows_Reverse2 2019_DDCTF 查壳: 寻找oep-->dump-->iat修复 便可成功脱壳 int __cdecl main(int argc, con ...
- 攻防世界 reverse parallel-comparator-200
parallel-comparator-200 school-ctf-winter-2015 https://github.com/ctfs/write-ups-2015/tree/master/sc ...
- 攻防世界 reverse 进阶 8-The_Maya_Society Hack.lu-2017
8.The_Maya_Society Hack.lu-2017 在linux下将时间调整为2012-12-21,运行即可得到flag. 下面进行分析 1 signed __int64 __fastca ...
- 攻防世界 reverse easy_Maze
easy_Maze 从题目可得知是简单的迷宫问题 int __cdecl main(int argc, const char **argv, const char **envp) { __int64 ...
- 攻防世界 reverse seven
seven hctf2018 这是一个驱动文件 ida载入,查找字符串 根据字符串来到函数:sub_1400012F0 __int64 __fastcall sub_1400012F0(__int6 ...
随机推荐
- 中英文混排网站排版指南 All In One
中英文混排网站排版指南 All In One 排版 数字与单位 正确 5G 的下载速度可以达到 1Gbps,4G 为100Mbps 1Gbps === 1000Mbps 错误 5G的下载速度可以达到1 ...
- javascript nested object merge
javascript nested object merge deep copy Object reference type function namespace(oNamespace, sPacka ...
- taro ENV & NODE_ENV & process.env
taro ENV & NODE_ENV & process.env https://github.com/NervJS/taro-ui/blob/dev/src/common/util ...
- TypeScript 3.7 RC & Optional Chaining
TypeScript 3.7 RC & Optional Chaining https://devblogs.microsoft.com/typescript/announcing-types ...
- 揭秘高倍矿币 Baccarat BGV,为何NGK DeFi的财富效应如此神奇?
作为区块链4.0代表的NGK公链,这次也将借助它自己的DeFi版块NGK Baccarat,开启属于它自己的千倍财富之旅. 如果说,比特币能让没有银行账户的人,可以在全球任何时间.地点都能自由进行交易 ...
- C++算法代码——纪念品分组[NOIP2007 普及组]
题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1099 https://www.luogu.com.cn/problem/P1094 ...
- 自己写的一个抢票加速的Python小程序源码分享-----纯属娱乐
最近这段时间频频看到微信群里发什么 抢票加速,智行.携程.飞猪.美团,对于我这能坐客车就不坐火车的人来说,无所谓靠谱不靠谱 突发奇想的整理了下整个抢票加速的逻辑,写了这个小程序,代码很low,拒绝批评 ...
- spring-ioc注解-理解2 零配置文件
没有xml配置文件下的对象注入,使用到一个Teacher类,Config配置类,Test测试类. 1.Teacher类 import lombok.Data; import org.springfra ...
- TKMybatis
TKMybatis与Mybatis-plus都是mybatis的扩展,有相同的地方,也有不同的地方. 1.导入坐标 <!--mybatis依赖--> <dependency> ...
- HTTPS:网络安全攻坚战
本文为<三万长文50+趣图带你领悟web编程的内功心法>第五个章节. 5.HTTPS 我们知道,明文传输和不安全是HTTP的其中一个特点,但是随着越来越多机密的业务交易转移到线上,如银行转 ...