-
Постов
45 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные LongLong
-
-
Круто!))спасибо,нашел свои координаты,и заморозил их,теперь герой не может не куда идти,мм..теперь найти бы координаты соседа,с ними труднее,потому что он всё время в действий
-
1 минуту назад, partoftheworlD сказал:
Конечно, редко попадаются игры с координатами отличного от float типа
Понял.Кстати..не знайте какую нибудь программу,которая запускает игру в оконном режиме? свойство "-window" мне не помогает,игра запускается под контролем "ALAWAR"
-
1 минуту назад, partoftheworlD сказал:
Если подробней, то после того как игра завершилась после проигрыша координаты обнуляются, вернее сказать устанавливают стартовую точку, останется найти проверу перед обнулением типа
"если сосед увидел, то вывести сообщение и установить используемые значения в обычное состояние"
Хорошо,попробую.А координаты имеют тип float ?
-
1 минуту назад, partoftheworlD сказал:
Через координаты.
Хм..спасибо,а вы правы))
-
Добрый вечер! Кто играл эту игру знает,что если сосед тебя увидит ты проиграл,и надо сначала всё проходить.Как найти в памяти это условие когда сосед меня видит то игра заканчивается,как это в коде можно найти? чтобы в дальнейшем убрать,и сделать так чтобы даже сосед тебя видел то игра не заканчивалась.Спасибо.
-
Скрытый текст
#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; }
-
Скрытый текст
// 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.
-
Народ,как можно найти координаты игрока? какие есть варианты ? надо чтобы сделать телепорт (не обижайтесь,я нуб!)
-
Процессор: Intel core i7 4770 3.40 Ghz
Озу: 8 гб
Видеокарта: gtx 750 ti (2 гб)
Жд: 1 тб
Собирали за 40 к в 2015
-
.Мне лень писать пост, так что читайте заголовок!
-
работает! спасибо!!!
-
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
-
В игре можно продать вещь любое здание например за 700 $ можно в памяти игры подменить значение 700 на 1000000 чтобы продавалась за 100000 $ в памяти нечего не нашел ставил брейкпоинт на запись и продал здание нашло 1 функцию ставил на неё брекпоинт и в регистрах не нашел значение 700$ Помогите нечего не получается(( я нуб
-
2 часа назад, partoftheworlD сказал:
ищи текст сообщения в экзешнике и выше по коду смотри условный переход, меняешь условие, чтобы никогда ошибки не было и все.
Не получается(( нету условного перехода
-
26 минуты назад, partoftheworlD сказал:
Скорее всего где-то пакеты сравниваются перед отправкой, либо обойти ошибку, либо подменять пакеты.
Интересно как это сделать =))
-
Играю с другом по хамачи в Generals Zero Hour,но почему то выскакивает ошибка "Игра обнаружила несоответствие.Это значит,что коллективная игра потеряла данные синхронизации между игроками"
Когда я накручиваю себе $. Как это можно обойти?
-
1 час назад, LIRW сказал:
Не нашел пробывал много раз делал как ты, всё что я нахожу так это адрес той визуальной хрени
-
вот собираюсь на днях со своим братом поиграть)) по локалке по кабелю
-
А ты знаешь почему кикает если менять значение денег в онлайн по локалке? а за быстрое производство юнитов будет кикать?
-
10 минуту назад, LIRW сказал:
Поправил ссылку. Игра такая же как и у тебя ведь. У тебя просто мод. Я его искал, но не нашел, а другие предложения качать с каких то левых сайтов - не очень охота. Я вот на этой игре показал тебе - принцип работы такой же. Только есть одно НО. Я на карте наверное нахожусь один, а вот если будут противники, наверное надо будет делать фильтр, а то они тоже будут строить так же быстро свою технику. В общем сам посмотришь, тебе же был нужен только адрес, а далее уже сам разберешься. Да и на видео скрипт уже мой, я просто что бы не тянуть время и сделать видео максимально коротким, сначала нашел сам адрес, потом сделал и проверил это дело, а потом только тебе по новой показал.
Спасибо тебе!!!
-
сек
-
s41.radikal.ru/i093/1606/9a/726c2f9b4dce.png
-
1 час назад, LIRW сказал:
Так это адрес поди нашел не тот, а адрес самой вот этой вот графической полоски - визуальный. В какой то части помню (когда то смотрел подобную игру) так там на каждого юнита выделялся новый адрес. Вот полоска дошла до конца и игра на следующего юнита выделяла новый. Ты вот как попробуй. Спидхаком уменьши скорость игры и ищи и ищи не только увеличилось, но и уменьшилось. Фиг его знает, уменьшается он или прибавляется, а ты ориентируешься только глядя на эту полоску.
В общем щас попробовал на "Command and Conquer - Generals Zero Hour" там значение 4_ох байтовое. И оно не какое не стандартное - оно после постройки выглядит как в обще левое какое то. Если строить трактор то значение 356 когда уже построено и 0 от старта строительства. Щас если игру сверну то покажу.
А оконный режим и делать не надо -Бандикам снимает как бы из нутри даже в полно экранном захватывая его как то.
Смотри что то нашел что получает доступ к этому визуальной штуки
-
Помогите взломать эту игру на быстрое производство юнитов,когда меняю значение таймера с 10 на 80 оно опять же выставляется на 10
Видео
Помогите с игрой Neighbours from Hell (как достать соседа)
in Общение
Опубликовано
Мм..)) не умею так находить