Ist leicht zu umgehen doch hilft gegen die meisten.
Der Fix arbeitet hauptsächlich mit der Tickrate.
[Alles was kommentiert ist könnt ihr natürlich auch auskommentieren je nach dem wie ihr das wollt.]
PHP Code:
Neuz VersionCommon.h
#define __CHEAT_ENGINE_BLOCK
Neuz.cpp unter:
PHP Code:
void CNeuzApp::BeginLoadThread()
{
CResFile::ScanResource( "" );
prj.LoadPreFiles();
m_hThread = (HANDLE) _beginthread( LoadProperty, 0, (LPVOID)this );
#if !defined(_DEBUG)
WaitLoading();
#endif
}
das:
PHP Code:
#ifdef __CHEAT_ENGINE_BLOCK
void CNeuzApp::StartSecurityThread()
{
m_threadSecurity = AfxBeginThread( _SecurityThreadFunc, this );
m_threadSecurity2=AfxBeginThread( _SecurityThread2Func, this );
if ( m_threadSecurity == NULL )
{
MessageBox( g_Neuz.GetSafeHwnd(), "Failed to create security thread, dialog is aborting", "Security Thread!", MB_OK );
ExitProcess( -1 );
}
if ( m_threadSecurity2 == NULL )
{
MessageBox( g_Neuz.GetSafeHwnd(), "Failed to create security2 thread, dialog is aborting", "Security Thread!", MB_OK );
ExitProcess( -1 );
}
m_threadSecurity->m_bAutoDelete = FALSE;
m_threadSecurity->ResumeThread();
m_threadSecurity2->m_bAutoDelete = FALSE;
m_threadSecurity2->ResumeThread();
}
UINT CNeuzApp::_SecurityThreadFunc( LPVOID param )
{
unsigned int nLastTick = GetTickCount();
char q_count = 0;
unsigned int x = 0;
while( 1 )
{
Sleep(1000);
x = (GetTickCount()-nLastTick)/100;
if(x > 0 && x < 11)
x=10;
q_count += (x-10)>0;
q_count -= (q_count==0) ? 0 : (x-10) == 0;
nLastTick = GetTickCount();
if( q_count >= 5 )
{
// char szBuff[8192];
//_vsntprintf( szBuff, 8191, "Error: S_%i%s", x, "\nPlease contact a GameMaster when this error occurrs." );
//sprintf(error, (CchHcAR*)"Error: S_%i%s", x, "\nPlease contact a GameMaster when this error occurrs.");
Error("SecurityThread(): Speed Hack!");
g_Neuz.Pause(true);
MessageBox( g_Neuz.GetSafeHwnd(), "CHEAT ENGINE DETECTED!", "Error in Neuz.exe!", MB_OK );
ExitProcess( -1 );
}
//std::cout<< (q_count>=15?"Speed Kick!!":"Akzeptabel")<<" ("<<(int)q_count<<"sec mit Speed) "<<x<<"\n";
/* q_count:
* bei Speed an -> q_count++
* bei Speed aus-> q_count-- bis 0;
* kick sollte vor 126 stattfinden ! empfehlung: 5s < KICK < 15s
* empfohlene Meldung etwa (da man Fehler nie ausschließen kann): Überschrift: "Fehler in Neuz.exe";
* Inhalt: "Fehler: S_ "+q_count+"\nFalls dieser Fehler unerwartet auftritt bitte an einen GM wenden.";
*/
}
}
UINT CNeuzApp::_SecurityThread2Func( LPVOID param )
{
unsigned int nLastTick = GetTickCount();
char q_count = 0;
char a[30] = { 65, 110, 116, 84, 119, 101, 97, 107, 66, 97, 114, 46, 100, 108, 108 };
char b[30] = { 73, 110, 102, 105, 108, 116, 114, 97, 116, 105, 111, 110, 46, 100, 108, 108 };
const string& tweakbar = a;
const string& infiltration = b;
while( 1 )
{
if( g_Neuz.isRunning("Injector.exe") )
{
Error("SecurityThread(): User tried to inject!");
g_Neuz.Pause(true);
MessageBox( g_Neuz.GetSafeHwnd(), "Don't try to inject me, newb!", "Error in Neuz.exe!", MB_OK );
ExitProcess( -1 );
}
#ifdef __BLOCK_CE_OLLYDBG
if( g_Neuz.isRunning("cheatengine-x86_64.exe") )
{
Error("SecurityThread(): User tried to use CE!");
g_Neuz.Pause(true);
MessageBox( g_Neuz.GetSafeHwnd(), "Don't try to use CheatEngine!", "Error in Neuz.exe!", MB_OK );
ExitProcess( -1 );
}
if( g_Neuz.isRunning("cheatengine-i386.exe") )
{
Error("SecurityThread(): User tried to use CE!");
g_Neuz.Pause(true);
MessageBox( g_Neuz.GetSafeHwnd(), "Don't try to use CheatEngine!", "Error in Neuz.exe!", MB_OK );
ExitProcess( -1 );
}
if( g_Neuz.isRunning("Cheat Engine.exe") )
{
Error("SecurityThread(): User tried to use CE!");
g_Neuz.Pause(true);
MessageBox( g_Neuz.GetSafeHwnd(), "Don't try to use CheatEngine!", "Error in Neuz.exe!", MB_OK );
ExitProcess( -1 );
}
if( g_Neuz.isRunning("OLLYDBG.exe") )
{
Error("SecurityThread(): User tried to use OllyDBG!");
g_Neuz.Pause(true);
MessageBox( g_Neuz.GetSafeHwnd(), "Don't try to use OllyDBG!", "Error in Neuz.exe!", MB_OK );
ExitProcess( -1 );
}
if( g_Neuz.isRunning("Winject.exe") )
{
Error("SecurityThread(): User tried to inject!");
g_Neuz.Pause(true);
MessageBox( g_Neuz.GetSafeHwnd(), "Don't try to inject!", "Error in Neuz.exe!", MB_OK );
ExitProcess( -1 );
}
#endif
if( GetFileAttributes(tweakbar.c_str()) != 0xFFFFFFFF || GetFileAttributes(infiltration.c_str()) != 0xFFFFFFFF )
{
Error("SecurityThread(): User has corrupted client!");
g_Neuz.Pause(true);
MessageBox( g_Neuz.GetSafeHwnd(), "Corrupted Client! Please reinstall Atlantic Flyff!", "Error in Neuz.exe!", MB_OK );
ExitProcess( -1 );
}
Sleep(7000);
}
}
bool CNeuzApp::isRunning(string pName)
{
return false;/*
unsigned long aProcesses[1024], cbNeeded, cProcesses;
if(!EnumProcesses(aProcesses, sizeof(aProcesses), &cbNeeded))
return false;
cProcesses = cbNeeded / sizeof(unsigned long);
for(unsigned int i = 0; i < cProcesses; i++)
{
if(aProcesses[i] == 0)
continue;
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, aProcesses[i]);
char buffer[50];
GetModuleBaseName(hProcess, 0, buffer, 50);
CloseHandle(hProcess);
if(pName == string(buffer))
return true;
}
return false;
*/
}
#endif
PHP Code:
public:
DWORD m_dwTimeOutDis;
int m_nTexAlpha;
BOOL m_bTexLoad;
BOOL m_bTexLoadAlpha;
CTexture m_TexLoading;
BOOL m_bActiveNeuz;
CNeuzEnemy m_NeuzEnemy;
DWORD m_dwTimeReSkillPoint;
BOOL m_bQuit;
CTimer m_timerQuit;//.Set( SEC( 1 ) );
das hier
PHP Code:
#ifdef __CHEAT_ENGINE_BLOCK
CWinThread* m_threadSecurity;
static UINT _SecurityThreadFunc( LPVOID param );
bool isRunning(string pName);
CWinThread* m_threadSecurity2;
static UINT _SecurityThread2Func( LPVOID param );
void StartSecurityThread();
#endif
PHP Code:
if( bGetOsVr && hres == S_OK && versionInfo.dwMajorVersion != 6 && Identifier.VendorId != 4098 )
EnableFloatException();
SAFE_RELEASE(pD3D);
das hier:
PHP Code:
#ifdef __CHEAT_ENGINE_BLOCK
/*
#ifdef __CHEAT_ENGINE_BLOCK_NAME
if (FindWindow (NULL, "Cheat Engine 5.7"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Cheat-Engine to play FlyFF!", "Cheat Engine detected!", MB_OK );
ExitProcess( -1 );
}
else
{
if (FindWindow (NULL, "Cheat Engine 5.6"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Cheat-Engine to play FlyFF!", "Cheat Engine detected!", MB_OK );
ExitProcess( -1 );
}
else
{
if (FindWindow (NULL, "Cheat Engine 5.8"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Cheat-Engine to play FlyFF!", "Cheat Engine detected!", MB_OK );
ExitProcess( -1 );
}
else
{
if (FindWindow (NULL, "Cheat Engine 5.9"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Cheat-Engine to play FlyFF!", "Cheat Engine detected!", MB_OK );
ExitProcess( -1 );
}
else
{
if (FindWindow (NULL, "Cheat Engine 6.0"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Cheat-Engine to play FlyFF!", "Cheat Engine detected!", MB_OK );
ExitProcess( -1 );
}
else
{
if (FindWindow (NULL, "Cheat Engine 6.1"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Cheat-Engine to play FlyFF!", "Cheat Engine detected!", MB_OK );
ExitProcess( -1 );
}
else
{
if (FindWindow (NULL, "Cheat Engine 6.2"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Cheat-Engine to play FlyFF!", "Cheat Engine detected!", MB_OK );
ExitProcess( -1 );
}
else
{
if (FindWindow (NULL, "Cheat Engine 6.3"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Cheat-Engine to play FlyFF!", "Cheat Engine detected!", MB_OK );
ExitProcess( -1 );
}
else
{
if (FindWindow (NULL, "OllyDbg"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Olly DBG to play FlyFF!", "Olly DBG detected!", MB_OK );
ExitProcess( -1 );
}
else
{
if (FindWindow (NULL, "Cheat Engine 5.5"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Cheat-Engine to play FlyFF!", "Cheat Engine detected!", MB_OK );
ExitProcess( -1 );
}
else
{
if (FindWindow (NULL, "Cheat Engine 5.4"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Cheat-Engine to play FlyFF!", "Cheat Engine detected!", MB_OK );
ExitProcess( -1 );
}
else
{
if (FindWindow ( NULL, "Cheat Engine 5.3"))
{
MessageBox( g_Neuz.GetSafeHwnd(), "Please uninstall Cheat-Engine to play FlyFF!", "Cheat Engine detected!", MB_OK );
ExitProcess( -1 );
}
}
}
}
}
#endif
*/
//g_Neuz.m_dwLastTick = 0;
//g_Neuz.m_timerCheatEngine.Set( SEC( 1 ) );
g_Neuz.StartSecurityThread();
#endif






