Skip to content

Commit eb21484

Browse files
committed
Update NTAssassin
1 parent eddc538 commit eb21484

32 files changed

Lines changed: 249 additions & 108 deletions
0 Bytes
Binary file not shown.
-512 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

Source/AlleyWind/3rdParty/include/NTAssassin/NTACtl.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,10 @@ NTA_API VOID NTAPI Ctl_InitComboBoxEx(HWND ComboBox, PCTL_COMBOBOXCTL_ITEM Items
117117
* @param[in] Param User defined value passed to the callback
118118
* @return Returns handle to the last enumerated item if the callback stops the enumeration, or NULL if enumeration finished successfully
119119
*/
120-
HTREEITEM NTAPI Ctl_EnumTreeViewItems(HWND TreeView, BOOL BFS, CTL_TREEVIEWITEMENUMPROC TreeItemEnumProc, LPARAM Param);
120+
NTA_API HTREEITEM NTAPI Ctl_EnumTreeViewItems(HWND TreeView, BOOL BFS, CTL_TREEVIEWITEMENUMPROC TreeItemEnumProc, LPARAM Param);
121121

122122
/**
123123
* @see "CB_SETCURSEL"
124124
* @note This function will notify parent window by sending "WM_COMMAND"
125125
*/
126-
LRESULT NTAPI Ctl_ComboBoxSetSelect(HWND ComboBox, INT ItemIndex);
126+
NTA_API LRESULT NTAPI Ctl_ComboBoxSetSelect(HWND ComboBox, INT ItemIndex);

Source/AlleyWind/3rdParty/include/NTAssassin/NTAFile.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ typedef struct _FILE_MAP {
1818
*/
1919
NTA_API NTSTATUS NTAPI File_Create(PHANDLE FileHandle, PWSTR FileName, HANDLE RootDirectory, ACCESS_MASK DesiredAccess, ULONG ShareAccess, ULONG CreateDisposition, ULONG CreateOptions);
2020

21+
/**
22+
* @brief Read a file
23+
* @return Returns NTSTATUS
24+
* @see "ReadFile"
25+
*/
26+
NTA_API NTSTATUS NTAPI File_Read(HANDLE FileHandle, PVOID Buffer, ULONG Length, PLARGE_INTEGER ByteOffset, PULONG BytesRead);
27+
2128
/**
2229
* @brief Verifies that a path is a valid directory
2330
* @param[in] FilePath Path to be Verified

Source/AlleyWind/3rdParty/include/NTAssassin/NTAHijack.h

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,11 @@ typedef struct _HIJACK_INJECTTHREAD {
2525
DWORD ExceptionCode;
2626
} HIJACK_INJECTTHREAD, * PHIJACK_INJECTTHREAD;
2727

28-
#define HCPC_X86_STDCALL 0
29-
#define HCPC_X86_FASTCALL 0x1
30-
#define HCPC_X86_CDECL 0x2
31-
#define HCPC_X86_VECTORCALL 0x4
32-
#define HCPC_X64_MS 0
33-
#define HCPC_X64_GCC 0x100
34-
3528
#pragma pack(push)
3629
#pragma pack(4)
3730
typedef struct _HIJACK_CALLPROCHEADER {
3831
QWORD Procedure;
39-
DWORD CallConvention;
32+
CALLCONV CallConvention;
4033
QWORD RetValue;
4134
DWORD LastError;
4235
NTSTATUS LastStatus;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#pragma once
2+
3+
#include "NTAssassin.h"
4+
5+
NTA_API BOOL NTAPI Hook_Begin();
6+
NTA_API BOOL NTAPI Hook_Set(BOOL Enable, PVOID* Address, PVOID HookAddress);
7+
NTA_API BOOL NTAPI Hook_Attach(PVOID* Address, PVOID HookAddress);
8+
NTA_API BOOL NTAPI Hook_Detach(PVOID* Address, PVOID HookAddress);
9+
NTA_API BOOL NTAPI Hook_Commit();

Source/AlleyWind/3rdParty/include/NTAssassin/NTAMath.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,6 @@ NTA_API ULONG NTAPI Math_RangedRandom(ULONG Min, ULONG Max);
2929
/**
3030
* @brief Checks the number is a power of 2
3131
*/
32-
#define Math_IsPowerOf2(n) ((n != 0) && ((n & (n - 1)) == 0))
32+
#define Math_IsPowerOf2(n) ((n != 0) && ((n & (n - 1)) == 0))
33+
34+
#define Math_Abs(v1, v2) ((v1) > (v2) ? (v1) - (v2) : (v2) - (v1))

Source/AlleyWind/3rdParty/include/NTAssassin/NTANT.h

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,15 @@
1111
*/
1212
#if defined(_M_AMD64)
1313
#define NT_GetTEBMember(m) ((RTL_FIELD_SIZE(TEB, m) == sizeof(DWORD64) ? __readgsqword(FIELD_OFFSET(TEB, m)) : (RTL_FIELD_SIZE(TEB, m) == sizeof(DWORD) ? __readgsdword(FIELD_OFFSET(TEB, m)) : (RTL_FIELD_SIZE(TEB, m) == sizeof(WORD) ? __readgsword(FIELD_OFFSET(TEB, m)) : __readgsbyte(FIELD_OFFSET(TEB, m))))))
14+
#define NT_GetTEBMemberQWORD(m) __readgsqword(FIELD_OFFSET(TEB, m))
15+
#define NT_GetTEBMemberDWORD(m) __readgsdword(FIELD_OFFSET(TEB, m))
16+
#define NT_GetTEBMemberWORD(m) __readgsword(FIELD_OFFSET(TEB, m))
17+
#define NT_GetTEBMemberBYTE(m) __readgsbyte(FIELD_OFFSET(TEB, m))
1418
#elif defined(_M_IX86)
1519
#define NT_GetTEBMember(m) ((RTL_FIELD_SIZE(TEB, m) == sizeof(DWORD) ? __readfsdword(FIELD_OFFSET(TEB, m)) : (RTL_FIELD_SIZE(TEB, m) == sizeof(WORD) ? __readfsword(FIELD_OFFSET(TEB, m)) : __readfsbyte(FIELD_OFFSET(TEB, m)))))
20+
#define NT_GetTEBMemberDWORD(m) __readfsdword(FIELD_OFFSET(TEB, m))
21+
#define NT_GetTEBMemberWORD(m) __readfsword(FIELD_OFFSET(TEB, m))
22+
#define NT_GetTEBMemberBYTE(m) __readfsbyte(FIELD_OFFSET(TEB, m))
1623
#endif
1724

1825
/**
@@ -55,16 +62,18 @@
5562
#define NT_GetKUSD() ((CONST PKUSER_SHARED_DATA)MM_SHARED_USER_DATA_VA)
5663

5764
// Last Win32 Error value
58-
#define NT_ClearLastError() NT_SetTEBMember(LastErrorValue, ERROR_SUCCESS)
59-
#define NT_GetLastError() NT_GetTEBMember(LastErrorValue)
65+
#define NT_ClearLastError() NT_SetTEBMemberDWORD(LastErrorValue, ERROR_SUCCESS)
66+
#define NT_GetLastError() NT_GetTEBMemberDWORD(LastErrorValue)
6067
#define NT_SetLastError(dwError) NT_SetTEBMemberDWORD(LastErrorValue, dwError)
61-
#define NT_LastErrorSucceed() (NT_GetTEBMember(LastErrorValue) == ERROR_SUCCESS)
68+
#define NT_LastErrorSucceed() (NT_GetTEBMemberDWORD(LastErrorValue) == ERROR_SUCCESS)
6269

6370
// Last NT Status value
64-
#define NT_ClearLastStatus() NT_SetTEBMember(LastStatusValue, STATUS_SUCCESS)
65-
#define NT_GetLastStatus() NT_GetTEBMember(LastStatusValue)
71+
#define NT_ClearLastStatus() NT_SetTEBMemberDWORD(LastStatusValue, STATUS_SUCCESS)
72+
#define NT_GetLastStatus() NT_GetTEBMemberDWORD(LastStatusValue)
6673
#define NT_SetLastStatus(lStatus) NT_SetTEBMemberDWORD(LastStatusValue, lStatus)
67-
#define NT_LastStatusSucceed() (NT_GetTEBMember(LastStatusValue) == ERROR_SUCCESS)
74+
#define NT_LastStatusSucceed() (NT_GetTEBMemberDWORD(LastStatusValue) == STATUS_SUCCESS)
75+
76+
NTA_API DWORD NTAPI NT_SetLastNTError(NTSTATUS Status);
6877

6978
/**
7079
* @brief Initializes OBJECT_ATTRIBUTES structure

Source/AlleyWind/3rdParty/include/NTAssassin/NTAPE.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,20 @@ typedef struct _PE_STRUCT {
1414
};
1515
PIMAGE_SECTION_HEADER SectionHeader;
1616
PVOID OverlayData;
17-
} PE_STRUCT, * PPE_STRUCT;
17+
} PE_STRUCT, *PPE_STRUCT;
1818

1919
NTA_API BOOL NTAPI PE_Resolve(PPE_STRUCT PEStruct, PVOID Image, BOOL OfflineMap);
2020

2121
NTA_API PIMAGE_DATA_DIRECTORY NTAPI PE_GetDataDirectory(PPE_STRUCT PEStruct, UINT Index);
2222

2323
NTA_API PIMAGE_SECTION_HEADER NTAPI PE_GetSectionByRVA(PPE_STRUCT PEStruct, DWORD RVA);
2424

25-
NTA_API PVOID NTAPI PE_RVA2Ptr(PPE_STRUCT PEStruct, DWORD RVA);
25+
NTA_API PIMAGE_SECTION_HEADER NTAPI PE_GetSectionByOffset(PPE_STRUCT PEStruct, DWORD Offset);
26+
27+
NTA_API PVOID NTAPI PE_RVA2Ptr(PPE_STRUCT PEStruct, DWORD RVA);
28+
29+
NTA_API BOOL NTAPI PE_Ptr2RVA(PPE_STRUCT PEStruct, PVOID Ptr, PDWORD RVA);
30+
31+
NTA_API BOOL NTAPI PE_Ptr2Offset(PPE_STRUCT PEStruct, PVOID Ptr, PDWORD Offset);
32+
33+
NTA_API BOOL NTAPI PE_GetExportedName(PPE_STRUCT PEStruct, PVOID Function, PZPCSTR Name);

0 commit comments

Comments
 (0)