Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <idc.idc>
- // Basic X360 SDK functions labeler.
- // v 0.1
- // by Dwack
- static labelFunctions()
- {
- auto currAddr, lastAddr, i;
- Message("Finding CreateFile()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7C 7D 1B 78 7C 9C 23 78 7C BA 2B 78 7C FB 3B 78");
- if(currAddr == BADADDR)
- break;
- lastAddr = currAddr;
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7D 1F 43 78 2B 07 00 01 41 9A 00 5C 2B 07 00 02");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- if((currAddr - lastAddr) == 16)
- {
- currAddr = lastAddr - 12;
- MakeUnknown(currAddr, 496, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, BADADDR);//currAddr + 500);
- if(MakeNameEx(currAddr, "CreateFile", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "CreateFile", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- Message("Finding GetFileSize()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7D 88 02 A6 91 81 FF F8 FB E1 FF F0 94 21 FF 90");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- lastAddr = currAddr;
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "2C 03 00 00 41 82 00 30 2B 1F 00 00 41 9A 00 0C");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- if((currAddr - lastAddr) == 28)
- {
- currAddr = lastAddr;
- MakeUnknown(currAddr, 104, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 104);
- if(MakeNameEx(currAddr, "GetFileSize", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "GetFileSize", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- Message("Finding GetFileAttributes()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7D 88 02 A6 91 81 FF F8 94 21 FF 50 7C 64 1B 78 38 61 00 50");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- lastAddr = currAddr;
- currAddr = FindBinary(currAddr+4, SEARCH_DOWN, "39 60 FF FD 39 40 00 40 39 21 00 50 91 61 00 58");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- if((currAddr - lastAddr) == 24)
- {
- currAddr = lastAddr;
- MakeUnknown(currAddr, 100, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 100);
- if(MakeNameEx(currAddr, "GetFileAttributes", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "GetFileAttributes", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- Message("Finding GetLastError()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "81 6D 01 50 2B 0B 00 00 40 9A 00 10 81 6D 01 00");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- lastAddr = currAddr;
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "80 6B 01 60 4E 80 00 20 38 60 00 00 4E 80 00 20");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- if((currAddr - lastAddr) == 16)
- {
- currAddr = lastAddr;
- MakeUnknown(currAddr, 32, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 32);
- if(MakeNameEx(currAddr, "GetLastError", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "GetLastError", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- // GetTickCount() ////////////////////////////////////////////////
- Message("Finding GetTickCount()\n");
- currAddr = 0;
- for (;;)
- {
- currAddr = FindText(currAddr, 1, 0, 0, "KeTimeStampBundle@h");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- else
- {
- MakeUnknown(currAddr, 16, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 16);
- if(MakeNameEx(currAddr, "GetTickCount", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "GetTickCount", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- }
- ///////////////////////////////////////////////////////////////////
- Message("Finding SetLastError()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "81 6D 01 50 2B 0B 00 00 4C 9A 00 20 81 6D 01 00 90 6B 01 60 4E 80 00 20");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- MakeUnknown(currAddr, 24, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 24);
- if(MakeNameEx(currAddr, "SetLastError", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "SetLastError", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- Message("Finding Free()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7D 88 02 A6 91 81 FF F8 FB E1 FF F0 94 21 FF A0");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- //Message("1: %08X\n", currAddr);
- lastAddr = currAddr;
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7C 7F 1B 78 2B 03 00 00 41 9A 00 30");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- //Message("2: %08X\n", currAddr);
- //Message("3: %d\n", (currAddr - lastAddr));
- if((currAddr - lastAddr) == 16)
- {
- currAddr = lastAddr;
- MakeUnknown(currAddr, 92, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 92);
- if(MakeNameEx(currAddr, "Free", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "Free", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- Message("Finding CloseHandle()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "81 6B 00 04 7D 69 03 A6 4E 80 04 21 2C 03 00 00");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- //Message("1: %08X\n", currAddr);
- lastAddr = currAddr;
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "41 80 00 0C 38 60 00 01 48 00 00 0C");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- //Message("2: %08X\n", currAddr);
- //Message("3: %d\n", (currAddr - lastAddr));
- if((currAddr - lastAddr) == 16)
- {
- currAddr = lastAddr - 20;
- MakeUnknown(currAddr, 72, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 72);
- if(MakeNameEx(currAddr, "CloseHandle", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "CloseHandle", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- Message("Finding WriteFile()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7D 88 02 A6 48 00 1D D9 94 21 FF 80 7C 7E 1B 78");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- lastAddr = currAddr;
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7C 88 23 78 7C A9 2B 78 7C DD 33 78 7C FF 3B 78");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- if((currAddr - lastAddr) == 16)
- {
- currAddr = lastAddr;
- MakeUnknown(currAddr, 292, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 292);
- if(MakeNameEx(currAddr, "WriteFile", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "WriteFile", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- Message("Finding DeleteFile()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7D 88 02 A6 91 81 FF F8 FB E1 FF F0 94 21 FF 70");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- lastAddr = currAddr;
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "39 60 FF FD 39 40 00 40 39 21 00 58 91 61 00 68");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- if((currAddr - lastAddr) == 28)
- {
- currAddr = lastAddr;
- MakeUnknown(currAddr, 180, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 180);
- if(MakeNameEx(currAddr, "DeleteFile", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "DeleteFile", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- Message("Finding MemCpy()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "F8 61 FF F8 54 66 07 7E 7C 00 22 2C 28 06 00 00");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- lastAddr = currAddr;
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "20 C6 00 08 41 82 00 50 7C 05 30 40 40 81 00 64");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- if((currAddr - lastAddr) == 16)
- {
- currAddr = lastAddr;
- MakeUnknown(currAddr, 1160, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 1160);
- if(MakeNameEx(currAddr, "MemCpy", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "MemCpy", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- //7C 03 20 00 4D C2 00 20 40 E0 00 08 4B FF FA C4
- Message("Finding MemMove()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7C 03 20 00 4D C2 00 20 40 E0 00 08 4B FF FA C4");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- MakeUnknown(currAddr, 16, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 16);
- if(MakeNameEx(currAddr, "MemMove", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "MemMove", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- Message("Finding MemSet()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "38 05 00 01 7C 09 03 A6 60 66 00 00 48 00 00 10");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- lastAddr = currAddr;
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "38 A5 FF FF 98 86 00 00 38 C6 00 01 70 C0 00 03");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- if((currAddr - lastAddr) == 16)
- {
- currAddr = lastAddr;
- MakeUnknown(currAddr, 160, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 160);
- if(MakeNameEx(currAddr, "MemSet", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "MemSet", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- Message("Finding ReadFile()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "94 21 FF 70 7C 7E 1B 78 7C 88 23 78 7C A9 2B 78");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- lastAddr = currAddr;
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7C DD 33 78 7C FF 3B 78 3B 80 00 00 2B 06 00 00");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- if((currAddr - lastAddr) == 16)
- {
- currAddr = lastAddr - 8;
- MakeUnknown(currAddr, 380, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 380);
- if(MakeNameEx(currAddr, "ReadFile", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "ReadFile", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- Message("Finding ResumeThread()\n");
- for(currAddr=0; currAddr != BADADDR; currAddr=currAddr+4)
- {
- currAddr = FindBinary(currAddr, SEARCH_DOWN, "7D 88 02 A6 91 81 FF F8 94 21 FF A0 38 81 00 50");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- lastAddr = currAddr;
- currAddr = FindText(currAddr, 1, 0, 0, "NtResumeThread");
- if(currAddr == BADADDR)
- {
- Message("Function not found!\n");
- break;
- }
- if((currAddr - lastAddr) == 16)
- {
- currAddr = lastAddr;
- MakeUnknown(currAddr, 60, 0); // DOUNK_SIMPLE 0 DOUNK_DELNAMES 0x0002
- MakeCode(currAddr);
- MakeFunction(currAddr, currAddr + 60);
- if(MakeNameEx(currAddr, "ResumeThread", SN_NOCHECK|SN_NOWARN) != 1)
- MakeNameEx(currAddr, "ResumeThread", 0);
- Message("\tFunction found at %08X\n", currAddr);
- break;
- }
- else
- currAddr = lastAddr;
- }
- }
- static main()
- {
- labelFunctions();
- Message("Functions Labeled!\n\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement