给萌新们介绍介绍 虽然我也是大一萌新啊…
https://down.52pojie.cn/Tools/ 各种工具的链接
re基础
必备工具:
ida 逆向必备 不多说
jadx 安卓反编译 直接看逻辑 很好用
Androidkiller 安卓逆向 也可 但是没有反编译
PEiD:查壳 分析文件的
kali:一个系统 装虚拟机里面吧 里面好多工具也很好用
包括但不限于以上工具
前置知识:
C语言基础 常见库函数你得懂吧
百度bing Google github等网站的搜索学习能力
各种常见算法 如异或 base系列 基本的排序啥的算法
汇编 RE必备 很难学 但是也得啃 可以看书 也可以看小甲鱼的视频
Python语言 不说学深的 但得能写脚本 调库 各种常见库的使用

推荐书籍:
《加密与解密》:看书看不懂就百度吧 前置知识自己补

Re 怎么打开
很简单的一道题目 主要帮助大家熟悉ida工具的使用
下载ida工具 注意ida安装后会有两个图标 一个是ida 用于32位分析 一个是ida64用于64位程序分析

本题使用ida64 (如果你用错了后面他会提示你的

点击Go按钮

如有别的提示一路点ok就行
拖拽文件到主界面
会有很多你看不懂的东西 但是慢慢来 不用着急

左侧是函数区 右边是主窗口 如果右边不一样可以尝试按F5 这个快捷键是反编译为c代码 可以利于理解一些
我们可以看到右边调用了函数 其中一个参数为Str 有些可疑 我们双击查看

可以看到在下方有flag{ShiFt_F12}的字样
这就是我们的flag
根据题目要求应该提交格式为dino{}
所以提交dino{ShiFt_F12}
得分!
eeeasy_re
使用ida打开该文件
按F5进行反编译

直接看到答案
flag{Enc0ura9e_e4ch_0the3}
更改格式为
dino{Enc0ura9e_e4ch_0the3}
提交即可
游戏时间
新生可以看一下 但是做不出很正常 不要灰心(我也是第一次听说dnspy这个反编译工具的
游戏是我们部门大佬自己写哒!
出题人写的wp
正常人都应该玩了一下吧 但是发现游戏完成100分目标就是1000…
好像能涨到几百万 我的第一反应是使用ce修改游戏 通过简单查找就可以搜索到分数 将分数改为几个亿后弹出成功的提示 并获得了一半的flag 后半截找不到
后来了解到可以反编译.net程序的dnspy工具
下载后双击打开

点击左上角文件 打开
选择游戏目录下\GameStart_Data\Managed的Assembly-CSharp.dll文件
因为unity游戏不做特殊处理的话 源码默认在这个dll中储存


可以看到这个文件中在这个目录下有一个名称中含flag的部分
题目要求我们找Dino{xxxxxxx}格式的 我们可以使用ctrl+f快捷键搜索

定位到如图部分
简单分析可以发现他是将974进行了两层函数加密
点击sha1函数发现是内置正常函数
(sha1是一种加密算法 可以百度直接加密
点击md5函数 发现该函数重构了
双击md5跳转到相关函数

 Public Shared Function md5(str As String) As StringDim bytes As Byte() = Encoding.UTF8.GetBytes(str)Dim array As Byte() = MD5.Create().ComputeHash(bytes)Dim stringBuilder As StringBuilder = New StringBuilder()For Each b As Byte In arraystringBuilder.Append(b.ToString("X2"))NextReturn stringBuilder.ToString().Substring(0, 30)End Function

就是先转大写 再输出前30位
所以找在线工具~
md5及相关加密解密工具
在salt框输入974
底下可以看到

复制 转大写 当然可以手打 也可以上脚本写

a="da39a3ee5e6b4b0d3255bfef95601890afd80709"
print(a.upper())

得到DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
还去哪个网页加密
md5加密后得到d41d8cd98f00b204e9800998ecf8427e
取前三十位
得到flag应该是Dino{d41d8cd98f00b204e9800998ecf842}
提交答案 发现不对 尝试大写
Dino{D41D8CD98F00B204E9800998ECF842}
你会写代码嘛?
对不起 我不会
还是ida打开分析

双击main_0函数 简单跟进

22行出现了一个变量Str 双击可以看到他的值(绿色的部分 一串都是 )较乱 先暂且不分析他 回到刚才的函数

35行使用了一个库函数 cout 并和v12变量有关 所以我们分析34行的函数 双击进入

再跟进

发现主要函数逻辑是一个循环 判断是否相等 不相等则抛出return 1
其中进行了异或操作
大胆猜想前面发现的混乱的字符串是不是与异或(即^)有关
异或的逆运算是异或 比如A^B得到C C^B得到A

写python脚本试探解密

a = "FlagNotFoundYYDS"
b=[0x02,0x05,0x0f,0x08,0x2d,0x1b,0x12,0x3d,0x5e,0x43,0x56,0x02,0x6b,0x6f,0x74,0x61,0x6b,0x59,0x02,0x51,0x79,0x42,0x40,0x7e,0x0a,0x13,0x43,0x5d,0x3c,0x69,0x73,0x7e,0x25,0x0a,0x02,0x50,0x7a,0x0b,0x12,0x77,0x59,0x10,0x5d,0x51,0x24]
for index in range(len(b)):print(chr(ord(a[index%len(a)])^b[index]),end="")

运行得到结果
Dinoctf{168f2602-5c67-48ef-9e07-cfc74df16e35}

CDUT新生赛wp re方向(逆向分析相关推荐

  1. CDUT新生赛wp crypto(密码方向

    我不会密码 我麻了 easy RSA 我不懂RSA 但百度百科有 虽然我看懂了 但我还是不会解题 用RSATool2 先右上角选10进制 把N复制进对应的框 把e=65537 转成16进制 即1000 ...

  2. CDUT新生赛wp misc (杂项

    杂项 真的很杂 签到 不多说 直接关注信科青听 回复flag得到答案 所以这里不写答案了`~ 说好的二维码呢? 压缩包加密了,但没完全加密.说好的二维码呢? 下载之后得到压缩包 解压再解压 发现有密码 ...

  3. CDUT新生赛wp pwn web

    一起讲了得了 贝壳是什么东西 kali中终端运行 nc ctf.dino209.cn 8001 然后直接拿到flag EZのStack_Overflow 栈溢出的题 ida打开 双击第四行函数 可以看 ...

  4. 逆向迷宫题总结(持续更新) 2020华南师大CTF新生赛maze,攻防世界新手区:NJUPT CTF 2017,BUUCTF:不一样的flag

    CTF逆向入门:迷宫题学习记录(持续更新) ** 目录 **CTF逆向入门:迷宫题学习记录(持续更新)** (前言) 一. 逆向迷宫题概述 二. 具体题目分析 1. 2019华南师大CTF新生赛maz ...

  5. SCU新生赛2021 pwn wp

    前段时间的极客大挑战2021和2021年的SCU新生赛,最后一道题都没有做出来,作为一枚大二学长确实应该反省一下自己了.太菜了呜呜呜.极客大挑战因为打太久了,题目都快忘记了,就不写wp了. ret2t ...

  6. CTF新生赛之Writeup

    CTF新生赛之Writeup 作为零基础的新生,也是在开学后才了解了CTF,感觉本次新生赛中颇有收获,也是应赛制要求,故写下这份WP,以纪念本人的第一次CTF竞赛. 回顾和感想 回顾本次的新生赛,难度 ...

  7. BUU [ACTF新生赛2020]Universe_final_answer

    [ACTF新生赛2020]Universe_final_answer 首先查壳, 64bit 无壳 ida64位打开 main() __int64 __fastcall main(int a1, ch ...

  8. CTF笔记 [SWPUCTF 2021 新生赛]pop

    文章目录 一些常见魔术方法 [SWPUCTF 2021 新生赛]pop 总结 这一类题目比较考验对一段代码的逻辑方面的理解,通过利用魔数方法进行互相调用,形成一条链子,利用这条链子将对象联系起来去拿f ...

  9. 21级爪哇程序设计新生赛(二)题解

    21级爪哇程序设计新生赛(二) 序 A 小爪的数字集合(并查集) B 小爪的得分(博弈) C 小爪的博弈(博弈) D ljc和cyj玩五子棋(模拟) E ljc和雪球(模拟) F LJC的背包(动态规 ...

最新文章

  1. cron 工具 每分钟_计划任务 cron和crontab
  2. Cocos2d-x win7 + vs2010 配置图文详解 .
  3. 下一个游戏新风口已来?小游戏或成2018年最大游戏黑马
  4. 2015蓝桥杯省赛---java---A---8(移动距离)
  5. axios发送请求(baseURL有多个的情况)
  6. GTN-Graph Transformer Network 图变换网络 NeurIPS2019
  7. C4D优质电商背景素材|分分钟搞定设计稿
  8. 记录——《C Primer Plus (第五版)》第九章编程练习第三题
  9. 程序包androidx.support.annotation不存在/import androidx.v7.app.AppCompatActivity;报错
  10. java字符串替换字符串_java string 字符串替换
  11. 目标检测中PR曲线和mAP
  12. libcef--在windows或者linux上创建一个简单的应用程序
  13. android 限制输入 表情以及颜文字及特殊字符
  14. Python 玩转数据 12 - 数据读写 Data I/O: Pandas 读写 JSON File Format
  15. 游戏史上80重要创新(原资料来自17173)
  16. dropna()函数如何使用
  17. 每次需要输入 Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa'
  18. android 手机 恢复数据恢复,恢复安卓手机丢失的数据
  19. 虚继承是什么意思_程序猿是什么意思?程序员为什么叫程序猿?程序猿笑话段子-360常识网...
  20. 【JS】正则表达式。以vue词法分析、句法分析为例

热门文章

  1. article标签和aside标签是什么?
  2. st计算机编程语言,ST(结构化文本语言(ST))_百度百科
  3. uni-app上传图片前压缩
  4. lru oracle,一个测试理解什么是主、辅LRU(oracle cuug)
  5. 昨夜今天Tech圈:郭明錤预计苹果明年推两款5G iPhone 平井一夫正式退休
  6. 一种不太完善的OpenStreetMap字典汉化方法
  7. 阿里云云虚拟主机上个人网站的Https访问配置
  8. 索尼录音笔怎么导出录音内容_追黄宗泽新剧追到了索尼录音笔?没办法,就是便携好用颜值高...
  9. win10系统笔记本电脑电源显示已接通未充电
  10. 黑莓bb10和Android,黑莓BB10.3.1更新发布,全面支持安卓应用