[网鼎杯 2020 青龙组]jocker

过程中借鉴博客

IDA出现"sp-analysis failed"和F5(反编译)失败-CSDN博客

网鼎杯 2020 青龙组jocker(详解)-CSDN博客

运行获得关键信息

我们分析函数的时候,这里有个报错

然后汇编是这样

有个 sp栈报错

这里我先谈谈我的理解,因为这道题的还有smc的成分,所以在之前的代码中,IDA看encry加密里面可能有return什么的,让栈报错啥的,让IDA分析错误,那么我们在SMC后,重新编译下就OK了

至于其他wp说那个改地址,我感觉没有必要,重新编译后就OK了

这个就是SMC

我们断在后面

然后在汇编中将函数重新编译就正常了

flag{d07abccf8a410c

解出来会少一部分

我们再对下面的finally函数进行重新编译(可能因为SMC的原因,一部分encry的代码干扰了finall让finally也G了)

从函数开始到所以红色的

重新编译就OK

但是这一段的逻辑很混乱

我也是看的其他人的wp才理解到思路------v3这五个字符,可能是和前面加密一样的操作,来得到flag,最后一个一定是},所以我们通过最后一个得到key,然后进行操作

脚本如下

python 复制代码
import string
a='hahahaha_do_you_find_me?'
b=[0x0000000E, 0x0000000D, 0x00000009, 0x00000006, 0x00000013, 0x00000005, 0x00000058, 0x00000056,
    0x0000003E, 0x00000006, 0x0000000C, 0x0000003C, 0x0000001F, 0x00000057, 0x00000014, 0x0000006B,
    0x00000057, 0x00000059, 0x0000000D, ]
flag=''
for i in range(len(b)):
    flag+=chr(b[i]^ord(a[i]))
print(flag)
c='%tp&:'
for i in range(len(b),len(a)):
    flag+=chr(ord(c[i-len(b)])^71)
print(flag)
for i in string.printable:
    if(ord(c[len(c)-1])^ord(i)==ord('}')):
        print(ord(i))
相关推荐
yuyuxun11 小时前
协同过滤的校园二手物品智能推荐系统的设计与实现 毕业设计-附源码40082
javascript·vue.js·spring boot·python·数据分析·django·课程设计
如夏倾城2 小时前
百度文心(容易被忽略的好用AI)使用方式
人工智能·python·百度·语言模型·dubbo
用户019027581612 小时前
quotes 实时价和 klines 最新收盘价为什么对不上?
python
another heaven2 小时前
【C/C++ Ranges 是零开销抽象吗?拆开管道、惰性求值和编译期膨胀】
c语言·开发语言·c++
少司府3 小时前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
打工仔折腾 AI4 小时前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
火云代理4 小时前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip
SomeOtherTime4 小时前
Rust 闭包语法和原理(AI回答)
开发语言·后端·rust
apcipot_rain4 小时前
C++转Java日记(10)
java·开发语言
总要学点什么5 小时前
第105篇:三维特效-流动图片墙体效果——让箭头沿墙长滚,它俩竟是同一份代码
开发语言·javascript·ecmascript·gis·webgl·材质·cesium