Assemblercode in Shellcode umwandeln
-
winexec meinte wohl Hex statt Hexadezimal;)
Eine hexadezimale Zahl ist eine Zahl, die auf der Basis 16 existiert. Dezimalzahlen haben die Basis 10.
-
Hallo.
#include <iostream> class CShellCode { public: unsigned char* pcShellCode; unsigned int iSize; }; void Trundles1337ASMCode(CShellCode* pShellCode) { __asm { mov edx, ShellcodeBegin mov eax, pShellCode mov [eax], edx mov edx, ShellcodeEnd sub edx, ShellcodeBegin mov [eax+4], edx } return; __asm { ShellcodeBegin: int 03 ShellcodeEnd: } } int main() { CShellCode Trundles1337ShellCode; Trundles1337ASMCode(&Trundles1337ShellCode); std::cout << static_cast<void*>(Trundles1337ShellCode.pcShellCode) << " " << Trundles1337ShellCode.iSize << std::endl << ((Trundles1337ShellCode.pcShellCode[0]==0xCC && Trundles1337ShellCode.iSize==1) ? "Alles OK" : "Nicht gut. Trundle hat Mist gebaut. :\\") << std::endl; //Jetzt den Code in eine Datei speichern und fertig ist dein Shellcode. return 0; }
[EDIT]@Threadstarter: Dein Shellcode hätte' außerhalb des eigenen, mit VC compilten Prozess, eh nicht funktioniert, da dein Code den VC Stackchecker sowie die Sleep-Funktion über die IDT call't:[/EDIT]
[EDIT2-7]rechtschreibung :[/EDIT2]