|
|
|
@ -87,9 +87,6 @@ PUBLIC ?__empty_global_delete@@YAXPEAX@Z ; __empty_global_delete
|
|
|
|
|
PUBLIC ?__empty_global_delete@@YAXPEAX_K@Z ; __empty_global_delete
|
|
|
|
|
PUBLIC ?__empty_global_delete@@YAXPEAXW4align_val_t@std@@@Z ; __empty_global_delete
|
|
|
|
|
PUBLIC ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z ; __empty_global_delete
|
|
|
|
|
PUBLIC __local_stdio_printf_options
|
|
|
|
|
PUBLIC _vfprintf_l
|
|
|
|
|
PUBLIC printf
|
|
|
|
|
PUBLIC wmemcpy
|
|
|
|
|
PUBLIC ??$_Maklocstr@_W@std@@YAPEA_WPEBDPEA_WAEBU_Cvtvec@@@Z ; std::_Maklocstr<wchar_t>
|
|
|
|
|
PUBLIC ?_Maklocwcs@std@@YAPEA_WPEB_W@Z ; std::_Maklocwcs
|
|
|
|
@ -100,11 +97,9 @@ PUBLIC ?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipR
|
|
|
|
|
PUBLIC ?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovW
|
|
|
|
|
PUBLIC ?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ; JitEmitRipRelativeMovB
|
|
|
|
|
PUBLIC __JustMyCode_Default
|
|
|
|
|
PUBLIC ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage
|
|
|
|
|
PUBLIC ??_C@_0GI@DEICPIDJ@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string'
|
|
|
|
|
PUBLIC ?__LINE__Var@?0??_Maklocwcs@std@@YAPEA_WPEB_W@Z@4JA ; `std::_Maklocwcs'::`1'::__LINE__Var
|
|
|
|
|
PUBLIC ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ ; `string'
|
|
|
|
|
PUBLIC ??_C@_09MPIOMHBM@?$CFp?5memes?6@ ; `string'
|
|
|
|
|
PUBLIC ??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ ; `string'
|
|
|
|
|
PUBLIC ??_C@_1BK@MHIKGOKE@?$AA?3?$AAA?$AAM?$AA?3?$AAa?$AAm?$AA?3?$AAP?$AAM?$AA?3?$AAp?$AAm@ ; `string'
|
|
|
|
|
EXTRN ??2@YAPEAX_K@Z:PROC ; operator new
|
|
|
|
@ -113,8 +108,6 @@ EXTRN memcpy:PROC
|
|
|
|
|
EXTRN __imp_wcslen:PROC
|
|
|
|
|
EXTRN strlen:PROC
|
|
|
|
|
EXTRN __imp__calloc_dbg:PROC
|
|
|
|
|
EXTRN __imp___acrt_iob_func:PROC
|
|
|
|
|
EXTRN __imp___stdio_common_vfprintf:PROC
|
|
|
|
|
EXTRN ?_Xbad_alloc@std@@YAXXZ:PROC ; std::_Xbad_alloc
|
|
|
|
|
EXTRN _Mbrtowc:PROC
|
|
|
|
|
EXTRN __imp_?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ:PROC
|
|
|
|
@ -134,10 +127,6 @@ EXTRN __GSHandlerCheck:PROC
|
|
|
|
|
EXTRN __GSHandlerCheck_EH4:PROC
|
|
|
|
|
EXTRN __security_check_cookie:PROC
|
|
|
|
|
EXTRN __security_cookie:QWORD
|
|
|
|
|
; COMDAT ?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA
|
|
|
|
|
_BSS SEGMENT
|
|
|
|
|
?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA DQ 01H DUP (?) ; `__local_stdio_printf_options'::`2'::_OptionsStorage
|
|
|
|
|
_BSS ENDS
|
|
|
|
|
; COMDAT pdata
|
|
|
|
|
pdata SEGMENT
|
|
|
|
|
$pdata$?__empty_global_delete@@YAXPEAX@Z DD imagerel $LN3
|
|
|
|
@ -164,24 +153,6 @@ $pdata$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DD imagerel $LN3
|
|
|
|
|
pdata ENDS
|
|
|
|
|
; COMDAT pdata
|
|
|
|
|
pdata SEGMENT
|
|
|
|
|
$pdata$__local_stdio_printf_options DD imagerel $LN3
|
|
|
|
|
DD imagerel $LN3+59
|
|
|
|
|
DD imagerel $unwind$__local_stdio_printf_options
|
|
|
|
|
pdata ENDS
|
|
|
|
|
; COMDAT pdata
|
|
|
|
|
pdata SEGMENT
|
|
|
|
|
$pdata$_vfprintf_l DD imagerel $LN3
|
|
|
|
|
DD imagerel $LN3+126
|
|
|
|
|
DD imagerel $unwind$_vfprintf_l
|
|
|
|
|
pdata ENDS
|
|
|
|
|
; COMDAT pdata
|
|
|
|
|
pdata SEGMENT
|
|
|
|
|
$pdata$printf DD imagerel $LN3
|
|
|
|
|
DD imagerel $LN3+214
|
|
|
|
|
DD imagerel $unwind$printf
|
|
|
|
|
pdata ENDS
|
|
|
|
|
; COMDAT pdata
|
|
|
|
|
pdata SEGMENT
|
|
|
|
|
$pdata$wmemcpy DD imagerel $LN3
|
|
|
|
|
DD imagerel $LN3+106
|
|
|
|
|
DD imagerel $unwind$wmemcpy
|
|
|
|
@ -219,7 +190,7 @@ pdata ENDS
|
|
|
|
|
; COMDAT pdata
|
|
|
|
|
pdata SEGMENT
|
|
|
|
|
$pdata$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z DD imagerel $LN6
|
|
|
|
|
DD imagerel $LN6+397
|
|
|
|
|
DD imagerel $LN6+381
|
|
|
|
|
DD imagerel $unwind$?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z
|
|
|
|
|
pdata ENDS
|
|
|
|
|
; COMDAT pdata
|
|
|
|
@ -270,10 +241,6 @@ CONST ENDS
|
|
|
|
|
CONST SEGMENT
|
|
|
|
|
??_C@_0N@LPFKKEBD@?3AM?3am?3PM?3pm@ DB ':AM:am:PM:pm', 00H ; `string'
|
|
|
|
|
CONST ENDS
|
|
|
|
|
; COMDAT ??_C@_09MPIOMHBM@?$CFp?5memes?6@
|
|
|
|
|
CONST SEGMENT
|
|
|
|
|
??_C@_09MPIOMHBM@?$CFp?5memes?6@ DB '%p memes', 0aH, 00H ; `string'
|
|
|
|
|
CONST ENDS
|
|
|
|
|
; COMDAT ??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@
|
|
|
|
|
CONST SEGMENT
|
|
|
|
|
??_C@_0GI@LHMPPKJI@C?3?2Program?5Files?5?$CIx86?$CJ?2Microsof@ DB 'C:\Pro'
|
|
|
|
@ -543,49 +510,6 @@ $unwind$wmemcpy DD 025053401H
|
|
|
|
|
xdata ENDS
|
|
|
|
|
; COMDAT xdata
|
|
|
|
|
xdata SEGMENT
|
|
|
|
|
$unwind$printf DD 025054a19H
|
|
|
|
|
DD 011d2322H
|
|
|
|
|
DD 07016002bH
|
|
|
|
|
DD 05015H
|
|
|
|
|
DD imagerel __GSHandlerCheck
|
|
|
|
|
DD 0148H
|
|
|
|
|
xdata ENDS
|
|
|
|
|
; COMDAT CONST
|
|
|
|
|
CONST SEGMENT
|
|
|
|
|
printf$rtcName$0 DB 05fH
|
|
|
|
|
DB 041H
|
|
|
|
|
DB 072H
|
|
|
|
|
DB 067H
|
|
|
|
|
DB 04cH
|
|
|
|
|
DB 069H
|
|
|
|
|
DB 073H
|
|
|
|
|
DB 074H
|
|
|
|
|
DB 00H
|
|
|
|
|
ORG $+7
|
|
|
|
|
printf$rtcVarDesc DD 048H
|
|
|
|
|
DD 08H
|
|
|
|
|
DQ FLAT:printf$rtcName$0
|
|
|
|
|
ORG $+48
|
|
|
|
|
printf$rtcFrameData DD 01H
|
|
|
|
|
DD 00H
|
|
|
|
|
DQ FLAT:printf$rtcVarDesc
|
|
|
|
|
CONST ENDS
|
|
|
|
|
; COMDAT xdata
|
|
|
|
|
xdata SEGMENT
|
|
|
|
|
$unwind$_vfprintf_l DD 035053901H
|
|
|
|
|
DD 011d3322H
|
|
|
|
|
DD 07016001fH
|
|
|
|
|
DD 05015H
|
|
|
|
|
xdata ENDS
|
|
|
|
|
; COMDAT xdata
|
|
|
|
|
xdata SEGMENT
|
|
|
|
|
$unwind$__local_stdio_printf_options DD 025051e01H
|
|
|
|
|
DD 010a230fH
|
|
|
|
|
DD 07003001dH
|
|
|
|
|
DD 05002H
|
|
|
|
|
xdata ENDS
|
|
|
|
|
; COMDAT xdata
|
|
|
|
|
xdata SEGMENT
|
|
|
|
|
$ip2state$?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z DB 02H
|
|
|
|
|
DB 00H
|
|
|
|
|
DB 00H
|
|
|
|
@ -686,7 +610,7 @@ RipDelta$ = 376
|
|
|
|
|
Data$ = 384
|
|
|
|
|
?JitEmitRipRelativeMovB@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z PROC ; JitEmitRipRelativeMovB, COMDAT
|
|
|
|
|
|
|
|
|
|
; 29 : {
|
|
|
|
|
; 28 : {
|
|
|
|
|
|
|
|
|
|
$LN6:
|
|
|
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
|
|
@ -712,7 +636,7 @@ $LN6:
|
|
|
|
|
00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp
|
|
|
|
|
0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
|
|
|
|
|
|
; 30 : UCHAR RawData[] = { 0xC6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
|
|
|
|
; 29 : UCHAR RawData[] = { 0xC6, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
|
|
|
|
|
|
|
|
|
00050 c6 45 04 c6 mov BYTE PTR RawData$[rbp], 198 ; 000000c6H
|
|
|
|
|
00054 c6 45 05 05 mov BYTE PTR RawData$[rbp+1], 5
|
|
|
|
@ -722,8 +646,8 @@ $LN6:
|
|
|
|
|
00064 c6 45 09 00 mov BYTE PTR RawData$[rbp+5], 0
|
|
|
|
|
00068 c6 45 0a 00 mov BYTE PTR RawData$[rbp+6], 0
|
|
|
|
|
|
|
|
|
|
; 31 :
|
|
|
|
|
; 32 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData));
|
|
|
|
|
; 30 :
|
|
|
|
|
; 31 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData));
|
|
|
|
|
|
|
|
|
|
0006c b9 f0 00 00 00 mov ecx, 240 ; 000000f0H
|
|
|
|
|
00071 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new
|
|
|
|
@ -735,7 +659,7 @@ $LN6:
|
|
|
|
|
00087 41 b9 07 00 00
|
|
|
|
|
00 mov r9d, 7
|
|
|
|
|
0008d 4c 8d 45 04 lea r8, QWORD PTR RawData$[rbp]
|
|
|
|
|
00091 ba 04 00 00 00 mov edx, 4
|
|
|
|
|
00091 ba 0c 00 00 00 mov edx, 12
|
|
|
|
|
00096 48 8b 8d 28 01
|
|
|
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
|
|
|
0009d e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK
|
|
|
|
@ -755,7 +679,7 @@ $LN4@JitEmitRip:
|
|
|
|
|
00 00 mov rax, QWORD PTR $T4[rbp]
|
|
|
|
|
000cb 48 89 45 28 mov QWORD PTR Link$[rbp], rax
|
|
|
|
|
|
|
|
|
|
; 33 : *(PINT32)&Link->RawData[2] = RipDelta;
|
|
|
|
|
; 32 : *(PINT32)&Link->RawData[2] = RipDelta;
|
|
|
|
|
|
|
|
|
|
000cf b8 01 00 00 00 mov eax, 1
|
|
|
|
|
000d4 48 6b c0 02 imul rax, rax, 2
|
|
|
|
@ -765,7 +689,7 @@ $LN4@JitEmitRip:
|
|
|
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
|
|
|
000e6 89 14 08 mov DWORD PTR [rax+rcx], edx
|
|
|
|
|
|
|
|
|
|
; 34 : Link->RawData[6] = *Data;
|
|
|
|
|
; 33 : Link->RawData[6] = *Data;
|
|
|
|
|
|
|
|
|
|
000e9 b8 01 00 00 00 mov eax, 1
|
|
|
|
|
000ee 48 6b c0 06 imul rax, rax, 6
|
|
|
|
@ -776,7 +700,7 @@ $LN4@JitEmitRip:
|
|
|
|
|
00101 0f b6 12 movzx edx, BYTE PTR [rdx]
|
|
|
|
|
00104 88 14 08 mov BYTE PTR [rax+rcx], dl
|
|
|
|
|
|
|
|
|
|
; 35 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize);
|
|
|
|
|
; 34 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize);
|
|
|
|
|
|
|
|
|
|
00107 48 8b 45 28 mov rax, QWORD PTR Link$[rbp]
|
|
|
|
|
0010b 48 83 c0 30 add rax, 48 ; 00000030H
|
|
|
|
@ -787,18 +711,18 @@ $LN4@JitEmitRip:
|
|
|
|
|
0011f 48 8b c8 mov rcx, rax
|
|
|
|
|
00122 e8 00 00 00 00 call xed_decode
|
|
|
|
|
|
|
|
|
|
; 36 : NcAppendToBlock(Block, Link);
|
|
|
|
|
; 35 : NcAppendToBlock(Block, Link);
|
|
|
|
|
|
|
|
|
|
00127 48 8b 55 28 mov rdx, QWORD PTR Link$[rbp]
|
|
|
|
|
0012b 48 8b 8d 70 01
|
|
|
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
|
|
|
00132 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock
|
|
|
|
|
|
|
|
|
|
; 37 : return TRUE;
|
|
|
|
|
; 36 : return TRUE;
|
|
|
|
|
|
|
|
|
|
00137 b8 01 00 00 00 mov eax, 1
|
|
|
|
|
|
|
|
|
|
; 38 : }
|
|
|
|
|
; 37 : }
|
|
|
|
|
|
|
|
|
|
0013c 8b f8 mov edi, eax
|
|
|
|
|
0013e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
|
|
|
@ -889,7 +813,7 @@ RipDelta$ = 392
|
|
|
|
|
Data$ = 400
|
|
|
|
|
?JitEmitRipRelativeMovW@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z PROC ; JitEmitRipRelativeMovW, COMDAT
|
|
|
|
|
|
|
|
|
|
; 17 : {
|
|
|
|
|
; 16 : {
|
|
|
|
|
|
|
|
|
|
$LN6:
|
|
|
|
|
00000 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
|
|
@ -915,7 +839,7 @@ $LN6:
|
|
|
|
|
00 00 lea rcx, OFFSET FLAT:__9DFA3906_RipMovInst@cpp
|
|
|
|
|
0004b e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
|
|
|
|
|
|
; 18 : UCHAR RawData[] = { 0x66, 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
|
|
|
|
; 17 : UCHAR RawData[] = { 0x66, 0xC7, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
|
|
|
|
|
|
|
|
|
00050 c6 45 08 66 mov BYTE PTR RawData$[rbp], 102 ; 00000066H
|
|
|
|
|
00054 c6 45 09 c7 mov BYTE PTR RawData$[rbp+1], 199 ; 000000c7H
|
|
|
|
@ -927,8 +851,8 @@ $LN6:
|
|
|
|
|
0006c c6 45 0f 00 mov BYTE PTR RawData$[rbp+7], 0
|
|
|
|
|
00070 c6 45 10 00 mov BYTE PTR RawData$[rbp+8], 0
|
|
|
|
|
|
|
|
|
|
; 19 :
|
|
|
|
|
; 20 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData));
|
|
|
|
|
; 18 :
|
|
|
|
|
; 19 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData));
|
|
|
|
|
|
|
|
|
|
00074 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H
|
|
|
|
|
00079 e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new
|
|
|
|
@ -940,7 +864,7 @@ $LN6:
|
|
|
|
|
0008f 41 b9 09 00 00
|
|
|
|
|
00 mov r9d, 9
|
|
|
|
|
00095 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp]
|
|
|
|
|
00099 ba 04 00 00 00 mov edx, 4
|
|
|
|
|
00099 ba 0c 00 00 00 mov edx, 12
|
|
|
|
|
0009e 48 8b 8d 38 01
|
|
|
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
|
|
|
000a5 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK
|
|
|
|
@ -960,7 +884,7 @@ $LN4@JitEmitRip:
|
|
|
|
|
00 00 mov rax, QWORD PTR $T4[rbp]
|
|
|
|
|
000d3 48 89 45 38 mov QWORD PTR Link$[rbp], rax
|
|
|
|
|
|
|
|
|
|
; 21 : *(PINT32)&Link->RawData[3] = RipDelta;
|
|
|
|
|
; 20 : *(PINT32)&Link->RawData[3] = RipDelta;
|
|
|
|
|
|
|
|
|
|
000d7 b8 01 00 00 00 mov eax, 1
|
|
|
|
|
000dc 48 6b c0 03 imul rax, rax, 3
|
|
|
|
@ -970,7 +894,7 @@ $LN4@JitEmitRip:
|
|
|
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
|
|
|
000ee 89 14 08 mov DWORD PTR [rax+rcx], edx
|
|
|
|
|
|
|
|
|
|
; 22 : memcpy(&Link->RawData[7], Data, 2);
|
|
|
|
|
; 21 : RtlCopyMemory(&Link->RawData[7], Data, 2);
|
|
|
|
|
|
|
|
|
|
000f1 b8 01 00 00 00 mov eax, 1
|
|
|
|
|
000f6 48 6b c0 07 imul rax, rax, 7
|
|
|
|
@ -983,7 +907,7 @@ $LN4@JitEmitRip:
|
|
|
|
|
0010f 48 8b c8 mov rcx, rax
|
|
|
|
|
00112 e8 00 00 00 00 call memcpy
|
|
|
|
|
|
|
|
|
|
; 23 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize);
|
|
|
|
|
; 22 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize);
|
|
|
|
|
|
|
|
|
|
00117 48 8b 45 38 mov rax, QWORD PTR Link$[rbp]
|
|
|
|
|
0011b 48 83 c0 30 add rax, 48 ; 00000030H
|
|
|
|
@ -994,18 +918,18 @@ $LN4@JitEmitRip:
|
|
|
|
|
0012f 48 8b c8 mov rcx, rax
|
|
|
|
|
00132 e8 00 00 00 00 call xed_decode
|
|
|
|
|
|
|
|
|
|
; 24 : NcAppendToBlock(Block, Link);
|
|
|
|
|
; 23 : NcAppendToBlock(Block, Link);
|
|
|
|
|
|
|
|
|
|
00137 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp]
|
|
|
|
|
0013b 48 8b 8d 80 01
|
|
|
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
|
|
|
00142 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock
|
|
|
|
|
|
|
|
|
|
; 25 : return TRUE;
|
|
|
|
|
; 24 : return TRUE;
|
|
|
|
|
|
|
|
|
|
00147 b8 01 00 00 00 mov eax, 1
|
|
|
|
|
|
|
|
|
|
; 26 : }
|
|
|
|
|
; 25 : }
|
|
|
|
|
|
|
|
|
|
0014c 8b f8 mov edi, eax
|
|
|
|
|
0014e 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
|
|
|
@ -1136,7 +1060,7 @@ $LN6:
|
|
|
|
|
00074 c6 45 11 00 mov BYTE PTR RawData$[rbp+9], 0
|
|
|
|
|
|
|
|
|
|
; 6 :
|
|
|
|
|
; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST, RawData, sizeof(RawData));
|
|
|
|
|
; 7 : PNATIVE_CODE_LINK Link = new NATIVE_CODE_LINK(CODE_FLAG_IS_INST | CODE_FLAG_DO_NOT_DIVIDE, RawData, sizeof(RawData));
|
|
|
|
|
|
|
|
|
|
00078 b9 f0 00 00 00 mov ecx, 240 ; 000000f0H
|
|
|
|
|
0007d e8 00 00 00 00 call ??2@YAPEAX_K@Z ; operator new
|
|
|
|
@ -1148,7 +1072,7 @@ $LN6:
|
|
|
|
|
00093 41 b9 0a 00 00
|
|
|
|
|
00 mov r9d, 10
|
|
|
|
|
00099 4c 8d 45 08 lea r8, QWORD PTR RawData$[rbp]
|
|
|
|
|
0009d ba 04 00 00 00 mov edx, 4
|
|
|
|
|
0009d ba 0c 00 00 00 mov edx, 12
|
|
|
|
|
000a2 48 8b 8d 38 01
|
|
|
|
|
00 00 mov rcx, QWORD PTR $T5[rbp]
|
|
|
|
|
000a9 e8 00 00 00 00 call ??0_NATIVE_CODE_LINK@@QEAA@KPEAXK@Z ; _NATIVE_CODE_LINK::_NATIVE_CODE_LINK
|
|
|
|
@ -1178,7 +1102,7 @@ $LN4@JitEmitRip:
|
|
|
|
|
00 mov edx, DWORD PTR RipDelta$[rbp]
|
|
|
|
|
000f2 89 14 08 mov DWORD PTR [rax+rcx], edx
|
|
|
|
|
|
|
|
|
|
; 9 : memcpy(&Link->RawData[6], Data, 4);
|
|
|
|
|
; 9 : RtlCopyMemory(&Link->RawData[6], Data, 4);
|
|
|
|
|
|
|
|
|
|
000f5 b8 01 00 00 00 mov eax, 1
|
|
|
|
|
000fa 48 6b c0 06 imul rax, rax, 6
|
|
|
|
@ -1191,52 +1115,45 @@ $LN4@JitEmitRip:
|
|
|
|
|
00113 48 8b c8 mov rcx, rax
|
|
|
|
|
00116 e8 00 00 00 00 call memcpy
|
|
|
|
|
|
|
|
|
|
; 10 : printf("%p memes\n", Link);
|
|
|
|
|
|
|
|
|
|
0011b 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp]
|
|
|
|
|
0011f 48 8d 0d 00 00
|
|
|
|
|
00 00 lea rcx, OFFSET FLAT:??_C@_09MPIOMHBM@?$CFp?5memes?6@
|
|
|
|
|
00126 e8 00 00 00 00 call printf
|
|
|
|
|
; 10 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize);
|
|
|
|
|
|
|
|
|
|
; 11 : XedDecode(&Link->XedInstruction, Link->RawData, Link->RawDataSize);
|
|
|
|
|
0011b 48 8b 45 38 mov rax, QWORD PTR Link$[rbp]
|
|
|
|
|
0011f 48 83 c0 30 add rax, 48 ; 00000030H
|
|
|
|
|
00123 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp]
|
|
|
|
|
00127 44 8b 41 28 mov r8d, DWORD PTR [rcx+40]
|
|
|
|
|
0012b 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp]
|
|
|
|
|
0012f 48 8b 51 20 mov rdx, QWORD PTR [rcx+32]
|
|
|
|
|
00133 48 8b c8 mov rcx, rax
|
|
|
|
|
00136 e8 00 00 00 00 call xed_decode
|
|
|
|
|
|
|
|
|
|
0012b 48 8b 45 38 mov rax, QWORD PTR Link$[rbp]
|
|
|
|
|
0012f 48 83 c0 30 add rax, 48 ; 00000030H
|
|
|
|
|
00133 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp]
|
|
|
|
|
00137 44 8b 41 28 mov r8d, DWORD PTR [rcx+40]
|
|
|
|
|
0013b 48 8b 4d 38 mov rcx, QWORD PTR Link$[rbp]
|
|
|
|
|
0013f 48 8b 51 20 mov rdx, QWORD PTR [rcx+32]
|
|
|
|
|
00143 48 8b c8 mov rcx, rax
|
|
|
|
|
00146 e8 00 00 00 00 call xed_decode
|
|
|
|
|
; 11 : NcAppendToBlock(Block, Link);
|
|
|
|
|
|
|
|
|
|
; 12 : NcAppendToBlock(Block, Link);
|
|
|
|
|
|
|
|
|
|
0014b 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp]
|
|
|
|
|
0014f 48 8b 8d 80 01
|
|
|
|
|
0013b 48 8b 55 38 mov rdx, QWORD PTR Link$[rbp]
|
|
|
|
|
0013f 48 8b 8d 80 01
|
|
|
|
|
00 00 mov rcx, QWORD PTR Block$[rbp]
|
|
|
|
|
00156 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock
|
|
|
|
|
00146 e8 00 00 00 00 call ?NcAppendToBlock@@YAXPEAU_NATIVE_CODE_BLOCK@@PEAU_NATIVE_CODE_LINK@@@Z ; NcAppendToBlock
|
|
|
|
|
|
|
|
|
|
; 13 : return TRUE;
|
|
|
|
|
; 12 : return TRUE;
|
|
|
|
|
|
|
|
|
|
0015b b8 01 00 00 00 mov eax, 1
|
|
|
|
|
0014b b8 01 00 00 00 mov eax, 1
|
|
|
|
|
|
|
|
|
|
; 14 : }
|
|
|
|
|
; 13 : }
|
|
|
|
|
|
|
|
|
|
00160 8b f8 mov edi, eax
|
|
|
|
|
00162 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
|
|
|
|
00166 48 8d 15 00 00
|
|
|
|
|
00150 8b f8 mov edi, eax
|
|
|
|
|
00152 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
|
|
|
|
00156 48 8d 15 00 00
|
|
|
|
|
00 00 lea rdx, OFFSET FLAT:?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z$rtcFrameData
|
|
|
|
|
0016d e8 00 00 00 00 call _RTC_CheckStackVars
|
|
|
|
|
00172 8b c7 mov eax, edi
|
|
|
|
|
00174 48 8b 8d 50 01
|
|
|
|
|
0015d e8 00 00 00 00 call _RTC_CheckStackVars
|
|
|
|
|
00162 8b c7 mov eax, edi
|
|
|
|
|
00164 48 8b 8d 50 01
|
|
|
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
|
|
|
0017b 48 33 cd xor rcx, rbp
|
|
|
|
|
0017e e8 00 00 00 00 call __security_check_cookie
|
|
|
|
|
00183 48 8d a5 68 01
|
|
|
|
|
0016b 48 33 cd xor rcx, rbp
|
|
|
|
|
0016e e8 00 00 00 00 call __security_check_cookie
|
|
|
|
|
00173 48 8d a5 68 01
|
|
|
|
|
00 00 lea rsp, QWORD PTR [rbp+360]
|
|
|
|
|
0018a 5f pop rdi
|
|
|
|
|
0018b 5d pop rbp
|
|
|
|
|
0018c c3 ret 0
|
|
|
|
|
0017a 5f pop rdi
|
|
|
|
|
0017b 5d pop rbp
|
|
|
|
|
0017c c3 ret 0
|
|
|
|
|
?JitEmitRipRelativeMovD@@YAHPEAU_NATIVE_CODE_BLOCK@@HPEAE@Z ENDP ; JitEmitRipRelativeMovD
|
|
|
|
|
_TEXT ENDS
|
|
|
|
|
; COMDAT text$x
|
|
|
|
@ -2161,195 +2078,6 @@ $LN3:
|
|
|
|
|
wmemcpy ENDP
|
|
|
|
|
_TEXT ENDS
|
|
|
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
|
|
|
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h
|
|
|
|
|
; COMDAT printf
|
|
|
|
|
_TEXT SEGMENT
|
|
|
|
|
_Result$ = 4
|
|
|
|
|
_ArgList$ = 40
|
|
|
|
|
tv77 = 280
|
|
|
|
|
tv75 = 288
|
|
|
|
|
__$ArrayPad$ = 296
|
|
|
|
|
_Format$ = 336
|
|
|
|
|
printf PROC ; COMDAT
|
|
|
|
|
|
|
|
|
|
; 956 : {
|
|
|
|
|
|
|
|
|
|
$LN3:
|
|
|
|
|
00000 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
|
|
|
00005 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
|
|
|
0000a 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
|
|
|
0000f 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9
|
|
|
|
|
00014 55 push rbp
|
|
|
|
|
00015 57 push rdi
|
|
|
|
|
00016 48 81 ec 58 01
|
|
|
|
|
00 00 sub rsp, 344 ; 00000158H
|
|
|
|
|
0001d 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
|
|
|
00022 48 8b fc mov rdi, rsp
|
|
|
|
|
00025 b9 56 00 00 00 mov ecx, 86 ; 00000056H
|
|
|
|
|
0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
|
|
|
0002f f3 ab rep stosd
|
|
|
|
|
00031 48 8b 8c 24 78
|
|
|
|
|
01 00 00 mov rcx, QWORD PTR [rsp+376]
|
|
|
|
|
00039 48 8b 05 00 00
|
|
|
|
|
00 00 mov rax, QWORD PTR __security_cookie
|
|
|
|
|
00040 48 33 c5 xor rax, rbp
|
|
|
|
|
00043 48 89 85 28 01
|
|
|
|
|
00 00 mov QWORD PTR __$ArrayPad$[rbp], rax
|
|
|
|
|
0004a 48 8d 0d 00 00
|
|
|
|
|
00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h
|
|
|
|
|
00051 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
|
|
|
|
|
|
; 957 : int _Result;
|
|
|
|
|
; 958 : va_list _ArgList;
|
|
|
|
|
; 959 : __crt_va_start(_ArgList, _Format);
|
|
|
|
|
|
|
|
|
|
00056 48 8d 85 58 01
|
|
|
|
|
00 00 lea rax, QWORD PTR _Format$[rbp+8]
|
|
|
|
|
0005d 48 89 45 28 mov QWORD PTR _ArgList$[rbp], rax
|
|
|
|
|
|
|
|
|
|
; 960 : _Result = _vfprintf_l(stdout, _Format, NULL, _ArgList);
|
|
|
|
|
|
|
|
|
|
00061 48 8b 45 28 mov rax, QWORD PTR _ArgList$[rbp]
|
|
|
|
|
00065 48 89 85 18 01
|
|
|
|
|
00 00 mov QWORD PTR tv77[rbp], rax
|
|
|
|
|
0006c b9 01 00 00 00 mov ecx, 1
|
|
|
|
|
00071 ff 15 00 00 00
|
|
|
|
|
00 call QWORD PTR __imp___acrt_iob_func
|
|
|
|
|
00077 48 89 85 20 01
|
|
|
|
|
00 00 mov QWORD PTR tv75[rbp], rax
|
|
|
|
|
0007e 4c 8b 8d 18 01
|
|
|
|
|
00 00 mov r9, QWORD PTR tv77[rbp]
|
|
|
|
|
00085 45 33 c0 xor r8d, r8d
|
|
|
|
|
00088 48 8b 95 50 01
|
|
|
|
|
00 00 mov rdx, QWORD PTR _Format$[rbp]
|
|
|
|
|
0008f 48 8b 8d 20 01
|
|
|
|
|
00 00 mov rcx, QWORD PTR tv75[rbp]
|
|
|
|
|
00096 e8 00 00 00 00 call _vfprintf_l
|
|
|
|
|
0009b 89 45 04 mov DWORD PTR _Result$[rbp], eax
|
|
|
|
|
|
|
|
|
|
; 961 : __crt_va_end(_ArgList);
|
|
|
|
|
|
|
|
|
|
0009e 48 c7 45 28 00
|
|
|
|
|
00 00 00 mov QWORD PTR _ArgList$[rbp], 0
|
|
|
|
|
|
|
|
|
|
; 962 : return _Result;
|
|
|
|
|
|
|
|
|
|
000a6 8b 45 04 mov eax, DWORD PTR _Result$[rbp]
|
|
|
|
|
|
|
|
|
|
; 963 : }
|
|
|
|
|
|
|
|
|
|
000a9 8b f8 mov edi, eax
|
|
|
|
|
000ab 48 8d 4d e0 lea rcx, QWORD PTR [rbp-32]
|
|
|
|
|
000af 48 8d 15 00 00
|
|
|
|
|
00 00 lea rdx, OFFSET FLAT:printf$rtcFrameData
|
|
|
|
|
000b6 e8 00 00 00 00 call _RTC_CheckStackVars
|
|
|
|
|
000bb 8b c7 mov eax, edi
|
|
|
|
|
000bd 48 8b 8d 28 01
|
|
|
|
|
00 00 mov rcx, QWORD PTR __$ArrayPad$[rbp]
|
|
|
|
|
000c4 48 33 cd xor rcx, rbp
|
|
|
|
|
000c7 e8 00 00 00 00 call __security_check_cookie
|
|
|
|
|
000cc 48 8d a5 38 01
|
|
|
|
|
00 00 lea rsp, QWORD PTR [rbp+312]
|
|
|
|
|
000d3 5f pop rdi
|
|
|
|
|
000d4 5d pop rbp
|
|
|
|
|
000d5 c3 ret 0
|
|
|
|
|
printf ENDP
|
|
|
|
|
_TEXT ENDS
|
|
|
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
|
|
|
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\stdio.h
|
|
|
|
|
; COMDAT _vfprintf_l
|
|
|
|
|
_TEXT SEGMENT
|
|
|
|
|
_Stream$ = 224
|
|
|
|
|
_Format$ = 232
|
|
|
|
|
_Locale$ = 240
|
|
|
|
|
_ArgList$ = 248
|
|
|
|
|
_vfprintf_l PROC ; COMDAT
|
|
|
|
|
|
|
|
|
|
; 644 : {
|
|
|
|
|
|
|
|
|
|
$LN3:
|
|
|
|
|
00000 4c 89 4c 24 20 mov QWORD PTR [rsp+32], r9
|
|
|
|
|
00005 4c 89 44 24 18 mov QWORD PTR [rsp+24], r8
|
|
|
|
|
0000a 48 89 54 24 10 mov QWORD PTR [rsp+16], rdx
|
|
|
|
|
0000f 48 89 4c 24 08 mov QWORD PTR [rsp+8], rcx
|
|
|
|
|
00014 55 push rbp
|
|
|
|
|
00015 57 push rdi
|
|
|
|
|
00016 48 81 ec f8 00
|
|
|
|
|
00 00 sub rsp, 248 ; 000000f8H
|
|
|
|
|
0001d 48 8d 6c 24 30 lea rbp, QWORD PTR [rsp+48]
|
|
|
|
|
00022 48 8b fc mov rdi, rsp
|
|
|
|
|
00025 b9 3e 00 00 00 mov ecx, 62 ; 0000003eH
|
|
|
|
|
0002a b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
|
|
|
0002f f3 ab rep stosd
|
|
|
|
|
00031 48 8b 8c 24 18
|
|
|
|
|
01 00 00 mov rcx, QWORD PTR [rsp+280]
|
|
|
|
|
00039 48 8d 0d 00 00
|
|
|
|
|
00 00 lea rcx, OFFSET FLAT:__6DFAE8B8_stdio@h
|
|
|
|
|
00040 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
|
|
|
|
|
|
; 645 : return __stdio_common_vfprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Stream, _Format, _Locale, _ArgList);
|
|
|
|
|
|
|
|
|
|
00045 e8 00 00 00 00 call __local_stdio_printf_options
|
|
|
|
|
0004a 48 8b 8d f8 00
|
|
|
|
|
00 00 mov rcx, QWORD PTR _ArgList$[rbp]
|
|
|
|
|
00051 48 89 4c 24 20 mov QWORD PTR [rsp+32], rcx
|
|
|
|
|
00056 4c 8b 8d f0 00
|
|
|
|
|
00 00 mov r9, QWORD PTR _Locale$[rbp]
|
|
|
|
|
0005d 4c 8b 85 e8 00
|
|
|
|
|
00 00 mov r8, QWORD PTR _Format$[rbp]
|
|
|
|
|
00064 48 8b 95 e0 00
|
|
|
|
|
00 00 mov rdx, QWORD PTR _Stream$[rbp]
|
|
|
|
|
0006b 48 8b 08 mov rcx, QWORD PTR [rax]
|
|
|
|
|
0006e ff 15 00 00 00
|
|
|
|
|
00 call QWORD PTR __imp___stdio_common_vfprintf
|
|
|
|
|
|
|
|
|
|
; 646 : }
|
|
|
|
|
|
|
|
|
|
00074 48 8d a5 c8 00
|
|
|
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
|
|
|
0007b 5f pop rdi
|
|
|
|
|
0007c 5d pop rbp
|
|
|
|
|
0007d c3 ret 0
|
|
|
|
|
_vfprintf_l ENDP
|
|
|
|
|
_TEXT ENDS
|
|
|
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
|
|
|
; File C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt\corecrt_stdio_config.h
|
|
|
|
|
; COMDAT __local_stdio_printf_options
|
|
|
|
|
_TEXT SEGMENT
|
|
|
|
|
__local_stdio_printf_options PROC ; COMDAT
|
|
|
|
|
|
|
|
|
|
; 90 : {
|
|
|
|
|
|
|
|
|
|
$LN3:
|
|
|
|
|
00000 40 55 push rbp
|
|
|
|
|
00002 57 push rdi
|
|
|
|
|
00003 48 81 ec e8 00
|
|
|
|
|
00 00 sub rsp, 232 ; 000000e8H
|
|
|
|
|
0000a 48 8d 6c 24 20 lea rbp, QWORD PTR [rsp+32]
|
|
|
|
|
0000f 48 8b fc mov rdi, rsp
|
|
|
|
|
00012 b9 3a 00 00 00 mov ecx, 58 ; 0000003aH
|
|
|
|
|
00017 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH
|
|
|
|
|
0001c f3 ab rep stosd
|
|
|
|
|
0001e 48 8d 0d 00 00
|
|
|
|
|
00 00 lea rcx, OFFSET FLAT:__A2143F22_corecrt_stdio_config@h
|
|
|
|
|
00025 e8 00 00 00 00 call __CheckForDebuggerJustMyCode
|
|
|
|
|
|
|
|
|
|
; 91 : static unsigned __int64 _OptionsStorage;
|
|
|
|
|
; 92 : return &_OptionsStorage;
|
|
|
|
|
|
|
|
|
|
0002a 48 8d 05 00 00
|
|
|
|
|
00 00 lea rax, OFFSET FLAT:?_OptionsStorage@?1??__local_stdio_printf_options@@9@4_KA ; `__local_stdio_printf_options'::`2'::_OptionsStorage
|
|
|
|
|
|
|
|
|
|
; 93 : }
|
|
|
|
|
|
|
|
|
|
00031 48 8d a5 c8 00
|
|
|
|
|
00 00 lea rsp, QWORD PTR [rbp+200]
|
|
|
|
|
00038 5f pop rdi
|
|
|
|
|
00039 5d pop rbp
|
|
|
|
|
0003a c3 ret 0
|
|
|
|
|
__local_stdio_printf_options ENDP
|
|
|
|
|
_TEXT ENDS
|
|
|
|
|
; Function compile flags: /Odtp /RTCsu /ZI
|
|
|
|
|
; File C:\$Fanta\code-virtualizer\CodeVirtualizer\RipMovInst.cpp
|
|
|
|
|
; COMDAT ?__empty_global_delete@@YAXPEAX_KW4align_val_t@std@@@Z
|
|
|
|
|
_TEXT SEGMENT
|
|
|
|
|