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_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()
|
||||
{
|
||||
printf("== TEST 1 ==\n");
|
||||
size_t size = (uintptr_t)test_1_end - (uintptr_t)test_1;
|
||||
printf("size %lu\n", size);
|
||||
// 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_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;
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue