攻防世界 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 ...
随机推荐
- USB2.0协议学习笔记---USB数据包结构
USB包类型和传输过程 USB是一种串行总线,因此数据都是一位一位传输的,如同串口那样,但是USB在真实物理电路上却不是TTL电平,而是一种差分信号采用NRZI编码,就是用变化表示0,不变表示1,同 ...
- js uppercase first letter
js uppercase first letter const str = `abc`; str.slice(0, 1).toUpperCase(); // "A" str.sli ...
- Swift 5.3
Swift 5.3 https://swift.org/blog/ refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
- css dark theme & js theme checker
css dark theme & js theme checker live demo https://codepen.io/xgqfrms/pen/GRprYLm <!DOCTYPE ...
- React Native 三端同构
React Native 三端同构 https://www.ibm.com/developerworks/cn/web/wa-universal-react-native/index.html rea ...
- uniapp设置不同的主题(Theme)
App.vue: <style lang="stylus"> @css { html { --primary: blue; --bg-image: url(https: ...
- nasm astricmp函数 x86
xxx.asm: %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export as ...
- html转png
/*海报弹窗2018-3-14*/.diglogimg{position: fixed;top:0;left:0;z-index: 99;width: 100%;height: 100%;backgr ...
- NGK生态商城即将上线官网,推动生态落地应用
NGK生态商城即将上线官网,以推动生态落地应用.此举意味着NGK生态将跻身区块链顶尖之列,同时,NGK代币.NGK Dapp游戏 "呼叫河马" 以及NGK DeFi项目Baccar ...
- IDEA 敏捷开发技巧——后缀完成
前言 "工欲善其事,必先利其器." 所以说今天来看一看如何压榨 IDEA ,让你的 IDEA 使用的更顺手! 今日技巧: 后缀完成 自定义后缀完成模版 示例 上面动图使用了 .so ...