well yea first major bug - we didnt parsed AMD specs so no endbr64 in LUT table is present. gonna fix that

This commit is contained in:
mykola2312 2024-08-19 09:27:34 +03:00
parent 9de814e66a
commit c612e66833

View file

@ -4,8 +4,34 @@
extern void test_1(); extern void test_1();
extern void test_1_end(); extern void test_1_end();
// TEST 2 - CRC calculation function to put rtdisasm to test
static unsigned int test_2(unsigned char *message)
{
int i, j;
unsigned int byte, crc, mask;
i = 0;
crc = 0xFFFFFFFF;
while (message[i] != 0)
{
byte = message[i];
crc = crc ^ byte;
for (j = 7; j >= 0; j--)
{
mask = -(crc & 1);
crc = (crc >> 1) ^ (0xEDB88320 & mask);
}
i = i + 1;
}
__asm__("nop"); // TARGET
return ~crc;
}
static void test_2_end() {}
int main() int main()
{ {
printf("== TEST 1 ==\n");
size_t size = (uintptr_t)test_1_end - (uintptr_t)test_1; size_t size = (uintptr_t)test_1_end - (uintptr_t)test_1;
printf("size %lu\n", size); printf("size %lu\n", size);
// int len = rtdisasm_analyze_single((const uint8_t*)test_1, size, NULL); // int len = rtdisasm_analyze_single((const uint8_t*)test_1, size, NULL);
@ -19,5 +45,11 @@ int main()
printf("RT_TARGET_SYSENTER %d\n", rtdisasm_find_target((const uint8_t*)test_1, size, RT_TARGET_SYSENTER)); printf("RT_TARGET_SYSENTER %d\n", rtdisasm_find_target((const uint8_t*)test_1, size, RT_TARGET_SYSENTER));
printf("RT_TARGET_SYSCALL %d\n", rtdisasm_find_target((const uint8_t*)test_1, size, RT_TARGET_SYSCALL)); printf("RT_TARGET_SYSCALL %d\n", rtdisasm_find_target((const uint8_t*)test_1, size, RT_TARGET_SYSCALL));
printf("== TEST 2 ==\n");
size = (uintptr_t)test_2_end - (uintptr_t)test_2;
printf("size %lu\n", size);
printf("test2 %d\n", rtdisasm_find_target((const uint8_t*)test_2, size, RT_TARGET_NOP));
return 0; return 0;
} }