This commit is contained in:
恍兮惚兮 2024-05-12 23:43:56 +08:00
parent 8c2acca210
commit bf316dd54a
4 changed files with 83 additions and 3 deletions

View File

@ -1,6 +1,6 @@
include_directories(. util engines) include_directories(. util engines)
if(${CMAKE_SIZEOF_VOID_P} EQUAL 8) if(${CMAKE_SIZEOF_VOID_P} EQUAL 8)
set(enginessrc vita3k rpcs3 yuzusuyu TYPEMOON ENTERGRAM AGES7 mono Godot Renpy 5pb lucasystem LightVN V8 pchooks Artemis KiriKiri YOX PPSSPP CMVS Suika2 ) set(enginessrc Kincaid vita3k rpcs3 yuzusuyu TYPEMOON ENTERGRAM AGES7 mono Godot Renpy 5pb lucasystem LightVN V8 pchooks Artemis KiriKiri YOX PPSSPP CMVS Suika2 )
set(enginepath "engine64") set(enginepath "engine64")
set(collector "enginecollection64.cpp") set(collector "enginecollection64.cpp")
else() else()
@ -11,7 +11,7 @@ endif()
string(REPLACE ";" ".cpp;${enginepath}/" enginessrc "${enginessrc}") string(REPLACE ";" ".cpp;${enginepath}/" enginessrc "${enginessrc}")
#message("${enginessrc}") #message("${enginessrc}")
set(enginessrc "${enginepath}/${enginessrc}.cpp") set(enginessrc "${enginepath}/${enginessrc}.cpp")
#message("${enginessrc}") message("${enginessrc}")
set_source_files_properties(${enginessrc} PROPERTIES SOURCE_ENCODING "UTF-8") set_source_files_properties(${enginessrc} PROPERTIES SOURCE_ENCODING "UTF-8")
set(texthook_src set(texthook_src

View File

@ -0,0 +1,38 @@
#include"Kincaid.h"
namespace{
bool _1(){
// .text:0000000140230D80 mov rsi, rax
// .text:0000000140230D83 mov edx, 1
// .text:0000000140230D88 mov rcx, rdi
// .text:0000000140230D8B call sub_1402B35B0
// .text:0000000140230D90 lea ebx, [rax-1]
// .text:0000000140230D93 mov edx, 2
// .text:0000000140230D98 mov rcx, rdi
// .text:0000000140230D9B call sub_1402B35B0
BYTE b1[]={
0x48,0x8b,0xf0,
0xba,0x01,0x00,0x00,0x00,
0x48,0x8b,0xcf,
0xe8,XX4,
0x8d,0x58,0xff,
0xba,0x02,0x00,0x00,0x00,
0x48,0x8b,0xcf,
0xe8,XX4
};
auto addr=MemDbg::findBytes(b1,sizeof(b1),processStartAddress,processStopAddress);
if(addr==0)return false;
HookParam hp;
hp.address=addr;
hp.type=USING_STRING|CODEC_UTF8;
hp.offset=get_reg(regs::rax);
hp.text_fun=[](hook_stack* stack, HookParam* hp, uintptr_t* data, uintptr_t* split, size_t* len){
*data=stack->rax;
if(stack->retaddr==(DWORD)-1)
*len=strlen((char*)*data);
};
return NewHook(hp,"Kincaid");
}
}
bool Kincaid::attach_function(){
return _1();
}

View File

@ -0,0 +1,40 @@
// FILEVERSION 0,0,0,1
// PRODUCTVERSION 0,0,0,1
// FILEFLAGSMASK 0x3F
// FILEFLAGS 0x0
// FILEOS VOS_UNKNOWN | VOS__WINDOWS32
// FILETYPE VFT_DLL
// FILESUBTYPE 0x0
// {
// BLOCK "StringFileInfo"
// {
// BLOCK "080904b0"
// {
// VALUE "CompanyName", "Cookiedraggy"
// VALUE "FileDescription", "The Adventures of Kincaid"
// VALUE "FileVersion", "0.0.0.1"
// VALUE "LegalCopyright", "(c) 2019 Cookiedraggy"
// VALUE "PrivateBuild", "01.00.00.00"
// VALUE "ProductName", "The Adventures of Kincaid"
// VALUE "ProductVersion", "0.0.0.1"
// }
// }
// BLOCK "VarFileInfo"
// {
// VALUE "Translation", 0x809, 1200
// }
// }
class Kincaid:public ENGINE{
public:
Kincaid(){
check_by=CHECK_BY::CUSTOM;
check_by_target=[](){
return Util::SearchResourceString(L"Cookiedraggy")|| Util::SearchResourceString(L"The Adventures of Kincaid");
};
};
bool attach_function();
};

View File

@ -14,6 +14,7 @@
#include"engine64/lucasystem.h" #include"engine64/lucasystem.h"
#include"engine64/ENTERGRAM.h" #include"engine64/ENTERGRAM.h"
#include"engine64/TYPEMOON.h" #include"engine64/TYPEMOON.h"
#include"engine64/Kincaid.h"
#include"engine64/LightVN.h" #include"engine64/LightVN.h"
#include"engine64/yuzusuyu.h" #include"engine64/yuzusuyu.h"
#include"engine64/vita3k.h" #include"engine64/vita3k.h"
@ -42,7 +43,8 @@ std::vector<ENGINE*> check_engines(){
new yuzusuyu, new yuzusuyu,
new PPSSPPengine, new PPSSPPengine,
new vita3k, new vita3k,
new rpcs3 new rpcs3,
new Kincaid
}; };
} }