• Страница 1 из 1
  • 1
Мутация кода чита (Anti-Vac) для читов cs:go
Kentos311Дата: Воскресенье, 15.04.2018, 13:10 | Сообщение # 1
Сообщений: 729
Статус:
Небольшой гайд о том как провести мутацию кода в чите, а точнее чтобы шансы на его детект были малейшие.  Для того чтобы всё сделать правильно, вам необходимо вызвать crypt1(), и он мутирует код от одной _asm вставки до другой, в данном чите который будете использовать, можно будет сделать несколько в разных местах, при этом шанс будет намного ниже.


Код
DWORD func_start1; 

DWORD func_end1; 

void to_be_crypted1() 
{ 
_asm // получаем адрес начала функции 
{ 
CALL next1 
next1 : pop func_start1 
} 
int a[123], b[321], c[322];// здесь начинаем писать какую нибудь х*йню (чем больше тем лучше, тем больше зашифруется) 
for (int i = 0; i < 123; i++) 
{ 
if (i % 2 == 0) 
{ 
a [i]= i - 1; 
b [i]= a [i]* 123; 
c [i]= 321; 
} 
else 
{ 
a [i]= i + 1; 
b [i]= 123; 
c [i]= a [i]* 321; 
} 
} 
for (int i = 0; i<2; i++) 
{ 
a[12] = b[12]; 
a[11] = b[12]; 
a[10] = b[12]; 
a[9] = b[12]; 
a[8] = b[12]; 
} 
int y = 0; 
while (y < 12) 
{ 
a [y]= a[y + 1]; 
y++; 
} 
y = 1; 
while (y < 24) 
{ 
a[y - 1] = a[y + 1]; 
y++; 
} 
y = 2;// здесь заканчиваем писать какую нибудь х*йню 
_asm // получаем адрес конца функции 
{ 
CALL next2 
next2 : pop func_end1 
} 
} 
void crypt1() 
{ 
to_be_crypted1();// вызываем чтобы узнать адреса 
DWORD FuncSize = func_end1 - func_start1, OldProtect, Ignore; 
DWORD StartAddr = func_start1; 
DWORD xd = func_start1; 
VirtualProtect((LPVOID)StartAddr, FuncSize, PAGE_EXECUTE_READWRITE, &OldProtect);//разрешаем запись в эту область памяти 
for (int i = 0; i < FuncSize; i++) 
{ 
xd[(char*)0] = rand() % 12345; 
xd++; 
} 
VirtualProtect((LPVOID)StartAddr, FuncSize, OldProtect, &Ignore); // запрещаем запись в эту область памяти 
cout « func_start1 « "func start\n";// debug 
cout « func_end1 « "func end\n"; // debug 
}
 
  • Страница 1 из 1
  • 1
Поиск: