121
This commit is contained in:
parent
e161cb6c55
commit
b41893c040
Binary file not shown.
Binary file not shown.
107
src/df_main.cpp
107
src/df_main.cpp
|
|
@ -46,6 +46,9 @@ SUBHOOK_INIT(BossDieCheckSend, 0x81CDA62);
|
||||||
SUBHOOK_INIT(Giveup_Game, 0x81C40B4);
|
SUBHOOK_INIT(Giveup_Game, 0x81C40B4);
|
||||||
SUBHOOK_INIT(CUserWorkPerFiveMin, 0x8652F0C);
|
SUBHOOK_INIT(CUserWorkPerFiveMin, 0x8652F0C);
|
||||||
SUBHOOK_INIT(TimerDispatcher_dispatch, 0x8632A18);
|
SUBHOOK_INIT(TimerDispatcher_dispatch, 0x8632A18);
|
||||||
|
SUBHOOK_INIT(SetUserMaxLevel, 0x0868fec8);
|
||||||
|
|
||||||
|
SUBHOOK_INIT(initWorldMapScript, 0x0817B950);
|
||||||
|
|
||||||
// SUBHOOK_INIT(AddMob, 0x08151612);
|
// SUBHOOK_INIT(AddMob, 0x08151612);
|
||||||
|
|
||||||
|
|
@ -576,6 +579,16 @@ void PrintAuroraTag()
|
||||||
|
|
||||||
int _Inter_LoadGeolocation_dispatch_sig(void *pThis, void *pUser, char *a3)
|
int _Inter_LoadGeolocation_dispatch_sig(void *pThis, void *pUser, char *a3)
|
||||||
{
|
{
|
||||||
|
PrintAuroraTag();
|
||||||
|
// 请求脚本
|
||||||
|
// ReqScript();
|
||||||
|
// 初始化松鼠
|
||||||
|
InitSquirrel();
|
||||||
|
void *handle = dlopen("/home/neople/game/frida.so", RTLD_LAZY);
|
||||||
|
if (handle)
|
||||||
|
{
|
||||||
|
std::cerr << "已加载库: Frida" << '\n';
|
||||||
|
}
|
||||||
|
|
||||||
int Ret = Inter_LoadGeolocation_dispatch_sig(pThis, pUser, a3);
|
int Ret = Inter_LoadGeolocation_dispatch_sig(pThis, pUser, a3);
|
||||||
|
|
||||||
|
|
@ -737,6 +750,14 @@ void *_SetUserMaxLevel(void *CUser, int level)
|
||||||
return CUser;
|
return CUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int _initWorldMapScript(void *a1, char *a2, char *a3)
|
||||||
|
{
|
||||||
|
int ret = initWorldMapScript(a1, a2, a3);
|
||||||
|
std::cout << a1 << std::endl;
|
||||||
|
std::cout << a2 << std::endl;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int _TimerDispatcher_dispatch(void *A, void *B)
|
int _TimerDispatcher_dispatch(void *A, void *B)
|
||||||
{
|
{
|
||||||
int ret = TimerDispatcher_dispatch(A, B);
|
int ret = TimerDispatcher_dispatch(A, B);
|
||||||
|
|
@ -769,11 +790,11 @@ void Lenheart()
|
||||||
if (!checkGame("df_game_r"))
|
if (!checkGame("df_game_r"))
|
||||||
{
|
{
|
||||||
|
|
||||||
int a = 1;
|
// int a = 1;
|
||||||
void *buf = malloc(4);
|
// void *buf = malloc(4);
|
||||||
CMem::WriteBytes(buf, &a, 4);
|
// CMem::WriteBytes(buf, &a, 4);
|
||||||
unsigned int nMaxGrade = 86;
|
// unsigned int nMaxGrade = 90;
|
||||||
bGMMode = 1;
|
// bGMMode = 1;
|
||||||
|
|
||||||
// max_level = nMaxGrade;
|
// max_level = nMaxGrade;
|
||||||
|
|
||||||
|
|
@ -794,21 +815,21 @@ void Lenheart()
|
||||||
// CMem::WriteUChar(MAIN_OFFSET(0x31C128), 0x7E);
|
// CMem::WriteUChar(MAIN_OFFSET(0x31C128), 0x7E);
|
||||||
// CMem::WriteUChar(MAIN_OFFSET(0x31C129), 0x06);
|
// CMem::WriteUChar(MAIN_OFFSET(0x31C129), 0x06);
|
||||||
|
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x547005), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x547005), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x61AF55), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x61AF55), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x61B0F3), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x61B0F3), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x61DD28), nMaxGrade - 1);
|
// CMem::WriteUChar(MAIN_OFFSET(0x61DD28), nMaxGrade - 1);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x61E86A), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x61E86A), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x61EE9C), nMaxGrade - 1);
|
// CMem::WriteUChar(MAIN_OFFSET(0x61EE9C), nMaxGrade - 1);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x6224A8), nMaxGrade - 1);
|
// CMem::WriteUChar(MAIN_OFFSET(0x6224A8), nMaxGrade - 1);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x622929), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x622929), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x641D4B), nMaxGrade - 1);
|
// CMem::WriteUChar(MAIN_OFFSET(0x641D4B), nMaxGrade - 1);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x647ECE), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x647ECE), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x647EDA), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x647EDA), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x647F82), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x647F82), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x647F88), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x647F88), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x66521D), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x66521D), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x665223), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x665223), nMaxGrade);
|
||||||
// SUBHOOK_SETUP(addServerHackCnt);
|
// SUBHOOK_SETUP(addServerHackCnt);
|
||||||
// SUBHOOK_SETUP(put_header);
|
// SUBHOOK_SETUP(put_header);
|
||||||
// SUBHOOK_SETUP(IsCurCharacVisible);
|
// SUBHOOK_SETUP(IsCurCharacVisible);
|
||||||
|
|
@ -849,7 +870,7 @@ void Lenheart()
|
||||||
SUBHOOK_SETUP(CUserWorkPerFiveMin);
|
SUBHOOK_SETUP(CUserWorkPerFiveMin);
|
||||||
|
|
||||||
// 每帧执行
|
// 每帧执行
|
||||||
// SUBHOOK_SETUP(TimerDispatcher_dispatch);
|
SUBHOOK_SETUP(TimerDispatcher_dispatch);
|
||||||
|
|
||||||
// SUBHOOK_SETUP(initWorldMapScript);
|
// SUBHOOK_SETUP(initWorldMapScript);
|
||||||
|
|
||||||
|
|
@ -864,33 +885,23 @@ void Lenheart()
|
||||||
->init();
|
->init();
|
||||||
// SUBHOOK_SETUP(isSocketAvatar);
|
// SUBHOOK_SETUP(isSocketAvatar);
|
||||||
|
|
||||||
if (nMaxGrade > 70)
|
// if (nMaxGrade > 70)
|
||||||
{
|
// {
|
||||||
// 以下需要扩充类大小, 修改偏移
|
// // 以下需要扩充类大小, 修改偏移
|
||||||
CMem::WriteUInt(MAIN_OFFSET(0x87162 + 3), 0xB678 + nMaxGrade * 4 + nMaxGrade * 12);
|
// CMem::WriteUInt(MAIN_OFFSET(0x87162 + 3), 0xB678 + nMaxGrade * 4 + nMaxGrade * 12);
|
||||||
// CDataManager::set_reward_sp
|
// // CDataManager::set_reward_sp
|
||||||
CMem::WriteUInt(MAIN_OFFSET(0x318C26 + 2), 10836 + 840);
|
// CMem::WriteUInt(MAIN_OFFSET(0x318C26 + 2), 10836 + 840);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x318C3B), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x318C3B), nMaxGrade);
|
||||||
CMem::WriteUInt(MAIN_OFFSET(0x318C68 + 2), 10836 + 840);
|
// CMem::WriteUInt(MAIN_OFFSET(0x318C68 + 2), 10836 + 840);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x318C79), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x318C79), nMaxGrade);
|
||||||
// CDataManager::GetSpAtLevelUp
|
// // CDataManager::GetSpAtLevelUp
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x318CC4), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x318CC4), nMaxGrade);
|
||||||
CMem::WriteUInt(MAIN_OFFSET(0x318CD4 + 2), 10836 + 840);
|
// CMem::WriteUInt(MAIN_OFFSET(0x318CD4 + 2), 10836 + 840);
|
||||||
}
|
// }
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x61B8F6), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x61B8F6), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x622659), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x622659), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x622941), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x622941), nMaxGrade);
|
||||||
CMem::WriteUChar(MAIN_OFFSET(0x622941), nMaxGrade);
|
// CMem::WriteUChar(MAIN_OFFSET(0x622941), nMaxGrade);
|
||||||
|
|
||||||
// 请求脚本
|
|
||||||
// ReqScript();
|
|
||||||
// 初始化松鼠
|
|
||||||
InitSquirrel();
|
|
||||||
void *handle = dlopen("/home/neople/game/frida.so", RTLD_LAZY);
|
|
||||||
if (handle)
|
|
||||||
{
|
|
||||||
std::cerr << "已加载库: Frida" << '\n';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -229,16 +229,6 @@ void InitSquirrel()
|
||||||
ReqSquirrelScript(v);
|
ReqSquirrelScript(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 执行虚拟机Main函数
|
|
||||||
SQInteger top = sq_gettop(v); // saves the stack size before the call
|
|
||||||
sq_pushroottable(v); // pushes the global table
|
|
||||||
sq_pushstring(v, _SC("main"), -1);
|
|
||||||
if (SQ_SUCCEEDED(sq_get(v, -2)))
|
|
||||||
{ // gets the field 'foo' from the global table
|
|
||||||
sq_pushroottable(v); // push the 'this' (in this case is the global table)
|
|
||||||
sq_call(v, 1, SQFalse, SQTrue); // calls the function
|
|
||||||
}
|
|
||||||
sq_settop(v, top); // restores the original stack size
|
|
||||||
|
|
||||||
sq_pushroottable(v);
|
sq_pushroottable(v);
|
||||||
sq_pushstring(v, "sq_ReloadScript", -1);
|
sq_pushstring(v, "sq_ReloadScript", -1);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue