[2019红帽杯]Snake-CSDN博客
unity的题
下载下来看看是什么类型就是
这道题就是贪吃蛇
unity无脑找Assembly
用dnspy打开
一般就在这里慢慢找
但是你可以发现没有任何的信息
这里外接库
只能从这里下手试试
64位链接库的意思
游戏题,win!很关键
进入了Gameobject
看a1,小于100
只传入了一个参数,结合游戏,应该是分数?
下面400多行,不看了(WP大法)
确实只传入了一个参数,一个参数就能获得所有
这里注意了
64位只能用64位编译器(为了这个我还专门去下了)
python脚本
import ctypes
for i in range(0, 100) :
dll = ctypes.cdll.LoadLibrary(r"D:\CTF\questions\buuctf\[2019红帽杯]Snake\Snake\Snake_Data\Plugins\Interface.dll")
dll.GameObject(i)
C++
#include<iostream>
#include<Windows.h>
#include"D:\CTF\Re\IDA_Pro_7.7\IDA_Pro_7.7\plugins\hexrays_sdk\include\defs.h"//ida自带的头文件
//函数指针
typedef signed __int64(*Dllfunc)(int);
using namespace std;
int main()
{
Dllfunc GameObject;//GameObject是dll中想要调用的函数名称
HINSTANCE hdll = NULL;
hdll = LoadLibrary(TEXT("D:\CTF\questions\buuctf\[2019红帽杯]Snake\Snake\Snake_Data\Plugins\Interface.dll"));//用LoadLibrary加载dll
if (hdll == NULL)
{
cout << "加载失败\n";
}
else
{
GameObject = (Dllfunc)GetProcAddress(hdll, "GameObject");//到dll中定位函数
if (GameObject == NULL)
{
cout << "加载函数失败\n";
}
else
{
for (int i = 0; i <= 99; i++)
{
signed __int64 res = GameObject(i);
}
}
}
FreeLibrary(hdll);//释放dll
return 0;
}
但是我C++跑不动,G
python跑的