首页 > 其他分享 >【UNCTF逆向】Rejunk详解

【UNCTF逆向】Rejunk详解

时间:2023-03-01 17:36:32浏览次数:48  
标签:字符 题目 代码 flag UNCTF 异或 Rejunk 字符串 详解

进行了一学期的纯理论学习,深感实战的重要性,而在现阶段没有什么项目可以实操,故先从CTF题目开始做起,首先先熟悉熟悉各个工具的使用和逆向思路。

题目Rejunk


是一道从垃圾代码中找到价值代码,进行异或算法识别找到flag的题目。

解法

先用exeinfope查壳工具打开看一下文件的情况。

没有加壳,使用IDA进行打开。

是一个相当复杂的程序,还是找不到入手点,打开程序看看。

可以看到这个程序是需要我们输入一串字符,可能对字符进行某种运算(题目上讲明是异或运算),在与程序自带的字符串进行比较。所以在ida当中就可以打开strings。

可以看到这个程序当中的字符串,经过测试看到我的电脑存储方式是小端法,即高位存在高地址,所以准确的字符顺序应该是从WQG到twk。现在相当于已经找到了加密的字符,现在还不知道题目是进行了哪种异或运算使得这个flag变成被加密字符串进行比较,这个时候应该看看代码了。
按F5将汇编语言反汇编看到了伪代码,可以见得这边。

Dest这个字符串已经出现。v10这个量在【】当中,应该比较类似于string[i]的i的地位。而v16应该是我们输入的字符串存放的位置。所以异或操作也显而易见了。
就是待增量i和string[i]进行异或再加2得到了WQG..。所以只要反过来,WQG...^i-2就可以了。写一个简单的脚本。

运行得到flag

总结

因为算是正经做的第一题,所以绕了不少弯路。比如看到垃圾代码不知道哪里下手,搜了一下题解看到可以通过strings找到字符串,比如反过来从‘’twk到GUL,这里也是没搞清大端法和小端法的存储区别。比如扔到ida后查看伪代码显示失败,需要扔到32位(可能因为程序是32位而脱壳工具没显示)。比如不知道别人怎么写出来的key(也就是详细的异或操作),还重新学了一遍异或操作。比如不知道在char量和int在进行异或操作时是怎么实现的,后面查了是由char先变成asc2值再进行运算的,然后再对应asc2显示成字符变成需要的flag。

标签:字符,题目,代码,flag,UNCTF,异或,Rejunk,字符串,详解
From: https://www.cnblogs.com/Corax0o0/p/17168493.html

相关文章

  • Jmeter(五十一) - 从入门到精通高级篇 - jmeter之运动战(详解教程)
    ------------------------------------------------------------------- 转载自:北京-宏哥https://www.cnblogs.com/du-hong/p/13667219.html -------------------------......
  • Jmeter(五十) - 从入门到精通高级篇 - jmeter 之模拟弱网进行测试(详解教程)
    ------------------------------------------------------------------- 转载自:北京-宏哥https://www.cnblogs.com/du-hong/p/13667219.html -------------------------......
  • vue3的ref、reactive、toRefs特性详解
    了解ref()、reactive()这两个特性之前,我们先回顾一下vue2中data和method方法。在vue2中我们定义一个响应式变量name,通过点击事件handle来改变name的值是通过如下方式写的。......
  • 经常被问到的react-router实现原理详解
    在单页面应用如日中天发展的过程中,备受关注的少了前端路由。而且还经常会被xxx面试官问到,什么是前端路由,它的原理的是什么,它是怎么实现,跳转不刷新页面的...一大堆为什么,......
  • linux的cgroups详解
    引子最近在研究k8s,学习到容器的一些知识。了解到docker的核心原理:利用linuxnamespace隔离资源;利用cgroups限制资源的使用;利用chroot改变进程的根目录到指定的目录;我来......
  • 霍夫曼编码详解
    本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:​​information-theory​​】,需要的朋友们自取。或者公众号【AI......
  • Vue,小程序开发技术详解
    目前应用最广的三大前端框架分别是Vue、React和Angular。其中,不管是BAT大厂,还是创业公司,Vue都有广泛的应用。如今,再随着移动开发小程序的蓬勃发展,Vue也广泛应用到了......
  • 以太坊中状态树(MPT树)详解
    概述以太坊中采用的是基于账户的模式,也就是说系统中显示记录着每个账户的当前状态信息。每个账户都是由一个160位的地址组成,对应的账户中的状态包含余额(balance)、交易次......
  • (笔记)EtherCat报文格式详解
     说明:本文是从EtherCat初学者的角度来撰写的,详细介绍的其报文格式,特别是应用层与Canopen之间的关系。特别感谢:https://zhuanlan.zhihu.com/p/406428272?utm_id=0的贡献。......
  • win10如何彻底关闭自带defender杀毒软件【教程详解】
    windowsdefender是win10系统自带的杀毒软件,有的时候我们需要关闭它才能运行某些软件,而网上的一些针对关闭win10自带的杀毒软件的方法似乎并没有什么效果,下面就来教大家彻......