defcon-quals 2023 crackme.tscript.dso wp

这篇具有很好参考价值的文章主要介绍了defcon-quals 2023 crackme.tscript.dso wp。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

队友找到的引擎TorqueGameEngines/Torque3D (github.com)

将dso文件放到data/ExampleModule目录下,编辑ExampleModule.tscript文件

function ExampleModule::onCreate(%this)
{
    trace(true);
    exec("./crackme");
    __main("aaaaaaaa");
    quit();
}

然后点击主目录下的Torque3D-debug.bat就可以在生成的console.log文件里看到输出,发现使用的是getc获取输入,putc输出。

下载源码,在Engine\source\console\console.cpp中找到执行dso文件的位置
defcon-quals 2023 crackme.tscript.dso wp

另外在CodeBlock这个类里面看到了一个dumpInstructions函数可以dump指令于是在code->read后面加上一个code->dumpInstructions语句来查看指令码,结果发现其他函数都有输出,只有我们的dso文件没有输出,麻,看代码。
defcon-quals 2023 crackme.tscript.dso wp

发现造成没有输出的原因是codeSize为0;

再看看read函数发现果然读取文件后没有改变codeSize,有点小坑。

在这里加上一句改写codeSize。

defcon-quals 2023 crackme.tscript.dso wp

这样就可以输出dso文件字节码了,由于字节码过长这里就不放了。

首先查找getc被调用的位置,发现在getc后面有一些OP_CMPNE指令,猜测这里是比较的地方,查看exec函数里实现OP_CMPNE的位置,发现是用doFloatMathOperation函数处理的,加上一句把比较的数据打印出来。

defcon-quals 2023 crackme.tscript.dso wp

发现在IP=4125的地方有一个比较97与102的cmpne,97就是a的ascii码,102是f的ascii码,再看一下打印出的字节码发现结构很类似,首先getc然后再getc的地址+101处比较,然后比较处+18再次getc,这样就可以该写代码来获取flag,更改处如下
defcon-quals 2023 crackme.tscript.dso wp
defcon-quals 2023 crackme.tscript.dso wp
defcon-quals 2023 crackme.tscript.dso wp

然后再log中发现了

defcon-quals 2023 crackme.tscript.dso wp

看来不是简单的比较,接着看后面的字节码

简单讲一下指令的作用,其他指令基本一看就知道干嘛的。

OP_LOAD_LOCAL_VAR_UINT stk=+1 reg=4  --> push reg[4];
OP_SAVE_LOCAL_VAR_UINT stk=0 reg=7   --> mov reg[7], stack[sp];
OP_POP_STK                           --> sp--

发现后面的处理其实跟前面差不多只是把cmpne变成了sub,偏移变成了103,再修改一下代码得到第二部分的flag

defcon-quals 2023 crackme.tscript.dso wp

接着看后面的指令,重点关注调用了doIntOperation和doFloatMathOperation的指令

而后面每两个getc之间的指令就变得特别多了达到了几万条,有限时间内肉眼看是基本上看不出来了,开始乱猜大法。

发现一个可疑的指令后面load了一个108,查找规律,发现应该是这个,偏移为距getc+61处,然后发现其实上面的也可以在这里获取到。

获取到第三部分flag

flag{vmprotect?_where_we_re_going_we_ll_need_protecti

再看下后面的指令,发现先将所有的数据全加起来跟减去1327

defcon-quals 2023 crackme.tscript.dso wp

添加以下代码仔细观察数据操作指令

defcon-quals 2023 crackme.tscript.dso wp
defcon-quals 2023 crackme.tscript.dso wp

将输入改为flag{vmprotect?_where_we_re_going_we_ll_need_protecti0123456789abcdefghijklmnopq}输出为

defcon-quals 2023 crackme.tscript.dso wp

再往后发现每次从输入中去除一个然后累加再减去以下数据然后判断等不等于0,这里的16776909等是因为signed类型的负数与0xffffff与得到结果,所以是个解方程问题,z3一把梭

[1327, 1394, 1332, 1347, 1372, 1360, 1394, 1365, 1333, 1347, 1326, 1338, 1391, 1347, 1324, 1333]
from z3 import *
sub = [1327, 1394, 1332, 1347, 1372, 1360, 1394, 1365, 1333, 1347, 1326, 1338, 1391, 1347, 1324, 1333]
s = Solver()

flag = Ints("flag%d" %i for i in range(16))
for i in range(16):
    s.add(flag[i] >0)
    s.add(flag[i] <128)
exceptIndex = 14
for i in range(16):
    result = 0
    exceptIndex = (exceptIndex + 1) % 16
    for j in range(16):
        if j != exceptIndex:
            result += flag[j]
    s.add(result == sub[i])

if s.check() == sat:
    print("find")
    m = s.model()
    f = ""
    for i in range(16):
        f += chr(m[flag[i]].as_long())
    print(f)

得到flag

flag{vmprotect?_where_we_re_going_we_ll_need_protecti0n_FR0Mm_th3_vms}

defcon-quals 2023 crackme.tscript.dso wp

只要跟踪每个getc后面的指令就可以分析清楚整个流程。文章来源地址https://www.toymoban.com/news/detail-464949.html

到了这里,关于defcon-quals 2023 crackme.tscript.dso wp的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Crackme逆向分析365例-001

    说明:本篇练习是表哥逆向分析365系列的第1例,所使用的CrackMe本体来自于网站:https://crackmes.one/,您可在此网站通过作者名或本体名查询下载,也可从本贴中提供的网盘地址下载,其CrackMe本体信息如下所示: 本体名称: [EASY] CrackMe 本体作者: endofmarconia 上传日期: 2023-0

    2024年02月04日
    浏览(36)
  • buuctf_练[CSCCTF 2019 Qual]FlaskLight

    [CSCCTF 2019 Qual]FlaskLight 掌握知识 内置函数的过滤, globals 变量的过滤,调用内部变量或函数的OS函数进行命令执行 解题思路 打开题目链接,很明显看标题和内容是 flask 模块的 ssti 模板注入了,查看源码,发现了传参的参数和请求方法 先测试一下 {{7*7}} ,正常返回49,证明存

    2024年02月08日
    浏览(45)
  • [CTFTraining] ASIS CTF 2019 Quals Unicorn shop

    阿米尔卡比尔大学信息安全与密码学研究小组夺旗赛 ​ 我们随便买一件商品,1~3都显示: ​ 只有第4个显示: ​ 只允许输入一个字符,题目叫 Unicorn ,猜测为 Unicode 。在Unicode - Compart搜索比千大的 Unicode 码: ​ 最后填进去买下商品得到flag。 另外:

    2024年02月07日
    浏览(96)
  • “破解我!“---160个CrackMe练习002-Afkayas.1.Exe

    系列之002,记录学习。 一道一星的题目 惯例查壳。 32-bit 的文件,用的是 VB 写的。 关于 Visual Basic : Visual Basic(VB)是由微软公司开发的包含环境的事件驱动编程语言。它源自于 BASIC 编程语言。VB 拥有图形用户界面(GUI)和快速应用程式开发(RAD)系统,可以轻易的使用

    2024年02月06日
    浏览(41)
  • “破解我!“---160个CrackMe练习001-Acid buen.exe

    想开个系列,160个Crackme的练习,这个在52pojie上有个精华帖总结,写的特别好,推荐!写这个系列主要还是记录一下自己的学习记录,目前就完成了几十个,还有好多/(ㄒoㄒ)/~~,加油。坚持每天至少练一题,希望可以帮到你。 52pojie上用的是OD,OD很老了已经,而且我自己之前

    2024年02月08日
    浏览(42)
  • [CSCCTF 2019 Qual]FlaskLight 过滤 url_for globals 绕过globals过滤

    目录 subprocess.Popen FILE warnings.catch_warnings site._Printer 这题很明显就是 SSTI了 源代码 我们试试看 {{7*7}} 然后我们就开始吧 原本我的想法是直接{{url_for.__globals__}} 但是回显是直接500 猜测过滤 我们正常来吧 这里我们需要 os 来调用 但是这里存在一个类 可以不需要os Python3 subprocess

    2024年02月07日
    浏览(38)
  • windows10 17272:error:25078067:DSO support routines:win32_load:could not load the shared library

    1.执行加密命令 2.返回错误提示 3.解决 4.重新执行生成一系列操作(ok)

    2024年02月12日
    浏览(56)
  • 已解决W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library ‘c

    已解决W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library ‘cudart64_110.dll’; dlerror: cudart64_110.dll not found I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine. import tensorflow.contrib.layers as layers ModuleNotFoundError: No

    2024年01月21日
    浏览(54)
  • Amazonlinux2023(AL2023)获取metadata

    今年AWS发布了新的Amazonlinux2023版本,其中获取metadata元数据方式发生了一点改变。 早些时候,在 Amazon Linux 2 中,使用以下命令获取实例元数据 具体可以获取的元数据类别可以查阅如下aws官方文档 https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/instancedata-data-categories.html https://do

    2024年02月08日
    浏览(38)
  • LeetCode 每日一题 2023/7/24-2023/7/30

    记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 7/24 771. 宝石与石头 将宝石类型放入set中 一次判断石头中宝石个数 7/25 2208. 将数组和减半的最少操作次数 大顶堆记录当前最大值 每次取最大值减半 7/26 2569. 更新数组后处理求和查询

    2024年02月15日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包