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:
parent
9de814e66a
commit
c612e66833
1 changed files with 32 additions and 0 deletions
|
|
@ -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;
|
||||||
}
|
}
|
||||||
Loading…
Add table
Reference in a new issue