Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 23:00

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Frage] ExitProcess

Discussion on [Frage] ExitProcess within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 10
Join Date: Apr 2009
Posts: 1,165
Received Thanks: 6,024
[Frage] ExitProcess

Hi,
ich wollte mal fragen ob es in irgendeiner Art und Weise möglich ist die Funktion ExitProcess in kernel32.dll zu überspringen. Nur leider bekomme ich das iwie nicht hin. Hier ist der Code für eine Konsole (eigentlich programmiere ich eine DLL, aber das testen dauert dort immer zu lange). Vielleicht kann mir ja jemand helfen. Der Sinn darin besteht ein Spiel offen zu lassen, obwohl ein Hackshield ExitProcess gecallt hat.

PHP Code:
#include <iostream>
#include <stdio.h>
#include <windows.h>

void *DetourFunc(BYTE *src, const BYTE *dst, const int len);
int __stdcall _hkexit(int Code);
typedef int(__stdcallexit_t)(int);
exit_t pexit;

using namespace std;

int __stdcall hkexit(int Code)
{
    
MessageBox(0,"Exit wurde gecallt","",MB_OK);
    return 
Code;
}

int main(){
    
DWORD ex = (DWORD)GetProcAddress(GetModuleHandle("kernel32.dll"),"ExitProcess");
    
pexit = (exit_tDetourFunc((PBYTE)ex,(PBYTE)hkexit,5);
    
    exit(
0);
    
cout << "Exit wurde übersprungen" << endl;
    
cin.get();
}

void *DetourFunc(BYTE *src, const BYTE *dst, const int len)
{
    
BYTE *jmp = (BYTE*)malloc(len+5);
    
DWORD dwback;
    
VirtualProtect(srclenPAGE_READWRITE, &dwback);
    
memcpy(jmpsrclen); jmp += len;
    
jmp[0] = 0xE9;
    *(
DWORD*)(jmp+1) = (DWORD)(src+len jmp) - 5;
    
src[0] = 0xE9;
    *(
DWORD*)(src+1) = (DWORD)(dst src) - 5;
    
VirtualProtect(srclendwback, &dwback);
    return (
jmp-len);

expo_botter is offline  
Old 09/25/2010, 19:56   #2
 
mydoom's Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 322
Received Thanks: 98
Bist du da noch irgendwie weitergekommen? Das Thema interessiert mich ehrlich gesagt auch.
mydoom is offline  
Old 09/25/2010, 20:07   #3
 
elite*gold: 115
Join Date: Oct 2007
Posts: 9,390
Received Thanks: 12,345
Wenn du einfach nur die ersten 3 Bytes durch 0xC20400 (ret 4) ersetzst müsste ExitProcess auch übersprungen werden.
ms​ is offline  
Old 09/27/2010, 17:45   #4
 
elite*gold: 577
Join Date: Oct 2009
Posts: 665
Received Thanks: 3,502
Quote:
Originally Posted by expo_botter View Post
Hi,
ich wollte mal fragen ob es in irgendeiner Art und Weise möglich ist die Funktion ExitProcess in kernel32.dll zu überspringen. Nur leider bekomme ich das iwie nicht hin. Hier ist der Code für eine Konsole (eigentlich programmiere ich eine DLL, aber das testen dauert dort immer zu lange). Vielleicht kann mir ja jemand helfen. Der Sinn darin besteht ein Spiel offen zu lassen, obwohl ein Hackshield ExitProcess gecallt hat.
Sicher, dass das HackShield auch ExitProcess() aufruft?
Gibt ja noch die Alternativen: TerminateThread(), NtTerminateProcess(), LdrShutdownProcess(), NtTerminateThread().

Kind Regards Tim
tim66613 is offline  
Reply




All times are GMT +1. The time now is 23:02.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.