Jump to content

Willkommen Gast

Navigation

Links

Als Gast hast du nur eingeschränkten Zugriff!


Sign In 

Create Account

Du bist nicht angemeldet und hast somit nur einen sehr eingeschränkten Zugriff auf die Features unserer Community.
Um vollen Zugriff zu erlangen musst du dir einen Account erstellen. Der Vorgang sollte nicht länger als 1 Minute dauern.

  • Antworte auf Themen oder erstelle deine eigenen.
  • Schalte dir alle Downloads mit Highspeed & ohne Wartezeit frei.
  • Erhalte Zugriff auf alle Bereiche und entdecke interessante Inhalte.
  • Tausche dich mich anderen Usern in der Shoutbox oder via PN aus.
 

   

Photo

Direkte Syscalls

- - - - -

  • Please log in to reply
No replies to this topic

#1
gr33d

gr33d

    Pentester

  • Premium Member
  • Likes
    169
  • 130 posts
  • 474 Bedankt
  • Android [root]
  • Windows, Linux

Hi Leute

direkte Syscalls werden ja oft dazu verwendet um Hooks zu umgehen. Habe mal einen Beispiel Code erstellt:

Mein ASM Code für den Syscall sieht so aus (NASM):

global PrivSyscall
global sysno
section .code
	PrivSyscall:
		mov r10, rcx
		mov eax, [sysno]
		syscall
		ret
section .data
	sysno: dw 0

Eigentlich habe ich das nur aus der Ntdll kopiert.

 

Aufgerufen wird das dann in C++ folgendermaßen:

extern "C" NTSTATUS NTAPI PrivSyscall(...);
extern "C" DWORD sysno;

int main(){
	sysno = GetSyscallNumber("NtDeleteKey"); //GetSyscall extrahiert die Syscall Nummer aus der ntdll
	int status = PrivSyscall(hkey);
	sysno = GetSyscallNumber("NtFlushKey");
	PrivSyscall(hkey);
}

Fürs Kompilieren müsst ihr x64 wählen, bei nasm "nasm -f win64 filename.asm

Die obj File dann im VisualStudio einfach einfügen.

Ich habe leider keinen einfacheren Weg gefunden als die Syscall Nummer per globaler Variable zu übergeben. Falls euch was besseres einfällt sagt es mir bitte :D

 

Für die GetSyscallNumber Funktion könnt ihr hier schauen:

Please Login HERE or Register HERE to see this link!

Die Funktion musste ich allerdings ein wenig modifizieren - ob das an Windows 10 liegt weiß ich nicht (Schaut euch einfach die Ntdll genauer an in IDA). Vielleicht hat Microsoft da was geändert.

 

Ich hoffe ihr könnt was mit dem Code anfangen.


Edited by gr33d, 28 October 2017 - 23:44 Uhr.

  • DeepWater likes this



  Topic Forum Started By Stats Last Post Info

Also tagged with one or more of these keywords: C++


This topic has been visited by 49 user(s)


    13asim37, 3eyes, 4URovu4, BloodSw0rd, Bot4ng, Brokolie, Cyber Tjak, DeepWater, Exynos, FatalityMods, fl4shx, fothermucker, Fox, Framerater, G4miT, gr33d, hacked, hanshenkelman, holz96, johnjones17, JohnR, Juri, kiwitone, loziov1, Machine, Memoryleak0, mesagio, MrZitrus, MrZitrus, n1nja, netSecMushroom, nibble nibble, o0o, PadX18, pi^2, Psykoon303, rsneumann, s3ff, SecurityFlaw, smc2014, sup3ria, Terrafaux, tittytit, TuttiFrutti, ufiowhe, VerZus, webpanel0815, Woodenhero, Zero-X
Die besten Hacking Tools zum downloaden : Released, Leaked, Cracked. Größte deutschsprachige Hacker Sammlung.