Zum Inhalt wechseln

Als Gast hast du nur eingeschränkten Zugriff!


Anmelden 

Benutzerkonto erstellen

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.
 

   

Foto

Direkte Syscalls

- - - - -

  • Bitte melde dich an um zu Antworten
Keine Antworten in diesem Thema

#1
gr33d

gr33d

    Pentester

  • Premium Member
  • Likes
    169
  • 130 Beiträge
  • 471 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.


Bearbeitet von gr33d, 28 October 2017 - 23:44 Uhr.

  • DeepWater gefällt das



  Thema Forum Themenstarter Statistik Letzter Beitrag

Auch mit einem oder mehreren dieser Stichwörter versehen: C++

Besucher die dieses Thema lesen:

Mitglieder: , Gäste: , unsichtbare Mitglieder:


This topic has been visited by 45 user(s)


    13asim37, 3eyes, BloodSw0rd, Bot4ng, Brokolie, Cyber Tjak, DeepWater, Exynos, FatalityMods, fl4shx, fothermucker, Fox, Framerater, gr33d, hacked, hanshenkelman, holz96, JohnR, Juri, kiwitone, 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.