两道逆向CTF题

2024-03-02 16:59
文章标签 ctf 逆向 两道

本文主要是介绍两道逆向CTF题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:https://pan.baidu.com/s/1rToDORyPLcsrlVT3WSWuCA
提取码:2f1m

第一题re1

1、用查壳工具检查程序没加壳,使用IDA64打开,找到main()函数,按F5进行反编译
在这里插入图片描述
2、(方法一)把v7转化成字符串,有7个字符以及一个结束符‘\0’,可以注意到v7和v8的地址是连着的,又是小端存储的方式,所以v7实际上"harambe"
在这里插入图片描述
sub_4007C0()函数打印不正确,所以flag的长度就等于v8的长度,而v8[i % v6 - 8]实际上就是v7[i % v6]
在这里插入图片描述
在这里插入图片描述
(方法二)或者直接把v7的类型改成char类型,已经知道v7和v8的地址是连着的,v7的长度是8+v8的长度28=36,所以直接把v7改成char v7[36],后面的代码也会相应的改变
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、编写脚本

//方法一
#include<stdio.h>int main()
{int i;char flag[19]="";char v7[]="harambe";char v8[]=":\"AL_RT^L*.?+6/46";int v6=7;for(i=0;i<18;i++){flag[i] = (char)(v7[i % v6] ^ v8[i]);}printf("%s",flag);return 0;
}//方法二
#include<stdio.h>
#include<string.h>int main()
{int i;char v7[36]="";char flag[19]="";int v6=7;strcpy(&v7[8], ":\"AL_RT^L*.?+6/46");strcpy(v7, "harambe");for(i=0;i<18;i++){flag[i] = (char)(v7[i % v6] ^ v7[i + 8]);}printf("%s",flag);return 0;
}

在这里插入图片描述

第二题IgniteMe

1、用查壳工具检查程序没加壳,使用IDA32打开,在start()函数,按F5进行反编译
在这里插入图片描述
2、所以sub_401050()函数要返回1,byte_403180就等于byte_403000,而byte_403000和v4已知,所以就知道byte_403078
在这里插入图片描述
在这里插入图片描述
v4的值
3、求v4的值
(1)__ROL4__函数是向左移了4位,0x80070000是十六进制,移4位以后的十六进制就是0x00700008,在右移一位,后16位就是0x0004,v4是char类型,就是0x04
(2)使用Ollydbg动态调试,在00401000处按F2下个断点,按F9运行,在命令行里面随便输入字符回车,再按F8单步调试RETN,可以看到EAX值为函数返回的v4的值,v4为char类型,即0x04
在这里插入图片描述
在这里插入图片描述
(3)在给v4赋值后面一句代码以及sub_401000函数里面返回处下断点按F2下断点,按F9进行调试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击按钮运行,输入字符串,点击Debugger windows选择Locals
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按F8进行单步调试,可以看到v4的值为0x04
在这里插入图片描述
4、已经知道byte_403078,它等于v5,flag又等于v5,倒推回去就可以得到flag
在这里插入图片描述
5、编写脚本

#include<stdio.h>int main()
{int flag[40] = {0};int v4 = 4;int i;int v1=39;   //byte_403180的长度int byte_403180[40]={0x0D,0x26,0x49,0x45,0x2A,0x17,0x78,0x44,0x2B,0x6C,0x5D,0x5E,0x45,0x12,0x2F,0x17,0x2B,0x44,0x6F,0x6E,0x56,0x09,0x5F,0x45,0x47,0x73,0x26,0x0A,0x0D,0x13,0x17,0x48,0x42,0x01,0x40,0x4D,0x0C,0x02,0x69};for ( i = v1 - 1; i >= 0; --i ){flag[i] = v4 ^ byte_403180[i];v4 = flag[i];}for(i=0; i<39; i++){printf("%c", flag[i]);}return 0;
}

在这里插入图片描述

这篇关于两道逆向CTF题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/766827

相关文章

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

两道笔试题

“char a='\72'”是什么意思? 这么理解:\为转义字符,\072转义为一个八进制数072,也就是十进制数的58买一送一,将转义字符对照表也一并贴给你吧:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT

转:android ro.debuggable属性调试修改(mprop逆向)

android ro属性调试修改(mprop逆向)      大家都知道如果需要调试android 的程序,以下两个条件满足一个就行。第一是apk的配置文件内的AndroidManifest.xml的 android:debuggable=”true”,第二就是/default.prop中ro.debuggable=1。两种方式第一种通常是解包添加属性再打包,随着加壳软件以及apk校验等,容易出

某里227逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解阿里227版本滑块参数n的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有需要可联系我。 一

【MyBatis学习14】MyBatis的逆向工程生成代码

1. 什么是逆向工程 mybatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。 2. 使用逆向工程 使用mybatis的逆向工程,需要导入逆向

js逆向--cai招网

js逆向--cai招网 一、寻找加密入口1、抓包2、关键字搜索寻找加密入口 二、调试js三、python代码实现 一、寻找加密入口 1、抓包 目标数据来源网址为:https://search.bidcenter.com.cn/search?keywords=%E5%85%AC%E5%85%B1%E4%BD%8F%E5%AE%85,打开开发者工具进行抓包。 目标响应数据被加密。

NRF51822 小黄车智能锁 逆向工程

笔者在夜跑时发现有人将拆下的小黄车智能锁丢弃在花园角落,于是萌生了拆解的想法。 拆开外壳后发现MCU 是NRF51822 ,并且预留了Jlink 调试接口,更萌生了逆向这个电路板的想法 下面是 各个智能锁厂家提供的方案: 摩拜单车:STM32F1+GSM+GPS 使用芯片 STM32F401 + NRF51802(BLE)+TD1030 泰斗定位芯片+BQ25895(充电管理)+C3Hx(

某城user_dun,js逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解某城ly headers中参数userdun的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有

【js逆向专题】9.SM国密系列

本教程仅供学习交流使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,请各位自觉遵守相关法律法规。 目录 一.算法简介1.1 算法分类1.1.1 `SM2` 椭圆曲线公钥加密算法1.1.2` SM4 `分组加密算法 二.算法实现1. JavaScript实现1. `SM2`2. `sm3`3. `sm4` 2`python`实现1. `sm2`2.`sm3`3. `s