re学习笔记(62)2020网鼎杯-白虎组-Re-恶龙

   日期:2020-05-17     浏览:173    评论:0    
核心提示:恶龙题目:恶龙题目描述:这是一个与史莱姆和恶龙战斗的故事,请战胜三头恶龙,取得flag。张三长老说,试图patch这个程序的人会得到错误的flag…IDA64载入进入main函数main函数会循环执行dround函数,次数是3次,次数bossexist在main函数之前的init里被初始化。outflag函数输出flaginit函数同时被初始化的还有unief=100 coin(金钱) =5此时outflag的一个参数flag4已经知道了。。dround函数里面有三个选项,数字1打密码学

题目:恶龙
题目描述:这是一个与史莱姆和恶龙战斗的故事,请战胜三头恶龙,取得flag。张三长老说,试图patch这个程序的人会得到错误的flag…

IDA64载入进入main函数

main函数会循环执行dround函数,次数是3次,次数bossexist在main函数之前的init里被初始化。outflag函数输出flag

init函数

同时被初始化的还有unief=100 coin(金钱) =5

此时outflag的一个参数flag4已经知道了。。

dround函数里面有三个选项,数字1打小怪,数字2打boss,数字3商店买东西。

小怪是随机打过的,商店store函数里可用两个金币换1战斗力

boss函数里面有判断,分别当bossexist == 3、bossexist == 2、bossexist == 1的时候并且战斗力eff高于boss的时候执行三个加密函数。而只有三次选择事件的机会,也就是说这三次事件都是2 打BOSS

看了一下加密函数的参数都是固定的,,题目描述说不可以patch会得到错误flag,大概是因为按顺序执行加密函数吧。

两个思路:一个是断点下断,然后改跳转标志位达到预期走向。

另一个就是修改战斗力eff了。

真不知道题目描述中张三长老说的话是提示还是啥,,,

战斗力eff是全局变量,随便下个断点,断下来后修改全局变量,进行byte patch

修改成ffffff7f,也就是int的最大值(小端序存放


然后连续三天都打boss,,flag就出来了。。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服