This commit is contained in:
Lenheart 2022-04-11 19:44:03 +08:00
parent ca9f19d7c7
commit 191fcd3da9
5 changed files with 56 additions and 9 deletions

View File

@ -27,6 +27,7 @@ void LenheartThread(void)
if (DNFTOOL::GetHook(0x1A5FB4C, "0x14+0x28+") == 6) = 1;
if ( == 1)//选频道界面 游戏初始化完毕
{
//hook::InitGameScript();
while (true)
{
Sleep(10);

View File

@ -29,6 +29,39 @@ void hook::H_Register_Pack(void* Ecx)
}
std::map<wchar_t*, int> bufferm;
static SqPushRootFunc* yuancall;
uint32_t ThFunc(uint32_t v)
{
int a = yuancall(v);
//std::cout << u8"参数个数" << params << std::endl;
//SQ_Get(v, -2);
//std::cout <<u8"参数个数为" << ParameterNum - 1 << std::endl;
for (int i = -3; i < 3; ++i)
{
if (SQ_GetType(v, i) == 134217744)
{
wchar_t* Name;
SQGetString(v, i, &Name);
if (bufferm.count(Name) == 0)
{
bufferm[Name] == 1;
std::wcout << u8"参数为" << Name << std::endl;
}
}
}
//SQPrintFunc(v);
return a;
}
int hook::RegisterHook()
{
@ -37,23 +70,33 @@ int hook::RegisterHook()
MH_CreateHook((void*)INIT_NUT_ADDRESS, &H_Register_Nut, reinterpret_cast<void**>(&MLnewclosure));
MH_CreateHook((void*)0x1358C50, &ThFunc, reinterpret_cast<void**>(&yuancall));
MH_EnableHook((void*)INIT_PACK_ADDRESS);
MH_EnableHook((void*)INIT_NUT_ADDRESS);
//MH_EnableHook((void*)0x1358C50);
return 0;
}
int hook::InitGameScript()
{
MH_EnableHook((void*)0x1359280);
/*
uint32_t v = GetSqVm();
SQPushRootTable(v);
SQPushString(v, L"SetHudUI", -1);
SQ_Get(v, -2);
SQPushRootTable(v);
//SQPushString(v, L"1.cpp", -1);
SQPushString(v, L"1.cpp", -1);
SQ_Call(v, 2, 1, 0);
SQPop(v, 2);
std::cout << u8"µ÷Óóɹ¦" << std::endl;
*/
return 0;
}

View File

@ -14,7 +14,7 @@ public:
//总HOOK
static int RegisterHook();
static void bbbb();
//插件执行Nut
static int InitGameScript();
};

View File

@ -76,10 +76,9 @@ int squirrel::sq_Test(uint32_t v)
//GMNotice((char*)u"我的天");
//WindowsNotice((char*)u"我的天");
SQPopTop(v);
SQPushInt(v, 1);
return 1;
//SQPopTop(v);
//SQPushInt(v, 1);
return 0;
}
//读人物 或 装备属性
int squirrel::GetCharacterAttribute(uint32_t v)
@ -1007,7 +1006,6 @@ int squirrel::Set_DragonModel(uint32_t v)
return 1;
}
//获取Squirrel v 基址
inline uint32_t GetSqVm()
{

View File

@ -2,6 +2,9 @@
//-------------------------------------------------------------------------------------------Squirrel
// printFunc 输出调用栈和栈内容
typedef int(SqPrintFunc)(uint32_t v);
static SqPrintFunc* SQPrintFunc = (SqPrintFunc*)0x1354060;
// PushRoot
typedef int(SqPushRootFunc)(uint32_t v);
static SqPushRootFunc* SQPushRootTable = (SqPushRootFunc*)0x1358C50;
@ -22,6 +25,9 @@ static SqPop* SQPop = (SqPop*)0x1358FD0;
//SQ_Get
typedef int(Sq_Get)(uint32_t v, int n);
static Sq_Get* SQ_Get = (Sq_Get*)0x135AE30;
//SQ_Get
typedef int(Sq_GetType)(uint32_t v, int n);
static Sq_GetType* SQ_GetType = (Sq_GetType*)0x1358CD0;
//SQ_Rawget
typedef int(Sq_Rawget)(uint32_t v, int n);
static Sq_Rawget* SQ_Rawget = (Sq_Rawget*)0x135AEA0;
@ -184,7 +190,6 @@ public://
static int Get_DragonModel(uint32_t v);//获取 龙盒 模式
static int Set_DragonModel(uint32_t v);//设置 龙盒 模式
public:
//新增nut接口funcName绑定C语言函数funcAddr