So one requested the source code and here I'm releasing it.
Code:
#include <windows.h>
void mainP()
{
unsigned long address;
// Could be injected earlier than expected
do
{
address = (unsigned long)GetModuleHandle("AVA.exe");
Sleep(100);//Not to overload the CPU
} while(address == NULL);
Beep(750, 300);
address = address + 0x01BFC478;
while(*(unsigned long*)address == NULL) Sleep(100);//Not to overload the CPU
address = *(unsigned long*)address + 0x90;
while(*(unsigned long*)address == NULL) Sleep(100);//Not to overload the CPU
address = *(unsigned long*)address + 0x24;
while(*(unsigned long*)address == NULL) Sleep(100);//Not to overload the CPU
int x = wcslen((wchar_t*)address)-1;
for(int i=0; i < x; i++)
{
*(wchar_t*)(address + 2*i) = 0;
}
}
bool WINAPI DllMain(HINSTANCE hDLLInst, DWORD fdwReason, LPVOID lpvReserved)
{
DisableThreadLibraryCalls(hDLLInst);
if (fdwReason == DLL_PROCESS_ATTACH)
{
if (CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)mainP, NULL, 0, NULL) == NULL) // Creating a new thread in the process "AVA"
{
MessageBox(NULL, "Couldn't create a thread to execute within the virtual address space of the calling process.", "ERROR", MB_OK | MB_ICONERROR);
return false;
}
}
else if (fdwReason == DLL_PROCESS_DETACH)
{
// No need for anything here
}
return true;
}