Перейти к содержанию

LongLong

Пользователи
  • Постов

    45
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные LongLong

  1. 1 минуту назад, partoftheworlD сказал:

     

    Конечно, редко попадаются игры с координатами отличного от float типа

     

     

    Понял.Кстати..не знайте какую нибудь программу,которая запускает игру в оконном режиме? свойство "-window" мне не помогает,игра запускается под контролем "ALAWAR" :lol:

  2. 1 минуту назад, partoftheworlD сказал:

    Если подробней, то после того как игра завершилась после проигрыша координаты обнуляются, вернее сказать устанавливают стартовую точку, останется найти проверу перед обнулением типа

    "если сосед увидел, то вывести сообщение и установить используемые значения в обычное состояние"

     

     

    Хорошо,попробую.А координаты имеют тип float ?

  3. Добрый вечер! Кто играл эту игру знает,что если сосед тебя увидит ты проиграл,и надо сначала всё проходить.Как найти в памяти это условие когда сосед меня видит то игра заканчивается,как это в коде можно найти? чтобы в дальнейшем убрать,и сделать так чтобы даже сосед тебя видел то игра не заканчивалась.Спасибо.

  4. Скрытый текст
    
    #include <Windows.h>
    #include <tlhelp32.h>
    #include "detours.h"
    #include <process.h> 
    #include <wchar.h>
    #include <stdlib.h>
    #include "tchar.h"
    #include "stdio.h"
    #include "psapi.h"
    #include <string>
    #include <iostream>
    #include <fstream>
    using namespace std;
    LPCTSTR lpFile_XTRAP;
    // Values
    typedef HMODULE (WINAPI *tLoadLibraryA)(LPCTSTR);
    typedef HMODULE (WINAPI *tLoadLibraryExA)(LPCTSTR, HANDLE, DWORD);
    typedef BOOL (WINAPI *tTerminateProcess)(HANDLE, UINT);
    typedef VOID (WINAPI *tExitProcess)(UINT);
    // Original Functions
    tLoadLibraryA m_LoadLibraryAOrig = nullptr;
    tLoadLibraryExA m_LoadLibraryExAOrig = nullptr;
    tTerminateProcess m_TerminateProcessOrig = nullptr;
    tExitProcess m_ExitProcessOrig = nullptr;
    // Hooked LoadLibraryA
    static HMODULE WINAPI HookedLoadLibraryA(LPCTSTR lpFileName)
    {
    	//cout << "LoadLibraryA : [" << lpFileName << "]" << endl;
    	if(string(lpFileName).find("XTrapVa.dll") != string::npos)
    	{
    	lpFile_XTRAP = lpFileName;
    	cout << "Blocked LoadLibraryA [" << lpFileName << "]" << endl;
    	return (HMODULE)0xA0B1C2D3;
    	}
    	return m_LoadLibraryAOrig(lpFileName);
    }
    // Hooked LoadLibraryExA
    static HMODULE WINAPI HookedLoadLibraryExA(LPCTSTR lpFileName, HANDLE hHandle, DWORD uk1)
    {
    	cout << "LoadLibraryExA : [" << lpFileName << "]" << endl;
    	if(string(lpFileName).find("XTrapVa.dll") != string::npos)
    	{
    	cout << "Blocked LoadLibraryExA [" << lpFileName << "]" << endl;
    	return (HMODULE)0xA0B1C2D3;
    	}
    	return m_LoadLibraryExAOrig(lpFileName, hHandle, uk1);
    }
    // Hooked ExitProcess
    static BOOL WINAPI HookedTerminateProcess(HANDLE hProcess, UINT uExitCode)
    {
    	cout << "TerminateProcess Was Blocked" << endl;
    	return false;
    }
    // Hooked ExitProcess
    static VOID WINAPI HookedExitProcess(UINT uExitCode)
    {
    	cout << "ExitProcess Was Blocked : ExitCode = " << uExitCode << endl;
    	return ;
    }
    // GetLastError String
    // Main Function
    void I2()
    {
    	AllocConsole();
    	freopen("CONIN$", "r", stdin);
    	freopen("CONOUT$", "w", stdout);
    
    	DWORD TerminateProcessAddy = (DWORD)GetProcAddress(GetModuleHandle("Kernel32.dll"), "TerminateProcess");
    	DWORD ExitProcessAddy = (DWORD)GetProcAddress(GetModuleHandle("Kernel32.dll"), "ExitProcess");	
    	DWORD PostQuitMessageAddy = (DWORD)GetProcAddress(GetModuleHandle("User32.dll"), "PostQuitMessage");	
    	DWORD LoadLibraryAAddy = (DWORD)GetProcAddress(GetModuleHandle("Kernel32.dll"), "LoadLibraryA");
    	DWORD LoadLibraryExAAddy = (DWORD)GetProcAddress(GetModuleHandle("Kernel32.dll"), "LoadLibraryExA");
    
    	cout << "TerminateProcess Addy : " << hex << uppercase << TerminateProcessAddy << endl;
    	cout << "ExitProcess Addy : " << hex << uppercase << ExitProcessAddy << endl;
    
    	m_ExitProcessOrig = (tExitProcess)DetourFunction((BYTE*)ExitProcessAddy, (BYTE*)HookedExitProcess);
    	cout << " >> Detoured TerminateProcess : [" << hex << uppercase << ExitProcessAddy << "]" << endl;
    	m_TerminateProcessOrig = (tTerminateProcess)DetourFunction((BYTE*)TerminateProcessAddy, (BYTE*)HookedTerminateProcess);
    	cout << " >> Detoured ExitProcess : [" << hex << uppercase << TerminateProcessAddy << "]" << endl;
    	m_LoadLibraryAOrig = (tLoadLibraryA)DetourFunction((BYTE*)LoadLibraryAAddy, (BYTE*)HookedLoadLibraryA);
    	cout << " >> Detoured LoadLibraryA : [" << hex << uppercase << LoadLibraryAAddy << "]" << endl;
    	/*m_LoadLibraryExAOrig = (tLoadLibraryExA)DetourFunction((BYTE*)LoadLibraryExAAddy, (BYTE*)HookedLoadLibraryExA);
    	cout << " >> Detoured LoadLibraryExA : [" << hex << uppercase << LoadLibraryExAAddy << "]" << endl;*/
    	//
    	return;
    	HMODULE XtrapVaDll = m_LoadLibraryAOrig("XTrapVa.dll");
    	if(XtrapVaDll != NULL)
    	{
    		FreeLibraryAndExitThread(XtrapVaDll, 0);
    		cout << "Just Free Library XTrapVa.dll" << endl;
    	}
    	else { cout << "XTrapVa.dll Wasn't Found ..." << endl; }
    	return;
    }
    // Dll Main
    extern "C" __declspec(dllexport)BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
    {
    	switch (fdwReason)
    	{
    	case DLL_PROCESS_ATTACH:
    		DisableThreadLibraryCalls(hinstDLL);
    		CreateThread(0, 0, (LPTHREAD_START_ROUTINE)I2, 0, 0, 0);
    		break;
    	}
    	return true;
    }

     

    http://www.mpgh.net/forum/showthread.php?t=1142135

  5. Скрытый текст
    
    // IDEA by Postal2 aka K773
    // CREATOR by HoShiMin
    // LOUNGER by [cube]
    
    
    library ZipFileBypass;
    
    uses
      Windows,
      System.SysUtils,
      Classes,
      JNI in 'JNI\JNI.pas',
      JNIUtils in 'JNI\JNIUtils.pas',
      CodepageAPI in 'HoShiMin''s API\CodepageAPI.pas',
      HWID in 'HoShiMin''s API\HWID.pas',
      StringsAPI in 'HoShiMin''s API\StringsAPI.pas';
    
    {$SETPEFLAGS $0002 or $0004 or $0008 or $0010 or $0020 or $0200 or $0400 or $0800 or $1000}
    {$WEAKLINKRTTI ON}
    {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
    
    {$R *.res}
    
    const
      JNI_VERSION_1_6 = $00010006; // Java 6, Java 7
      JNI_VERSION_1_8 = $00010008; // Java 8
      JNI_VERSION_1_9 = $00010009; // Java 9 // На будущее
    
    //HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
    
    function EndsWith ( Input, Suffix: string): Boolean;
    var
      Buffer: string;
    begin
       Buffer := Copy(Input, Length(Input)-Length(Suffix), Length(Suffix));
       Result := Buffer = Suffix;
    end;
    
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
    function JStringToString(JNIEnv: PJNIEnv; JavaString: JString; UTF8Encode: Boolean = True): string;
    var
      CharredString: PAnsiChar;
      EncodedFileName: TStringStream;
      DecodedFileName: TBytes;
    begin
      CharredString := JNIEnv^.GetStringUTFChars(JNIEnv, JavaString, nil);
      Result := AnsiToWide(CharredString);
      JNIEnv^.ReleaseStringUTFChars(JNIEnv, JavaString, CharredString);
    
      if UTF8Encode then
      begin
        EncodedFileName := TStringStream.Create(Result);
        DecodedFileName := EncodedFileName.Encoding.Convert(
                                                             EncodedFileName.Encoding.UTF8,
                                                             EncodedFileName.Encoding.ANSI,
                                                             EncodedFileName.Bytes,
                                                             0,
                                                             Length(EncodedFileName.DataString)
                                                            );
        EncodedFileName.Clear;
        EncodedFileName.WriteData(DecodedFileName, Length(DecodedFileName));
        SetLength(DecodedFileName, 0);
        Result := EncodedFileName.DataString;
      end;
    end;
    
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
    function StringToJString(JNIEnv: PJNIEnv; const Text: string): JString;
    var
      AnsiText: AnsiString;
    begin
      AnsiText := WideToAnsi(Text);
      Result := JNIEnv^.NewStringUTF(JNIEnv, PAnsiChar(AnsiText));
    end;
    
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
    
    function OpenHookProc(JNIEnv: PJNIEnv; JavaClass: JClass; Name: JString; Mode: JInt; LastModified: JLong; UseMMap: JBoolean): JLong; stdcall;
    type
      TZipFile_Open = function(JNIEnv: PJNIEnv; JavaClass: JClass; Name: JString; Mode: JInt; LastModified: JLong; UseMMap: JBoolean): JLong; stdcall;
    var
      ZipFile_open: TZipFile_open;
      CheatPath: JString;
    begin
    
      //OutputDebugString('[HOOK] Загружаем zip.dll...');
      try
        LoadLibrary('C:\Program Files\Java\jre1.8.0_45\bin\zip.dll');
      except
        OutputDebugString('[HOOK] Не удалоcь загрузить zip.dll');
        OutputDebugString('[HOOK] EXIT');
        Result := -1;
        Exit;
      end;
      //OutputDebugString('[HOOK] zip.dll загружена!');
    
      CheatPath := StringToJString(JNIEnv, 'C:/Cheats/1.6.4.jar');
    
      OutputDebugString(PWideChar('[HOOK] Перехвачено обращение к файлу ' + PWideChar(JStringToString(JNIEnv, Name))));
    
      if (JStringToString(JNIEnv, Name) = 'C:\emouru\playon\bin\versions\1.6.4.jar') then
        begin
          OutputDebugString('[HOOK] Обнаружено обращение к целевому файлу!');
          OutputDebugString(PWideChar('[HOOK] Заменяем ' + JStringToString(JNIEnv, Name) + ' на ' + JStringToString(JNIEnv, CheatPath) + '...'));
          try
            ZipFile_open := GetProcAddress(GetModuleHandleA('zip.dll'),'_Java_java_util_zip_ZipFile_open@28');
          except
            OutputDebugString('[HOOK] Операция закончилось со сбоем!');
            OutputDebugString('[HOOK] EXIT');
            Result := -1;
            Exit;
          end;
          OutputDebugString('********************');
          OutputDebugString('');
          Result := ZipFile_open(JNIEnv, JavaClass, CheatPath, Mode, LastModified, UseMMap);
        end
      else
        begin
          try
            ZipFile_open := GetProcAddress(GetModuleHandleA('zip.dll'),'_Java_java_util_zip_ZipFile_open@28');
          except
            Result := -1;
            Exit;
          end;
          Result := ZipFile_open(JNIEnv, JavaClass, Name, Mode, LastModified, UseMMap);
        end;
    end;
    
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    
    function SetOpenHook(JNIEnv: PJNIEnv): Boolean;
    const
      ClassName: PAnsiChar = 'java/util/zip/ZipFile';
    var
      Method: JNINativeMethod;
      OpenClass: JClass;
      RegisterStatus: JInt;
    begin
      Method.name      := 'open';
      Method.signature := '(Ljava/lang/String;IJZ)J';
      Method.fnPtr     := @OpenHookProc;
    
      OutputDebugString('Получаем класс ZipFile...');
      try
        OpenClass := JNIEnv^.FindClass(JNIEnv, ClassName);
      except
        OutputDebugString('Не удалоcь получить класс ZipFile');
        OutputDebugString('EXIT');
        Result := false;
        Exit;
      end;
      OutputDebugString('Класс ZipFile получен!');
    
      OutputDebugString('Проверяем на NIL...');
      if OpenClass = nil then
        begin
          OutputDebugString('Получен NIL!');
          OutputDebugString('EXIT');
          Exit(False);
        end;
    
      OutputDebugString('Регистрация нативки...');
      try
        RegisterStatus := JNIEnv^.RegisterNatives(JNIEnv, OpenClass, @Method, 1);
      except
        OutputDebugString('Регистрация завершена со сбоем!');
        OutputDebugString('EXIT');
        Exit(False);
      end;
    
      if RegisterStatus >= 0 then
        OutputDebugString('Регистрация завершена успешно!')
      else
        begin
          OutputDebugString('Попытка регистрации была неуспешной!');
          OutputDebugString('EXIT');
          Exit(False);
        end;
    
    
      Result := RegisterStatus >= 0;
    end;
    
    
    //HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
    
    
    procedure DllMain(dwReason: LongWord);
    var
      JVMArray: array of PJavaVM;
      NumberOfVMs: JSize;
      I: Integer;
      JNIEnv: PJNIEnv;
      GetCreatedJavaVMs: TJNI_GetCreatedJavaVMs;
      LogInt: PWideChar;
    const
      BufferSize = 64;
    begin
      case dwReason of
        DLL_PROCESS_ATTACH:
        begin
    
          OutputDebugString('Загрузка jvm.dll...');
          try
            LoadLibrary('C:\Program Files\Java\jre1.8.0_45\bin\client\jvm.dll');
          except
            OutputDebugString('Операция окончилась неудачно!');
            OutputDebugString('EXIT');
            Exit;
          end;
          OutputDebugString('Загрузка прошла успешно!');
    
          OutputDebugString('Получение загруженных JVM...');
          try
            // Получаем загруженные виртуальные машины:
            GetCreatedJavaVMs := GetProcAddress(GetModuleHandle('jvm.dll'), 'JNI_GetCreatedJavaVMs');
            SetLength(JVMArray, BufferSize);
            GetCreatedJavaVMs(@JVMArray[0], BufferSize * SizeOf(PJavaVM), @NumberOfVMs);
          except
            OutputDebugString('Операция окончилась неудачно!');
            OutputDebugString('EXIT');
            Exit;
          end;
          LogInt := PWideChar(IntToStr(NumberOfVMs));
          OutputDebugString(PWideChar('Операция прошла успешно! Загруженно ' + LogInt + ' JVM'));
    
          // Регистрируем нативную функцию распаковки архива для всех найденных JVM:
          if NumberOfVMs > 0 then
            begin
              OutputDebugString('Регистрируем нативную функцию распаковки архива для всех найденных JVM:');
              for I := 0 to NumberOfVMs - 1 do
              begin
                LogInt := PWideChar(IntToStr(I));
                OutputDebugString(PWideChar('Регистриция нативки в JVM #' + LogInt));
                JVMArray[I]^.GetEnv(JVMArray[I], @JNIEnv, JNI_VERSION_1_8);
                JVMArray[I]^.AttachCurrentThread(JVMArray[I], @JNIEnv, Nil);
                SetOpenHook(JNIEnv);
              end;
            end
          else
            begin
              OutputDebugString('Ни одна JVM не была загружена!');
              OutputDebugString('EXIT');
              Exit;
            end;
        end;
    
        DLL_PROCESS_DETACH:
        begin
          OutputDebugString('UNLOAD BYPASS LIBRARY');
          Exit;
        end;
      end;
    end;
    
    
    
    begin
      DllProc := @DllMain;
      DllProc(DLL_PROCESS_ATTACH);
    end.

     

     

  6. 15 час назад, Garik66 сказал:

    LongLong, кинь сюда АА-скрипт из инструкции:

    
    mov ecx,[esi+04] 

    которая выше твоей, напишем тебе скрипт, чтобы всё продавалось за   100000 $ .

    Скрытый текст
    
    [ENABLE]
    //code from here to '[DISABLE]' will be used to enable the cheat
    alloc(newmem,2048)
    label(returnhere)
    label(originalcode)
    label(exit)
    
    newmem: //this is allocated memory, you have read,write,execute access
    //place your code here
    
    originalcode:
    mov [esi+04],ecx
    jna generals.exe+100D2C
    
    exit:
    jmp returnhere
    
    "generals.exe"+100D09:
    jmp newmem
    returnhere:
    
     
     
    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    dealloc(newmem)
    "generals.exe"+100D09:
    mov [esi+04],ecx
    jna generals.exe+100D2C
    //Alt: db 89 4E 04 76 1E

     

     

  7. В игре можно продать вещь любое здание например за 700 $ можно в памяти игры подменить значение 700 на 1000000 чтобы продавалась за 100000 $ в памяти нечего не нашел ставил брейкпоинт на запись и продал здание нашло 1 функцию ставил на неё брекпоинт и в регистрах не нашел значение 700$ Помогите нечего не получается(( я нуб

     

    de9821c7e03f.png

    1bf310b9d0f8.png

    ad2c1ca3d7f7.png

    a73a13743cd2.png

  8. Играю с другом по хамачи в Generals Zero Hour,но почему то выскакивает ошибка "Игра обнаружила несоответствие.Это значит,что коллективная игра потеряла данные синхронизации между игроками"

    Когда я накручиваю себе $. Как это можно обойти?

  9. 10 минуту назад, LIRW сказал:

    Поправил ссылку. Игра такая же как и у тебя ведь. У тебя просто мод. Я его искал, но не нашел, а другие предложения качать с каких то левых сайтов - не очень охота. Я вот на этой игре показал тебе - принцип работы такой же. Только есть одно НО. Я на карте наверное нахожусь один, а вот если будут противники, наверное надо будет делать фильтр, а то они тоже будут строить так же быстро свою технику. В общем сам посмотришь, тебе же был нужен только адрес, а далее уже сам разберешься. Да и на видео скрипт уже мой, я просто что бы не тянуть время и сделать видео максимально коротким, сначала нашел сам адрес, потом сделал и проверил это дело, а потом только тебе по новой показал.

    Спасибо тебе!!!

  10. 1 час назад, LIRW сказал:

    Так это адрес поди нашел не тот, а адрес самой вот этой вот графической полоски - визуальный. В какой то части помню (когда то смотрел подобную игру) так там на каждого юнита выделялся новый адрес. Вот полоска дошла до конца и игра на следующего юнита выделяла новый. Ты вот как попробуй. Спидхаком уменьши скорость игры и ищи и ищи не только увеличилось, но и уменьшилось. Фиг его знает, уменьшается он или прибавляется, а ты ориентируешься только глядя на эту полоску. 

     

    В общем щас попробовал на "Command and Conquer - Generals Zero Hour" там значение 4_ох байтовое. И оно не какое не стандартное - оно после постройки выглядит как в обще левое какое то. Если строить трактор то значение 356 когда уже построено и 0 от старта строительства. Щас если игру сверну то покажу. 

    А оконный режим и делать не надо -Бандикам снимает как бы из нутри даже в полно экранном захватывая его как то.

    Смотри что то нашел что получает доступ к этому визуальной штуки 726c2f9b4dce.png

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.