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]


Anmelden zum Antworten