Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define UNLOADED_FILE 1
- #include <idc.idc>
- static main(void)
- {
- // set 'loading idc file' mode
- set_inf_attr(INF_GENFLAGS, INFFL_LOADIDC|get_inf_attr(INF_GENFLAGS));
- Patches(); // manual patches
- // clear 'loading idc file' mode
- set_inf_attr(INF_GENFLAGS, ~INFFL_LOADIDC&get_inf_attr(INF_GENFLAGS));
- }
- //------------------------------------------------------------------------
- // Information about all patched bytes:
- static Patches(void) {
- //patches from fuses
- set_cmt (0X1016AE, "", 0);
- patch_byte (0X1016AE, 0X00);
- patch_byte (0X1016AF, 0XDF);
- set_cmt (0X1016AE, "IPATCH 0, GOES TO 0x40004C78", 1);
- set_cmt (0X103040, "", 0);
- patch_byte (0X103040, 0X22);
- patch_byte (0X103041, 0XDF);
- set_cmt (0X103040, "IPATCH 1, GOES TO 0x40004CBC", 1);
- set_cmt (0X106F2E, "", 0);
- patch_byte (0X106F2E, 0X26);
- patch_byte (0X106F2F, 0XDF);
- set_cmt (0X106F2E, "IPATCH 2, GOES TO 0x40004CC4", 1);
- set_cmt (0X10FB3C, "", 0);
- patch_byte (0X10FB3C, 0X00);
- patch_byte (0X10FB3D, 0X20);
- set_cmt (0X10FB3C, "IPATCH 3", 1);
- set_cmt (0X100856, "", 0);
- patch_byte (0X100856, 0X2C);
- patch_byte (0X100857, 0XDF);
- set_cmt (0X100856, "IPATCH 4, GOES TO 0x40004CD0", 1);
- set_cmt (0X106F54, "", 0);
- patch_byte (0X106F54, 0X42);
- patch_byte (0X106F55, 0XDF);
- set_cmt (0X106F54, "IPATCH 5, GOES TO 0x40004CFC", 1);
- set_cmt (0X1012E4, "", 0);
- patch_byte (0X1012E4, 0X4B);
- patch_byte (0X1012E5, 0XDF);
- set_cmt (0X1012E4, "IPATCH 6, GOES TO 0x40004D0E", 1);
- set_cmt (0X104526, "", 0);
- patch_byte (0X104526, 0X54);
- patch_byte (0X104527, 0XDF);
- set_cmt (0X104526, "IPATCH 7, GOES TO 0x40004D20", 1);
- set_cmt (0X1043F4, "", 0);
- patch_byte (0X1043F4, 0X5D);
- patch_byte (0X1043F5, 0XDF);
- set_cmt (0X1043F4, "IPATCH 8, GOES TO 0x40004D32", 1);
- set_cmt (0X103D2A, "", 0);
- patch_byte (0X103D2A, 0X01);
- patch_byte (0X103D2B, 0X20);
- set_cmt (0X103D2A, "IPATCH 11", 1);
- //key patches in data, might need to be the other way (byteswapped)
- patch_byte (0X117744, 0X57);
- patch_byte (0X117745, 0XAC);
- //set_cmt (0X117744, "IPATCH 9 (byte 0)", 1);
- //set_cmt (0X117745, "IPATCH 9 (byte 1)", 1);
- patch_byte (0X117758, 0X19);
- patch_byte (0X117759, 0X3D);
- //set_cmt (0X117758, "IPATCH 10 (byte 0)", 1);
- //set_cmt (0X117759, "IPATCH 10 (byte 1)", 1);
- //code from fuses loaded into IRAM starting at 0x40004C30
- patch_byte (0X40004C30, 0X7);
- patch_byte (0X40004C31, 0);
- patch_byte (0X40004C32, 0X2D);
- patch_byte (0X40004C33, 0XE9);
- patch_byte (0X40004C34, 0XE);
- patch_byte (0X40004C35, 0X20);
- patch_byte (0X40004C36, 0XA0);
- patch_byte (0X40004C37, 0XE1);
- patch_byte (0X40004C38, 0X2);
- patch_byte (0X40004C39, 0X20);
- patch_byte (0X40004C3A, 0X42);
- patch_byte (0X40004C3B, 0XE2);
- patch_byte (0X40004C3C, 0);
- patch_byte (0X40004C3D, 0X20);
- patch_byte (0X40004C3E, 0X92);
- patch_byte (0X40004C3F, 0XE5);
- patch_byte (0X40004C40, 0XFF);
- patch_byte (0X40004C41, 0X20);
- patch_byte (0X40004C42, 0X2);
- patch_byte (0X40004C43, 0XE2);
- patch_byte (0X40004C44, 0X82);
- patch_byte (0X40004C45, 0X20);
- patch_byte (0X40004C46, 0XA0);
- patch_byte (0X40004C47, 0XE1);
- patch_byte (0X40004C48, 0X1C);
- patch_byte (0X40004C49, 0);
- patch_byte (0X40004C4A, 0X9F);
- patch_byte (0X40004C4B, 0XE5);
- patch_byte (0X40004C4C, 0X1C);
- patch_byte (0X40004C4D, 0X10);
- patch_byte (0X40004C4E, 0X9F);
- patch_byte (0X40004C4F, 0XE5);
- patch_byte (0X40004C50, 0);
- patch_byte (0X40004C51, 0X10);
- patch_byte (0X40004C52, 0X41);
- patch_byte (0X40004C53, 0XE0);
- patch_byte (0X40004C54, 0X18);
- patch_byte (0X40004C55, 0);
- patch_byte (0X40004C56, 0X9F);
- patch_byte (0X40004C57, 0XE5);
- patch_byte (0X40004C58, 0X1);
- patch_byte (0X40004C59, 0);
- patch_byte (0X40004C5A, 0X80);
- patch_byte (0X40004C5B, 0XE0);
- patch_byte (0X40004C5C, 0);
- patch_byte (0X40004C5D, 0X20);
- patch_byte (0X40004C5E, 0X82);
- patch_byte (0X40004C5F, 0XE0);
- patch_byte (0X40004C60, 0X1);
- patch_byte (0X40004C61, 0X20);
- patch_byte (0X40004C62, 0X82);
- patch_byte (0X40004C63, 0XE3);
- patch_byte (0X40004C64, 0X3);
- patch_byte (0X40004C65, 0);
- patch_byte (0X40004C66, 0XBD);
- patch_byte (0X40004C67, 0XE8);
- patch_byte (0X40004C68, 0X12);
- patch_byte (0X40004C69, 0XFF);
- patch_byte (0X40004C6A, 0X2F);
- patch_byte (0X40004C6B, 0XE1);
- patch_byte (0X40004C6C, 0XB0);
- patch_byte (0X40004C6D, 0X7);
- patch_byte (0X40004C6E, 0X10);
- patch_byte (0X40004C6F, 0);
- patch_byte (0X40004C70, 0XF8);
- patch_byte (0X40004C71, 0X7);
- patch_byte (0X40004C72, 0X10);
- patch_byte (0X40004C73, 0);
- patch_byte (0X40004C74, 0X30);
- patch_byte (0X40004C75, 0X4C);
- patch_byte (0X40004C76, 0);
- patch_byte (0X40004C77, 0X40);
- patch_byte (0X40004C78, 0);
- patch_byte (0X40004C79, 0X22);
- patch_byte (0X40004C7A, 0XD2);
- patch_byte (0X40004C7B, 0X43);
- patch_byte (0X40004C7C, 0X30);
- patch_byte (0X40004C7D, 0X49);
- patch_byte (0X40004C7E, 0XA);
- patch_byte (0X40004C7F, 0X63);
- patch_byte (0X40004C80, 0X8A);
- patch_byte (0X40004C81, 0X63);
- patch_byte (0X40004C82, 0X30);
- patch_byte (0X40004C83, 0X49);
- patch_byte (0X40004C84, 0XA);
- patch_byte (0X40004C85, 0X60);
- patch_byte (0X40004C86, 0X4A);
- patch_byte (0X40004C87, 0X60);
- patch_byte (0X40004C88, 0X2F);
- patch_byte (0X40004C89, 0X49);
- patch_byte (0X40004C8A, 0XA);
- patch_byte (0X40004C8B, 0X60);
- patch_byte (0X40004C8C, 0X8A);
- patch_byte (0X40004C8D, 0X61);
- patch_byte (0X40004C8E, 0X80);
- patch_byte (0X40004C8F, 0X31);
- patch_byte (0X40004C90, 0X1C);
- patch_byte (0X40004C91, 0X31);
- patch_byte (0X40004C92, 0XA);
- patch_byte (0X40004C93, 0X60);
- patch_byte (0X40004C94, 0X8A);
- patch_byte (0X40004C95, 0X60);
- patch_byte (0X40004C96, 0XA);
- patch_byte (0X40004C97, 0X61);
- patch_byte (0X40004C98, 0X80);
- patch_byte (0X40004C99, 0X31);
- patch_byte (0X40004C9A, 0XA);
- patch_byte (0X40004C9B, 0X60);
- patch_byte (0X40004C9C, 0X4A);
- patch_byte (0X40004C9D, 0X60);
- patch_byte (0X40004C9E, 0X2B);
- patch_byte (0X40004C9F, 0X49);
- patch_byte (0X40004CA0, 0XA);
- patch_byte (0X40004CA1, 0X60);
- patch_byte (0X40004CA2, 0X5F);
- patch_byte (0X40004CA3, 0XF0);
- patch_byte (0X40004CA4, 0X20);
- patch_byte (0X40004CA5, 0X42);
- patch_byte (0X40004CA6, 0X2A);
- patch_byte (0X40004CA7, 0X49);
- patch_byte (0X40004CA8, 0XA);
- patch_byte (0X40004CA9, 0X60);
- patch_byte (0X40004CAA, 0X38);
- patch_byte (0X40004CAB, 0X31);
- patch_byte (0X40004CAC, 0XA);
- patch_byte (0X40004CAD, 0X60);
- patch_byte (0X40004CAE, 0X5F);
- patch_byte (0X40004CAF, 0XF0);
- patch_byte (0X40004CB0, 0X60);
- patch_byte (0X40004CB1, 0X42);
- patch_byte (0X40004CB2, 0X28);
- patch_byte (0X40004CB3, 0X49);
- patch_byte (0X40004CB4, 0XA);
- patch_byte (0X40004CB5, 0X60);
- patch_byte (0X40004CB6, 0);
- patch_byte (0X40004CB7, 0X21);
- patch_byte (0X40004CB8, 0XE);
- patch_byte (0X40004CB9, 0X20);
- patch_byte (0X40004CBA, 0X5D);
- patch_byte (0X40004CBB, 0XE0);
- patch_byte (0X40004CBC, 0X88);
- patch_byte (0X40004CBD, 0X69);
- patch_byte (0X40004CBE, 0X1);
- patch_byte (0X40004CBF, 0X22);
- patch_byte (0X40004CC0, 0X10);
- patch_byte (0X40004CC1, 0X43);
- patch_byte (0X40004CC2, 0X59);
- patch_byte (0X40004CC3, 0XE0);
- patch_byte (0X40004CC4, 0X22);
- patch_byte (0X40004CC5, 0X6D);
- patch_byte (0X40004CC6, 0X92);
- patch_byte (0X40004CC7, 0X1C);
- patch_byte (0X40004CC8, 0X22);
- patch_byte (0X40004CC9, 0X65);
- patch_byte (0X40004CCA, 0X80);
- patch_byte (0X40004CCB, 0X39);
- patch_byte (0X40004CCC, 0X61);
- patch_byte (0X40004CCD, 0X63);
- patch_byte (0X40004CCE, 0X53);
- patch_byte (0X40004CCF, 0XE0);
- patch_byte (0X40004CD0, 0X5F);
- patch_byte (0X40004CD1, 0XF0);
- patch_byte (0X40004CD2, 0XE0);
- patch_byte (0X40004CD3, 0X40);
- patch_byte (0X40004CD4, 0X20);
- patch_byte (0X40004CD5, 0X4E);
- patch_byte (0X40004CD6, 0X21);
- patch_byte (0X40004CD7, 0X4A);
- patch_byte (0X40004CD8, 0X12);
- patch_byte (0X40004CD9, 0X68);
- patch_byte (0X40004CDA, 0);
- patch_byte (0X40004CDB, 0X2A);
- patch_byte (0X40004CDC, 0X2);
- patch_byte (0X40004CDD, 0XD0);
- patch_byte (0X40004CDE, 0X32);
- patch_byte (0X40004CDF, 0X68);
- patch_byte (0X40004CE0, 0X82);
- patch_byte (0X40004CE1, 0X60);
- patch_byte (0X40004CE2, 0X3);
- patch_byte (0X40004CE3, 0XE0);
- patch_byte (0X40004CE4, 0X82);
- patch_byte (0X40004CE5, 0X68);
- patch_byte (0X40004CE6, 0X80);
- patch_byte (0X40004CE7, 0XC);
- patch_byte (0X40004CE8, 0X2);
- patch_byte (0X40004CE9, 0X43);
- patch_byte (0X40004CEA, 0X32);
- patch_byte (0X40004CEB, 0X60);
- patch_byte (0X40004CEC, 0X1C);
- patch_byte (0X40004CED, 0X4E);
- patch_byte (0X40004CEE, 0X30);
- patch_byte (0X40004CEF, 0X68);
- patch_byte (0X40004CF0, 0X5F);
- patch_byte (0X40004CF1, 0XF4);
- patch_byte (0X40004CF2, 0X80);
- patch_byte (0X40004CF3, 0X42);
- patch_byte (0X40004CF4, 0X2);
- patch_byte (0X40004CF5, 0X43);
- patch_byte (0X40004CF6, 0X32);
- patch_byte (0X40004CF7, 0X60);
- patch_byte (0X40004CF8, 0X28);
- patch_byte (0X40004CF9, 0X69);
- patch_byte (0X40004CFA, 0X3D);
- patch_byte (0X40004CFB, 0XE0);
- patch_byte (0X40004CFC, 0X5F);
- patch_byte (0X40004CFD, 0XF0);
- patch_byte (0X40004CFE, 0X70);
- patch_byte (0X40004CFF, 0X62);
- patch_byte (0X40004D00, 0X91);
- patch_byte (0X40004D01, 0X43);
- patch_byte (0X40004D02, 0X21);
- patch_byte (0X40004D03, 0X61);
- patch_byte (0X40004D04, 0X21);
- patch_byte (0X40004D05, 0X6D);
- patch_byte (0X40004D06, 0X7);
- patch_byte (0X40004D07, 0X22);
- patch_byte (0X40004D08, 0X91);
- patch_byte (0X40004D09, 0X43);
- patch_byte (0X40004D0A, 0X21);
- patch_byte (0X40004D0B, 0X65);
- patch_byte (0X40004D0C, 0X34);
- patch_byte (0X40004D0D, 0XE0);
- patch_byte (0X40004D0E, 0X15);
- patch_byte (0X40004D0F, 0X4A);
- patch_byte (0X40004D10, 0X12);
- patch_byte (0X40004D11, 0X68);
- patch_byte (0X40004D12, 0X12);
- patch_byte (0X40004D13, 0XA);
- patch_byte (0X40004D14, 0X52);
- patch_byte (0X40004D15, 0);
- patch_byte (0X40004D16, 0X21);
- patch_byte (0X40004D17, 0X68);
- patch_byte (0X40004D18, 0X91);
- patch_byte (0X40004D19, 0X43);
- patch_byte (0X40004D1A, 0X21);
- patch_byte (0X40004D1B, 0X60);
- patch_byte (0X40004D1C, 0);
- patch_byte (0X40004D1D, 0X28);
- patch_byte (0X40004D1E, 0X2B);
- patch_byte (0X40004D1F, 0XE0);
- patch_byte (0X40004D20, 0X11);
- patch_byte (0X40004D21, 0X48);
- patch_byte (0X40004D22, 0X2);
- patch_byte (0X40004D23, 0X68);
- patch_byte (0X40004D24, 0);
- patch_byte (0X40004D25, 0X92);
- patch_byte (0X40004D26, 0X11);
- patch_byte (0X40004D27, 0X48);
- patch_byte (0X40004D28, 0X52);
- patch_byte (0X40004D29, 0XC);
- patch_byte (0X40004D2A, 0X25);
- patch_byte (0X40004D2B, 0XD0);
- patch_byte (0X40004D2C, 0X10);
- patch_byte (0X40004D2D, 0X48);
- patch_byte (0X40004D2E, 0X4);
- patch_byte (0X40004D2F, 0X60);
- patch_byte (0X40004D30, 0XFE);
- patch_byte (0X40004D31, 0XE7);
- patch_byte (0X40004D32, 0X10);
- patch_byte (0X40004D33, 0X4A);
- patch_byte (0X40004D34, 0);
- patch_byte (0X40004D35, 0X92);
- patch_byte (0X40004D36, 0X92);
- patch_byte (0X40004D37, 0X69);
- patch_byte (0X40004D38, 0XFC);
- patch_byte (0X40004D39, 0X30);
- patch_byte (0X40004D3A, 0XC2);
- patch_byte (0X40004D3B, 0X61);
- patch_byte (0X40004D3C, 0X1C);
- patch_byte (0X40004D3D, 0XE0);
- patch_byte (0X40004D3E, 0);
- patch_byte (0X40004D3F, 0);
- patch_byte (0X40004D40, 0X10);
- patch_byte (0X40004D41, 0X64);
- patch_byte (0X40004D42, 0);
- patch_byte (0X40004D43, 0X60);
- patch_byte (0X40004D44, 0XF8);
- patch_byte (0X40004D45, 0X60);
- patch_byte (0X40004D46, 0);
- patch_byte (0X40004D47, 0X60);
- patch_byte (0X40004D48, 0X84);
- patch_byte (0X40004D49, 0X62);
- patch_byte (0X40004D4A, 0);
- patch_byte (0X40004D4B, 0X60);
- patch_byte (0X40004D4C, 0X54);
- patch_byte (0X40004D4D, 0X65);
- patch_byte (0X40004D4E, 0);
- patch_byte (0X40004D4F, 0X60);
- patch_byte (0X40004D50, 0X48);
- patch_byte (0X40004D51, 0X61);
- patch_byte (0X40004D52, 0);
- patch_byte (0X40004D53, 0X60);
- patch_byte (0X40004D54, 0XA0);
- patch_byte (0X40004D55, 0X66);
- patch_byte (0X40004D56, 0);
- patch_byte (0X40004D57, 0X60);
- patch_byte (0X40004D58, 0X14);
- patch_byte (0X40004D59, 0XEF);
- patch_byte (0X40004D5A, 0);
- patch_byte (0X40004D5B, 0X70);
- patch_byte (0X40004D5C, 0XB4);
- patch_byte (0X40004D5D, 0XE5);
- patch_byte (0X40004D5E, 0);
- patch_byte (0X40004D5F, 0X70);
- patch_byte (0X40004D60, 0XC0);
- patch_byte (0X40004D61, 0XE9);
- patch_byte (0X40004D62, 0);
- patch_byte (0X40004D63, 0X70);
- patch_byte (0X40004D64, 0X9C);
- patch_byte (0X40004D65, 0XFA);
- patch_byte (0X40004D66, 0);
- patch_byte (0X40004D67, 0X70);
- patch_byte (0X40004D68, 0XF0);
- patch_byte (0X40004D69, 0X49);
- patch_byte (0X40004D6A, 0);
- patch_byte (0X40004D6B, 0X40);
- patch_byte (0X40004D6C, 0);
- patch_byte (0X40004D6D, 0);
- patch_byte (0X40004D6E, 0X1);
- patch_byte (0X40004D6F, 0X40);
- patch_byte (0X40004D70, 0);
- patch_byte (0X40004D71, 0XE4);
- patch_byte (0X40004D72, 0);
- patch_byte (0X40004D73, 0X70);
- patch_byte (0X40004D74, 0X20);
- patch_byte (0X40004D75, 0X2);
- patch_byte (0X40004D76, 0X1);
- patch_byte (0X40004D77, 0X40);
- patch_byte (0X40004D78, 0X4);
- patch_byte (0X40004D79, 0XBC);
- patch_byte (0X40004D7A, 0XF7);
- patch_byte (0X40004D7B, 0X46);
- //arm start
- create_insn (0x40004C30);
- //thumb start
- split_sreg_range(0X40004C78,"T",0X1,2);
- split_sreg_range(0X40004CE4,"T",0X1,3);
- split_sreg_range(0X40004CEC,"T",0X1,3);
- split_sreg_range(0X40004D30,"T",0X1,3);
- split_sreg_range(0X40004D78,"T",0X1,3);
- split_sreg_range(0X40004D7A,"T",0X1,3);
- create_insn (0X40004C78);
- create_insn (0x40004CBC);
- create_insn (0x40004CC4);
- create_insn (0x40004CD0);
- create_insn (0x40004CFC);
- create_insn (0x40004D0E);
- create_insn (0x40004D20);
- create_insn (0x40004D32);
- create_insn (0x40004D78);
- }
- // End of file.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement