#include <windows.h> #include <d3d9.h> #include <d3dx9.h> #pragma comment(lib, "d3d9.lib") #pragma comment(lib, "d3dx9.lib") // Address Combat Arms Brazil #define ADDR_D3D 0x95E8D0 #define ADDR_MTBWCRET 0x3737FDE9 #define ADDR_SHOWFPS 0x379B6E30 #define ADDR_LTCLIENTEXE 0x491E20 #define ADDR_GAMESTATUS 0x379ECCD0 void RenderBackend( void ) { static LPDIRECT3DDEVICE9 pDevice; if(!pDevice) pDevice = **(LPDIRECT3DDEVICE9 **)ADDR_D3D; else { Menu(pDevice); Hacks(pDevice); } } static DWORD dwMTBWCRet = NULL; typedef int( WINAPI* MultiByteToWideChar_t )( UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar ); MultiByteToWideChar_t pMultiByte; int WINAPI nMultiByteToWideChar( UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar ) { _asm pushad; _asm { MOV EAX, [EBP+0x4] MOV dwMTBWCRet, EAX } if( dwMTBWCRet == ADDR_MTBWCRET ) { lpMultiByteStr = ""; // null multi byte string, hide fraps actived and show render for menu and hacks RenderBackend(); } _asm popad; return pMultiByte( CodePage, dwFlags, lpMultiByteStr, cbMultiByte, lpWideCharStr, cchWideChar ); } void *DetourCreateE9( BYTE *src, const BYTE *dst, const int len ) { DWORD dwBack; BYTE *jmp = (BYTE*)malloc( len+5 ); memcpy( jmp, src, len ); jmp += len; jmp[0] = 0xE9; *(DWORD*)( jmp+1 ) = (DWORD)( src+len - jmp ) - 5; VirtualProtect( src, len, PAGE_EXECUTE_READWRITE, &dwBack ); src[0] = 0xE9; *(DWORD*)( src+1 ) = (DWORD)( dst - src ) - 5; VirtualProtect( src, len, dwBack, &dwBack ); FlushInstructionCache( GetCurrentProcess(), src, 0x10 ); return( jmp-len ); } DWORD WINAPI dwMain( LPVOID lpArg ) { while( ( GetModuleHandleA( "ClientFX.fxd" ) == NULL ) ) Sleep( 25 ); *( FLOAT* )( ADDR_SHOWFPS ) = 1.f; // Hook using show fraps actived return EXIT_SUCCESS; } BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { if (ul_reason_for_call == DLL_PROCESS_ATTACH) { DWORD MBTWCAddr = (DWORD)GetProcAddress( GetModuleHandleA( "Kernel32.dll" ), "MultiByteToWideChar" ); pMultiByte = (MultiByteToWideChar_t)DetourCreateE9( (PBYTE)MBTWCAddr, (PBYTE)nMultiByteToWideChar, 5 ); CreateThread( NULL, NULL, dwMain, NULL, NULL, NULL ); } return TRUE; }
Write, Run & Share C++ code online using OneCompiler's C++ online compiler for free. It's one of the robust, feature-rich online compilers for C++ language, running on the latest version 17. Getting started with the OneCompiler's C++ compiler is simple and pretty fast. The editor shows sample boilerplate code when you choose language as C++
and start coding!
OneCompiler's C++ online compiler supports stdin and users can give inputs to programs using the STDIN textbox under the I/O tab. Following is a sample program which takes name as input and print your name with hello.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
cout << "Enter name:";
getline (cin, name);
cout << "Hello " << name;
return 0;
}
C++ is a widely used middle-level programming language.
When ever you want to perform a set of operations based on a condition If-Else is used.
if(conditional-expression) {
//code
}
else {
//code
}
You can also use if-else for nested Ifs and If-Else-If ladder when multiple conditions are to be performed on a single variable.
Switch is an alternative to If-Else-If ladder.
switch(conditional-expression){
case value1:
// code
break; // optional
case value2:
// code
break; // optional
......
default:
code to be executed when all the above cases are not matched;
}
For loop is used to iterate a set of statements based on a condition.
for(Initialization; Condition; Increment/decrement){
//code
}
While is also used to iterate a set of statements based on a condition. Usually while is preferred when number of iterations are not known in advance.
while (condition) {
// code
}
Do-while is also used to iterate a set of statements based on a condition. It is mostly used when you need to execute the statements atleast once.
do {
// code
} while (condition);
Function is a sub-routine which contains set of statements. Usually functions are written when multiple calls are required to same set of statements which increases re-usuability and modularity. Function gets run only when it is called.
return_type function_name(parameters);
function_name (parameters)
return_type function_name(parameters) {
// code
}