
 Сообщение от 
aa_talanin
					
				 
				Ну или если не боишься вводить пароль в экзешники от незнакомых людей,
			
		 
	 
 А на самом деле боятся стоит.
- - - Updated - - -
	
		
			
			
				
					
 Сообщение от 
aa_talanin
					
				 
				Я делал это прогой отдельной, в неё вводил пароль один раз, потом при каждом запуске вова она выжидала 10 секунд, позволяя вову запуститься, потом имитировала нажатие клавиш на клавиатуре в той последовательности, в какой они стоят в пароле, нажимала ентер и спустя 5 секунд еще раз ентер, таким образом входил через неё вообще без каких-либо манипуляций, кроме запуска самой проги. 
Но способ плох тем, что если ты вов свернул до выполнения ввода пароля, то она спустя 10 секунд его напишет в первое попавшееся окно по фокусу все-равно.
			
		 
	 
 На с++ пробуй читая ячейки памяти 0x7D078A, возвратит штат, далее
	PHP код:
	
#pragma once
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <psapi.h>
#include <TlHelp32.h> 
#define pause system("pause")
const char injectDLLName[] = "Твой_.dll";
int InjectDll(HANDLE hProcess, const char* dllNameArray)
{
    void* pAllocDllName = VirtualAllocEx(hProcess, NULL, strlen(dllNameArray), MEM_COMMIT, PAGE_READWRITE);
    WriteProcessMemory(hProcess, pAllocDllName, dllNameArray, strlen(dllNameArray), NULL);
    HMODULE hKernel32 = GetModuleHandle("Kernel32");
    HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)GetProcAddress(hKernel32, "LoadLibraryA"), pAllocDllName, 0, NULL);
    if (hThread != NULL)
    {
        WaitForSingleObject(hThread, INFINITE);
        CloseHandle(hThread);
    }
    VirtualFreeEx(hProcess, pAllocDllName, strlen(dllNameArray), MEM_RELEASE);
    return 1;
}
int EnumModules(DWORD pID) {
    HMODULE hMods[1024];
    HANDLE hProcess;
    DWORD cbNeeded;
    unsigned int i;
    hProcess = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, FALSE, pID);
    if (hProcess == NULL)
        return 3;
    if (EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded)) {
        for (i = 0; i < (cbNeeded / sizeof(HMODULE)); i++) {
            TCHAR szModName[MAX_PATH];
            if (GetModuleBaseName(hProcess, hMods[i], szModName, sizeof(szModName) / sizeof(TCHAR))) {
                if (_stricmp((TCHAR*)injectDLLName, szModName) == 0) {
                    CloseHandle(hProcess);
                    return 1;
                }
            }
        }
    }
    char path[MAX_PATH];
    DWORD injectorPathSize = GetModuleFileName(NULL, path, MAX_PATH);
    char* pSlash = strrchr(path, '\\');
    strcpy_s(pSlash + 1, sizeof(injectDLLName), injectDLLName);
    InjectDll(hProcess, path);
    return 0;
} 
 
	PHP код:
	
#include "main.h"
int main() {
    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    PROCESSENTRY32 pInfo;
    pInfo.dwSize = sizeof(PROCESSENTRY32);
    if (Process32First(snapshot, &pInfo)) {
        while (Process32Next(snapshot, &pInfo)) {
            if (_stricmp((char*)"Wow.exe", pInfo.szExeFile) == 0) {
                switch (EnumModules(pInfo.th32ProcessID)) {
                    case 0:
                        printf("pID = %d %s\n", pInfo.th32ProcessID, "Injected now!");
                        break;
                    case 1:
                        printf("pID = %d %s\n", pInfo.th32ProcessID, "Already injected!");
                        break;
                }
            }
        }
    }
    CloseHandle(snapshot);
    pause;
    return 0;
} 
 Дальше из длл делаем что хотим с памятью вовки
	PHP код:
	
DWORD MainThreadControl(LPVOID /* param */);
BOOL APIENTRY DllMain(HINSTANCE instDLL, DWORD reason, LPVOID /* reserved */)
{
    if (reason == DLL_PROCESS_ATTACH)
    {
        instanceDLL = instDLL;
        DisableThreadLibraryCalls(instDLL);    
        CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&MainThreadControl, NULL, 0, NULL);        
    }    
    else if (reason == DLL_PROCESS_DETACH){}
    return TRUE;
}
DWORD MainThreadControl(LPVOID lpParm)
{    
    Sleep(200);
        // делаем наши махинации
} 
 
Ну дальше топаем на овнед и занимаемся поисками оффсэтов, которые отвечают за акк и пасс