19/03/04 23:26:36.52 a7+UZabZ.net
>>8
uint32_t get_seg1_start_addr(const char *module_name)
{
ㅤㅤtai_module_info_t module_info;
ㅤㅤmodule_info.size = sizeof(tai_module_info_t);
ㅤㅤint ret = taiGetModuleInfo(module_name, &module_info);
ㅤㅤif (ret != 0) return 0;
ㅤㅤSceKernelModuleInfo kernel_module_info = {0};
ㅤㅤret = sceKernelGetModuleInfo(module_info.modid, &kernel_module_info);
ㅤㅤif (ret != 0) return 0;
ㅤㅤSceKernelSegmentInfo* seg1 = &(kernel_module_info.segments[1]);
ㅤㅤreturn (uint32_t)seg1->vaddr;
}
static void kamisama_idenshi_max(int lock)
{
ㅤㅤif (lock)
ㅤㅤ{
ㅤㅤㅤㅤuint32_t base_addr, addr1, addr2;
ㅤㅤㅤㅤbase_addr = get_seg1_start_addr("main");
ㅤㅤㅤㅤif (base_addr == 0) return;
ㅤㅤㅤㅤ
ㅤㅤㅤㅤaddr1 = READU32(base_addr + 0x1995C);
ㅤㅤㅤㅤif (addr1 == 0) return;
ㅤㅤㅤㅤ
ㅤㅤㅤㅤfor (int i = 0; i < 0xC7; i++) // 0xB4以降は氏神
ㅤㅤㅤㅤ{
ㅤㅤㅤㅤㅤㅤaddr2 = READU32(addr1 + i * 0x1C + 0x8);
ㅤㅤㅤㅤㅤㅤif (addr2 == 0) continue;
ㅤㅤㅤㅤㅤㅤfor (int j = 0; j < 0x18; j++)
ㅤㅤㅤㅤㅤㅤㅤㅤ//遺伝子データの設定(最大:0x00~最小0xFF)
ㅤㅤㅤㅤㅤㅤㅤㅤWRITEU8(addr2 + j + 0x2, 0);
ㅤㅤㅤㅤ}
ㅤㅤ}
}