1. Forum
    1. Unerledigte Themen
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Blog
    1. Artikel
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Forum
  • Blog-Artikel
  • Seiten
  • Erweiterte Suche
  1. StageTwo - Deine Wohlfühloase
  2. Mitglieder
  3. butleR

Beiträge von butleR

  • Plugins Visual 2012

    • butleR
    • 30. Januar 2013 um 16:49

    Visual Studio 2012 Premium mit Visual Assist X. Ohne Visual Assist X könnte ich nicht mehr programmieren (zumindest nicht in der IDE).

  • League of Legends ingame Chat

    • butleR
    • 1. Januar 2013 um 20:21

    Hey,
    falls noch einer dran arbeitet:

    PHP
    //bUTL9R ChatHook, credits to florian0 from stagetwo
    
    
    //=====================================================
    //			Includes
    //=====================================================
    #include "Manager.h"
    
    
    void CallChat(char* Text);
    
    
    //==================================================================
    //				Important Variables
    //==================================================================
    DWORD dwEAX = 0; //EAX register wich is not static and needs to be retrived by GetEAX, otherwhise SendMessage will crash the game!
    DWORD dwChatAddress; //Where to "hook" the chat function with our GetEAX function
    DWORD dwCallOrigSendMessage = 0; //Address to call the original SendMessage from the game itself
    DWORD dwJumpBack;
    
    
    
    
    void CreateConsole()
    {
    	AllocConsole();
    	freopen( "CONOUT$", "wb", stdout );
    }
    
    
    void CheckHotkeys()
    {
    	while (true)
    	{
    		Sleep(10);
    		if (GetAsyncKeyState(VK_NUMPAD1) &1)
    		{
    			CallChat("easy");
    		}
    		if (GetAsyncKeyState(VK_NUMPAD2) &1)
    		{
    			printf("Sending GG\n");
    			CallChat("/all GG!");
    			if (dwEAX == 0 || dwCallOrigSendMessage == 0)
    			{
    				return;
    			}
    			CallChat("/all GG!");
    			CallChat("/all GG!");
    			CallChat("/all GG!");
    			CallChat("/all GG!");
    			CallChat("/all GG!");
    			CallChat("/all GG!");
    			CallChat("/all GG!");
    			CallChat("/all GG!");
    		}
    		if (GetAsyncKeyState(VK_NUMPAD3) &1)
    		{
    			printf("call sendChat with troll\n");
    			CallChat("/all I molest rubber chicken!");
    		}
    		if (GetAsyncKeyState(VK_NUMPAD4) &1)
    		{
    			CallChat("/all B1tch where you going?!");
    		}
    		if (GetAsyncKeyState(VK_NUMPAD5) &1)
    		{
    			CallChat("/all Not even close baby!");
    		}
    		if (GetAsyncKeyState(VK_NUMPAD6) &1)
    		{
    			CallChat("/all My favorite poker card? The ACE!");
    		}
    		if (GetAsyncKeyState(VK_NUMPAD7) &1)
    		{
    			CallChat("/all Nope, not on my watch!");
    		}
    	}
    
    
    }
    
    
    //==================================================================
    //				CallChat
    //Our CallChat function, wich calls the original CallChat function with our text parameter
    //==================================================================
    void CallChat(char* Text)
    {
    	//http://www.stagetwo.eu/index.php?page=Thread&threadID=156383&pageNo=3
    	// call to SendMessage: 0045F270 
    
    
    	if (dwEAX == 0 || dwCallOrigSendMessage == 0)
    	{
    		MessageBox(NULL, "You dumbfuck want me to crash?!", "Error", MB_OK);
    		return;
    	}
    	//you need to use the chat once manually (write hello or something), since we need 2 addresses
    
    
    	__asm
    	{
    		mov eax, dwEAX
    		mov edx, dwCallOrigSendMessage
    		push Text
    		mov ecx, eax
    		call edx
    	}
    }
    
    
    //==================================================================
    //				GetEAX
    //==================================================================
    __declspec(naked) void GetEAX()
    {
    	__asm 
    	{
    		mov dwEAX, eax
    		mov dwCallOrigSendMessage, edx
    		push ecx
    		mov ecx, eax
    		call edx
    	}
    	//We got eax, ad edx [address for original sendmessage function], so we restore the original code to stay as undetected as possible
    	//orig code: 51 8B C8 FF D2                
    	FrameWork->WriteMemory((void *)dwChatAddress, (void *)"\x51\x8B\xC8\xFF\xD2", 5);
    
    
    	//jump back to original code
    	__asm
    	{
    		jmp [dwJumpBack]
    	}
    
    
    }
    
    
    //==================================================================
    //				InitializeChatHook
    //==================================================================
    void InitializeChatHook()
    {
    	CreateConsole();
    	//Chat address is inside League of Legends.exe. Modulebase is always 0x00400000
    	//LolClient ModuleSize: 0B158000
    	printf("Searching chat address!\n");
    	dwChatAddress = FrameWork->FindPattern(0x00400000, 0x0B158000, (PBYTE)"\x51\x8B\xC8\xFF\xD2\xB0\x01", "xxxxxxx");
    	if (dwChatAddress != 0)
    	{
    		printf("Found chat address: %x\n", dwChatAddress);
    	}
    	else
    	{
    		printf("Did not find chat address!\n");
    		return;
    	}
    
    
    	FrameWork->MakeJMP((PBYTE)dwChatAddress, (DWORD)GetEAX, 5);
    	dwJumpBack = dwChatAddress + 5; //Important, original game code continues there 
    	printf("Detoured function, ready to go.\n");
    	CheckHotkeys();
    	return;
    }
    Alles anzeigen


    Sollte nach Updates weiterhin funktionieren.

  • 6. Reversing Contest

    • butleR
    • 21. Februar 2012 um 22:15

    Habs bis zum letzten Level geschafft, doch hab keine Lust/Zeit mich mit Socketprogrammierung zu beschäftigen. Bin auch relativ enttäuscht, dass das letzte Level so aussieht. Wäre mir lieber gewesen mal ne VM zu reversen oder Code der obfuscated ist. Naja, so werde ich den ganzen Contest nie schaffen. War trotzdem super unterhaltsam und nen großes Lob geht an die Coder der CrackMe's!

  • Pastebin Restart

    • butleR
    • 28. März 2011 um 20:15
    Zitat von trigg3r
    • Verwende deine Programmiersprache dank über 200 unterstützten Sprachen (momentan nur die Wichtigsten freigeschaltet)

    Lies! Kein ASM Codehighlighting ;x

  1. Datenschutzerklärung
  2. Impressum