XCTF-dice_game WP

Posted on Nov 3, 2020

本来呢,是准备做warmup这道题的,但是这道题非常的夸张,

我曾经天真的以为,这是一道直接连接服务器就可以拿flag的,结果发现一上来他就给了我一个地址,好嘛,我不会。就跳过了。然后就找了dice_game这题。

这是一道相对简单的题目,其实思路和guess_num是一样的,就只要用提供的libc来调用rand函数就行了,但是要注意,要通过

来覆盖这里的随机种子,然后对于我们来讲,服务器生成的数就不是随机数了,然后就每个输出就行了。

exp:

其实题目本身没什么可说的,这一篇题解我想再写一点关于ctypes的东西。因为我本人其实不会用这个,上一次就是照抄,这次准备粗粗理解一下。

ctypes是python的外部函数库,一方面,顾名思义,提供了C中的一些数据类型;另一方面,允许我们调用 DLL 或共享库中的函数(嗯,DLL共享库什么的,我还得再学一下)。

在Linux下,我们可以通过cdll类来导入动态链接库,并很容易的调用其中的函数。在Windows下还有windll和oldell对象可以来导入动态链接库。

我们可以创建一个对象,就像上文exp中libc = cdll.LoadLibrary("libc.so.6")一样,这样libc就封装了libc.so.6中的成员(应该可以这么说吧),然后我们就可以通过libc.rand()这样的语句来调用库中的函数。