[Release] Codex Anticheat v3 modified

Status
Not open for further replies.

dota-sdso

Well-Known Member
Joined
Apr 30, 2014
Messages
590
Reaction score
822
Здравейте,
Този античийт не е нещо ново има го в друг подобен форум от доста години, но създателят му беше активен последните месеци и направи няколко бързи нови версии с доста промени от първата релийсната още 2011 година.

До колко е полезен аз няма да коментирам, защото като цяло мисля, че тези които се занимават с тези неща ще намерят нещо интересно в кода, което могат да използват в свои проекти (макар, че този вид антихакове общо взето много си проличат и са писани по един и същи начин). Най-малкото е написан доста разбираемо с обяснения дори за ламери като мен. :p

Аз съм добавил 580 нови дъмпа, Класове, Уиндоу, Длл-и и други, като самият код не е пипан с малки изключения на ключови места, които на мен лично са ми правили проблеми.

Има много информация в интернет дори девелопера му е направил серия от клипове как да се компилира и инсталира: YouTube

И все пак, ако някои не може да се справи и има нужда от помощ аз бих могъл да помогна просто да пише тук или на лично(dance)
Доста съм го тествал(ползвал) и ако някои иска да го ползва в този му вид мога да помогна с евентуалните проблеми, които може да срещне.

Кредити за Codex или VertexBrasil
Линк за изтегляне
MEGA
 
Last edited:
  • Like
Reactions: ivowe3 and Wikko0
Аз го постнах в секция " Development" защото е сурс кода и помислих, че не е редно да е в релийс при положение, че в този вид не е годен за ползване, но вие сте го преместили. Нищо това няма значение, аз съм го компилирал така или иначе в папка "Debug" (Codex.dll), но няма никакви настройки, направих го само за тест преди да го архивирам.
 
  • Like
Reactions: Wikko0
Здрасти, искам да попитам как да спра килването на процесите в main.exe с тази защита?
Ако може някаква насока ;]
 
Ти разгледа ли сурса за да знам как да ти отговоря или просто питаш?
Девелопера доста добре е коментирал в самите файлове кое за какво и как се ползва не е необходимо да разбираш от C дори.

И все пак ще си направя труда да отговоря. Каунтването на процесите се конфигурира от 2 места едното е от START.cpp, а другото е от Detecta_AntiKill.cpp

В START.cpp (който ти е изходният, конфигурационен файл) имаш следния код:

PHP:
/*  Detector ANTI-KILL, this one need some extra configuration. So, lets do it!
    1 - Inside: Liga_Desliga.cpp file > {carrega.Nome_do_Main = "mxmain.exe";}  << Need be exact as your mxmain.exe name, becouse detector are case-sensitive.
	2 - Turn ON: Detecta_Kill, turn OFF: Dont_kill_yet. > Start mxmain.exe and use: [ThreadCounter.exe, Process Explorer or Process Hacker] to get [mxmain.exe] [carrega.Minimum_thread] number.
	3 - Configure [carrega.Minimum_thread], turn ON [carrega.Dont_kill_yet] and try to kill some Threads.
	4 - Remember or consider [Minimizer.dll] attached... */
	carrega.Detecta_Inject_by_Thread	= 1; // On/Off Detect dll inject by extra thread count ( Need configure anti-kill thread count to this works too ) 
	carrega.DInject_Thread_occours      = 10000; //Occours every X miliseconds

	carrega.Detecta_Kill_by_Thread      = 1;  // On/Off Detect active codex.dll tread count, this prevent desactivate dll's antihack-threads whit process explorer, process hacker etc...  ATTENTION! This feature will sleep 5 MINUTES before start, time to thread count stablizes.
	carrega.Dont_kill_yet               = 1;  // ON/OFF 1 = Turn ON Anti-kill splash (ExitProcess) / 0 = Turn OFF Anti-kill splash (ExitProcess) This allow you count threads without get an Exitprocess();
	carrega.Minimum_thread			    = 37; // Minimum thread running whitout splash.

Където много добре е обяснено коя стойност за какво е, аз просто не знам кое не ти е ясно за да ти помогна от тук...

Другото място, което трябва да си конфигурираш според нуждите, но не е задължително е Detecta_AntiKill.cpp

PHP:
// Video tutorial: http://www.youtube.com/user/vertexbrasil
#include "StdAfx.h"
#include "BanServer.h"

#define Exe_Name PROCESSENTRY32 *pe32 = GetProcessInfo (carrega.Nome_do_Main) 
#define Threads (pe32->cntThreads)
#define Ativa_DC (carrega.Dont_kill_yet)    
#define NumeroMinimo (carrega.Minimum_thread) 


void Msg_K2_Br(){
	MessageBoxA(NULL,"IT-Scan\n\nA integridade do processo foi corrompida!", carrega.Nome_das_Janelas, MB_SERVICE_NOTIFICATION | MB_ICONWARNING);
	}
void Msg_K2_En(){
	MessageBoxA(NULL, "Thread Scan\n\nThread attack and the game will be closed!", carrega.Nome_das_Janelas, MB_SERVICE_NOTIFICATION | MB_ICONWARNING);
	}
void Msg_K3_Page(){
	ShellExecute(NULL, "open", carrega.HackSplash_WebSite, NULL, NULL, SW_SHOWNORMAL);
	}

void DC2(){
	 if (carrega.Log_Txt_Hack == 1){
ofstream out("GameGuard/Log.txt", ios::app);
out << "\n !и Warning:  ", out << "Thread attack and the game will be closed!";
out.close();
}
	if (carrega.Message_Warning_En == 1){
    CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(Msg_K2_En),NULL,0,0);
	Sleep(5000); 
	ExitProcess(0);	
}
    if (carrega.Message_Warning_En == 2){
	CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(Msg_K2_Br),NULL,0,0);
	Sleep(5000); 
	ExitProcess(0);	
	}
	if (carrega.Message_Warning_En == 3){
	CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(Msg_K3_Page),NULL,0,0);
	Sleep(5000); 	
	ExitProcess(0);	
	}
	if (carrega.Message_Warning_En == 0){
	ExitProcess(0);
	}
	else
	ExitProcess(0);
}



void Msg_K_Br(){
	MessageBoxA(NULL,"AK-Scan\n\nA integridade do processo foi corrompida!", carrega.Nome_das_Janelas, MB_SERVICE_NOTIFICATION | MB_ICONWARNING);
	}
void Msg_K_En(){
	MessageBoxA(NULL,"AK-Scan\n\nFile Integrity violated!", carrega.Nome_das_Janelas, MB_SERVICE_NOTIFICATION | MB_ICONWARNING);
	}
void Msg_K_Page(){
	Sleep (4000);
    ShellExecute(NULL, "open", carrega.HackSplash_WebSite, NULL, NULL, SW_SHOWNORMAL);
	}

void DC(){
	 if (carrega.Log_Txt_Hack == 1){
ofstream out("GameGuard/Log.txt", ios::app);
out << "\n AK-Scan:  ", out <<   "Thread attack!";
out.close();
}	
	if (carrega.Log_Txt_Hack == 2){	
	ofstream out("Up.dll", ios::app);
out << "\n AK-Scan:  ", out <<   "Thread attack!";
out.close();
}
    if (carrega.Message_Warning_En == 1){
    CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(Msg_K_En),NULL,0,0);
	Sleep(5000); 
	ExitProcess(0);	
}
    if (carrega.Message_Warning_En == 2){
	CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(Msg_K_Br),NULL,0,0);
	Sleep(5000); 
	ExitProcess(0);	
	}
	if (carrega.Message_Warning_En == 3){
	CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(Msg_K_Page),NULL,0,0);
	Sleep(5000); 
	ExitProcess(0);	
	}
	if (carrega.Message_Warning_En == 0){
	ExitProcess(0);
	}
	else
	ExitProcess(0);
}

PROCESSENTRY32 *GetProcessInfo(char *szExeFile)
{
	PROCESSENTRY32  *pe32 = new PROCESSENTRY32 
	[sizeof(PROCESSENTRY32)];
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if(hSnapshot == INVALID_HANDLE_VALUE)
    return NULL;	 
    if(!Process32First(hSnapshot, pe32)) 
	{
        CloseHandle(hSnapshot);
        return NULL;        
    }
    while(Process32Next( hSnapshot, pe32 ))
	
	{
		if( strcmp(szExeFile, pe32->szExeFile) == 0) 
		{		
			CloseHandle(hSnapshot);
			return pe32;
		}
    } 
	return NULL;
	}


//A 1///////////////////////////////////////////////////////////////////
void k1(){
	Exe_Name;
	if ((Ativa_DC == 1) && (Threads < NumeroMinimo)){
	DC();
	}
}

	void A1(){	
	Sleep (15000);
    again:
	Sleep (2000);
    k1();
    goto again;
	}

void AntiKill1(){
	CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(A1),NULL,0,0);
}
//A 2///////////////////////////////////////////////////////////////////
void k2(){	             
	Exe_Name;	
	if ((Ativa_DC == 1) && (Threads < NumeroMinimo)){
	DC();
	}
}

	void A2(){	  
	Sleep (17000);
    again:
	Sleep (2200);
    k2();
    goto again;
	}
void AntiKill2(){
	CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(A2),NULL,0,0);
}
//A 3///////////////////////////////////////////////////////////////////
void k3(){	             
	Exe_Name;	
	if ((Ativa_DC == 1) && (Threads < NumeroMinimo)){
	DC();
	}
}

	void A3(){	
	Sleep (19000);
    again:
	Sleep (2400);
    k3();
    goto again;
	}
void AntiKill3(){
	CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(A3),NULL,0,0);
}
//A 4///////////////////////////////////////////////////////////////////
void k4(){	             
	Exe_Name;	
	if ((Ativa_DC == 1) && (Threads < NumeroMinimo)){
	DC();
	}
}

	void A4(){	
	Sleep (21000);
    again:
	Sleep (2600);
    k4();
    goto again;
	}
void AntiKill4(){
	CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(A4),NULL,0,0);
}
//A 5///////////////////////////////////////////////////////////////////
void k5(){	             
	Exe_Name;	
	if ((Ativa_DC == 1) && (Threads < NumeroMinimo)){
	DC();
	}
}

	void A5(){	 
    Sleep (23000);	 
	again:
	Sleep (2800);
    k5();
    goto again;
	}
	

void AntiKill5(){
	CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(A5),NULL,0,0);
}

//A 6 ///////////////////////////////////////////////////////////////////

// This Thread integrates Server_Ban functions

void k6(){	
	Exe_Name;	
	if ((Ativa_DC == 1) && (Threads < NumeroMinimo)){
	DC();
	}
	else
    {   
    if(carrega.Server_Ban == 1)  
    PHP_con();   // Start Ban server autentication 
}
}

	void A6(){	 
   	again:
	Sleep(carrega.BanSec_Update_time);	// Ban server autentication time
    k6();
    goto again;
	}
	
void AntiKill6(){
	CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(A6),NULL,0,0);
}


//Detecta Inject by thread count + 1 ///////////////////////////////////////////////////////////////////
void Inject_2(){	             
	Exe_Name;	
	if ((Ativa_DC == 1) && (Threads > NumeroMinimo )){
	DC2();
	}
}
	void Inject_Thread(){	 
    Sleep (300000);	 //Wait 5 minutes to thread count stabilizes 
	again:
	Sleep (carrega.DInject_Thread_occours);
    Inject_2();
    goto again;
	}
	
	void DLL_Inject_Thread(){
	CreateThread(NULL,NULL,LPTHREAD_START_ROUTINE(Inject_Thread),NULL,0,0);
}

Тук също добре е обяснено кое за какво е. Можеш да си настройваш логовете, слийп тайм-а да си обръщаш знаците - в смисъл да каунтва + процеси и - колко процеси.

Трябва да изчакаш 4-5 мин след стартирането на играта(това време може да го намалиш от Detecta_AntiKill.cpp)докато се стабилизират тредсовете и тогава а ги сетнеш в защитата.

Ако си се хванал сериозно с тази защита тя ще ти свърши работа, но ще има много играчка докато я нагласиш. Компилиране-тестове-едитване-компилиране-тестове ;-)
 
Last edited:
  • Like
Reactions: Wikko0
Status
Not open for further replies.