0%

[网鼎杯 2020 青龙组]jocker super123的WriteUp

2023-10-04 10:35By
super123
反调试花指令逆向堆栈不平衡XOR
ayout: 刷题
title: 网鼎杯-2020-青龙组-jocker
typora-root-url: 网鼎杯-2020-青龙组-jocker

(SMC自解密+XOR+猜!)

正如这道题的名字,我做的时候就挺jocker的,题不是很难,但是最后的猜猜大法才能出flag是我没想到的,而且就算是把flag解出来了,给程序也不会有正确的回显,这就挺.....jocker

IDA打开,很容易知道flag为24位,进行了三个加密,我们分别分析

image-20231004181449084

wrong函数,就是一个简单的加密函数

image-20231004181735810

omg函数就是对上面那个函数的检验

image-20231004181820843

这里我们就可以解出第一层密码,我们可以知道这个密码是假的

下面的两个函数需要进行SMC解密

对于SMC两种方法,一种用脚本,一种直接动调

脚本:

from idc_bc695 import *
s=0x402219                   #加密地址
for i in range(224):            #循环
    PatchByte(s+i,Byte(s+i)^0x41)          #加密的间隔   Byte(s+i)^0x99表示需要进行的加密操作

使用动调其实更好追踪

动调

对于encrypt函数,就是一个简单的异或加密,这里我们提取数据,进行异或就可以解出前十八个字符

image-20231004182807653

接下来就到了最jocker的时刻,

finally函数,这里通过合理猜测,我们可以知道%tp&:这五个就是我们的对比字符,然后仔细分析下面的代码,我们可以惊奇的发现,这个代码是无意义的!!!!!

后来乱猜,异或,把:异或了}试了试,最后解出flag.......

image-20231004182948862

flag{d07abccf8a410cb37a}

还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有

加载中...

加载失败
广告
×
评论区
添加新评论