吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5408|回复: 10
收起左侧

[CTF] 【CTF习题】DragonQuest

[复制链接]
whklhh 发表于 2018-3-18 15:05
本帖最后由 whklhh 于 2018-3-18 15:07 编辑

NUST南理校赛
DragonQuest

附件中有原题和Patch过后的两个Dll
这个题目难度不大,但是思路很有趣,所以分享一下~
建议先自己玩玩看~

分析

解压得到exe和dll
顺手拖入IDA,发现是.NET程序
dnspy打开发现主程序加壳了,查了一下壳无果
exeinfoPE还推荐我用RL!dePacker和QuickUnpack这两个万能脱壳机,坑爹呢这是~我还以为它觉得能脱呢,折腾了半小时研究怎么用,最后发现:不!这壳不好脱!(╯‵□′)╯︵┻━┻

于是运行了一下,发现是个打怪的游戏

查看了一下dll,发现没加壳,并且代码接近完整:

这就有两个疑点了:

  1. 一般如果想考察脱壳的话,没道理一个加另一个不加。(虽然如果出题人就是懒的话好像也没啥毛病
  2. 这个程序没必要用dll,总不能是为了复用性吧。

由这两个疑点,再加上这个题目的类型是游戏,而游戏异于CrackMe的区别在于,它的胜利方法一般是通关,即打败Monster,因此可以猜想

出题人压根没准备脱壳
解题方法为
用CheatEngine一类的作弊器干翻这个游戏
或者修改Dll从属性层面搞死Monster

CheatEngine作弊

要修改就必须通过数值查找地址,试玩了两下发现敌人只会在第一回合攻击,之后就发呆等死了
然而我方两个人物的Attack都是不破防的,完全不伤血
因此或者修改龙的防御属性,或者修改自己的攻击属性

从Dll的类中可以看到属性

    //龙
    this.hp = 7000;
    this.mp = 0;
    this.atk = 2000;
    num = (num2 * 3949928697u ^ 1386209395u);
    this.def = 3000;

    //菜逼主角
    public Druid()
    {
            this.hp = 60;
            this.mp = 160;
            this.atk = 100;
            this.def = 20;
    }

相对而言,100这个值较小,容易搜出很多无关的东西
于是我选择搜索少见的3000和7000
将它们分别更改成0和100后,再Attack即可  

DllPatch

由于属性写在Dll中,毫无防备,因此可以直接修改静态的部分

这里还不知道计算方法是哪方先攻,所以稳妥一点的话把自己的hp/def调高一点比较好  

Patch以后编译保存,替换原来的dll再运行即可  

校验以后发现不知是对方先攻还是自己死就GameOver,总之第一回合硬肛是不行滴~
得用盾苟到第二回合再Attack才能拿到flag  

另外还可以修改Dragon的hp,看看isDead()方法是什么时候调用的呢~  

盾反!  

我还没有出力你怎么就倒下了!太弱了!

后记

理论上来说应该还有第三种方法--脱壳,flag估计是明文存储在exe里的吧~所以要加壳来堵住查看方法  

以往这种游戏类的题目要不是通关后通过一个很复杂的函数生成flag,要不是通关过程中解密flag,总之都是可以通过静态分析搞出flag生成函数的  (正常游玩找不到flag的不算=A=比如某Xp0int的魂斗罗真是~锁血通关了都没找到flag,好气啊)
这个加难度较高的壳的玩法挺有新意的~  

可以看得出出题人还是很用心的,题目难度不高,但是很考量思路
很有趣!

如果一直硬肛这壳的话可能比赛结束都出不来吧><  

PS:出题人说是dotconfuser的壳
PPS:萌新再等一个脱壳教学
PSP:出题人是不是怪物虐人厨啊/w\




patch.rar

38.33 KB, 下载次数: 10, 下载积分: 吾爱币 -1 CB

DragonQuest.zip

60.09 KB, 下载次数: 16, 下载积分: 吾爱币 -1 CB

点评

dalao带我飞!  发表于 2018-3-18 16:37

免费评分

参与人数 7威望 +1 吾爱币 +14 热心值 +6 收起 理由
逐月枫 + 1 用心讨论,共获提升!
pk8900 + 1 + 1 支持楼主!!!!
Tim-52Pojie + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
就是这么帅 + 1 + 1 谢谢@Thanks!
gink + 1 + 1 热心回复!
方天化。 + 1 + 1 我很赞同!
Sound + 1 + 8 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

村长是我那里 发表于 2018-3-18 16:37
感谢发布,吾爱破解论坛因你更精彩!
就是这么帅 发表于 2018-3-18 18:57
chenjingyes 发表于 2018-3-19 00:34
RuiKe、尛潹潹 发表于 2018-3-19 09:07
学到了 哈哈哈哈
yikuaidao 发表于 2018-3-19 11:48
分析的很到位
 楼主| whklhh 发表于 2018-4-3 22:10
MozhuCY 发表于 2018-4-3 21:53
学到了........第一次patch c#

C#的Patch题目还有之前那个Harekaze的15Puzzle 比这个难度稍微大一丢丢 也很有意思
逐月枫 发表于 2018-4-4 11:29
提供了一个思路咧 试试手上这个
Lxai 发表于 2018-4-4 14:35
喜欢这种有思路的
cx9208 发表于 2018-4-10 11:46
可以用论坛里一个脱ConfuserEx的教程脱壳

DragonQuest-unpacked-cleaned_strdec_noproxy-cleaned-cleaned-cleaned.zip

10.85 KB, 下载次数: 3, 下载积分: 吾爱币 -1 CB

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-16 15:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表