热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:攻防世界reverseBabyXor

篇首语:本文由编程笔记#小编为大家整理,主要介绍了攻防世界reverseBabyXor相关的知识,希望对你有一定的参考价值。BabyXor  

篇首语:本文由编程笔记#小编为大家整理,主要介绍了攻防世界 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}


推荐阅读
  • 开发笔记:LA2995  Image is everything
    本文由编程笔记#小编为大家整理,主要介绍了LA2995Imageiseverything相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Python彻底搞懂中文乱码问题
    本文转自:https:blog.csdn.netjoyfixingarticledetails79971667感谢作者!前言曾几何时Python中文乱码的问题困扰了我很多很多年,每 ... [详细]
  • 最近业务中需要用Python写一些脚本。尽管脚本的交互只是命令行+日志输出,但是为了让界面友好些,我还是决定用中文输出日志信息。 很快,我就遇到了异常:UnicodeEncodeE ... [详细]
  • GC1.怎么回收的lua中所有已经分配的数据都会用一些指令的数据结构来记录,当需要回收时,先遍历当前栈内所有object,把ref标志位打上1,遍历符号表(这部分不能回收),反符号 ... [详细]
  • 1、sqlite3_open打开数据库函数,若数据库不存在,则创建打开数据库m_db数据库句柄db_filename数据库位置sqlite3 ... [详细]
  • 开发笔记:基于原生js的图片轮播效果简单实现
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于原生js的图片轮播效果简单实现相关的知识,希望对你有一定的参考价值。 ... [详细]
  • *[正则表达式匹配]        [题目]请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示 ... [详细]
  • Java如何使用Collections.sort对中文进行排序方式
    本篇文章为大家展示了Java如何使用Collections.sort对中文进行排序方式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍 ... [详细]
  • 浅析Python模块之间的相互引用问题
    这篇文章主要介绍了Python模块之间的相互引用问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值, ... [详细]
  • Python 面向对象 封装案例 ll
    目标士兵突击案例身份运算符封装1,封装是面向对象编程的一大特点2,面向对象编程的第一步--将属性和方法封装到一个抽象的类中3,外界使用类创 ... [详细]
  • key_ctrl主要用于监控键盘按钮,定义按钮功能,便于智能车的控制和调试该包主要包含:key.hkey_ctrl_node.cpp ... [详细]
  • 打开文件是由参数-filename指定标识文件,将其与流对象相关联,以便对文件内容执行输入/输出操作。参数-mode指定打开模式。 ... [详细]
  • Day33 并发编程(三) 线程池进程池,协程
    1.进程池和线程池开进程和开线程都需要消耗资源,只不过线程相比进程耗费的资源较小,但是计算机的硬件是有限制的,我们不能无限制的去开启进程或者线程.进程池和线程池能帮助我们在计算机承 ... [详细]
  • vs中检测内存泄漏的方法分类:MFC2013-03-0821:442764人阅读评论(0)收藏举报使用vs的内存检测有以下几种方法。在debug模式下以F5运行:方法一:[html ... [详细]
  • 1006最长公共子序列Lcs基准时间限制:1秒空间限制:131072KB分值:0难度:基础题收藏关注给出两个字符串AB,求A与B的最长公共子序列(子序列不要求是连续的 ... [详细]
author-avatar
劲吻2502877607
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有