Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <idc.idc>
- static CreateStructure(name) {
- auto id;
- Message(form("Creating structure %s\n", name));
- id = GetStrucIdByName(name);
- if (id != -1) {
- Message(form("Structure %s already exists. Renaming it\n", name));
- if (SetStrucName(id, form("%s_renamed", name)) == 0) {
- Message(form("Structure %s_renamed already exists. deleting existing structure\n", name));
- DelStruc(id);
- }
- id = -1;
- }
- id = AddStrucEx(-1, name, 0);
- if (id == -1) {
- Message (form("Error creating %s structure\n", name));
- return 0;
- }
- return id;
- }
- static CreateSettingStructure()
- {
- auto id = CreateStructure("PS3Setting_s");
- AddStrucMember(id, "index", 0x00, FF_DWRD | FF_0OFF, 0, 4);
- AddStrucMember(id, "name", 0x04, FF_DWRD | FF_0OFF, 0, 4);
- AddStrucMember(id, "unk0", 0x08, FF_DWRD | FF_0OFF, 0, 4);
- AddStrucMember(id, "unk1", 0x0C, FF_BYTE | FF_0OFF, 0, 1);
- AddStrucMember(id, "default", 0x10, FF_DWRD | FF_0OFF, 0, 4);
- AddStrucMember(id, "type", 0x14, FF_DWRD | FF_0OFF, 0, 4);
- AddStrucMember(id, "unk2", 0x18, FF_DWRD | FF_0OFF, 0, 4);
- }
- static main()
- {
- auto string, settings;
- string = FindBinary(0x10000, SEARCH_DOWN|SEARCH_CASE, "70 61 73 73 77 6F 72 64 4E 75 6D 62 65 72");
- if (string != BADADDR)
- {
- CreateSettingStructure();
- string = string - 0x12;
- settings = FindBinary(0x10000, SEARCH_DOWN|SEARCH_CASE, sprintf("%08X", string));
- if (settings == BADADDR)
- {
- Message("Could not find settings array.\n");
- return;
- }
- settings = settings - 4;
- while (1)
- {
- MakeUnknown(settings, 0x1C, DOUNK_SIMPLE);
- MakeStructEx(settings, 0x1C, "PS3Setting_s");
- settings = settings + 0x1C;
- if (Dword(settings + 4) == 0)
- {
- Message("Done\n");
- return;
- }
- }
- return;
- }
- Message("Could not find reference string.\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement