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

GodGame

Стажёры
  • Постов

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

  • Посещение

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

  1. Уже второй хочет что-бы программа была на одном уровне с такими гигантами как OLLY и др

    Очнитесь! это просто сканер памяти, с простеньким отладчиком для замены пары инструкций, и генератором трейнеров с простеньким функционалом.

    Если вам нужно что-то серьезно дебажить, трасировать и тп, для это-го и сущиствуют такие программы как OLLY.

    Половине пользователей даже возможностей ArtMoney хватает, без всяких там отладчиков.

    По правде сказать за 14 лет разработки, можно было целый супер комбаин создать по читингу, дак нет, ограничелись только сканером памяти ну и пару плюшек в числе отсева по формуле. И ничего народу нравится.

    Andrey, учту :)

    5) Когда я работаю в окне редактора скриптов, я не могу видеть другие окна. Ни дизассемблер, ни сканер памяти. Т.е. мне надо постоянно перемещать между окнами, когда мой монитор позволяет разместить отдельные окна и видить и работать с ними. Это довольно не удобно.

    Ну это уже Cheat Engine получится, я специально делал так, что-бы окна не перекрывались.

  2. Andrey, дело в том что у тебя смешались две не зависимых между собой реализации.

    Та реализация что с демо скином и тремя кнопками, не имеет в себе поддержки скриптов. Там можно только задать горячии клавиши и байт код, который запишется по определенному адресу при нажатии на эту клавишу.

    А скрипты не имеют возможности генерации в исполняемый файл, их можно запускать только из программы, вся работа происходит под капотом GodGame.

    Не уже ли ассемблер и и дизассемблер могут вместиться в 74кб-ный трейнер?

    Конечно могут. Трейнеры пухнут в первую очередь из за графики, и реализации GUI. Вспомним Delphi при добавлении юнита Form размер увеличивается с 15кб до 450кб.

    Эти функции работают с SIMD инструкциями, т.е. с инструкциями типа movsd и т.п.?

    o_0 немного не понял о чем идет речь. Есть таблицы, мнемоник и опкодов, на них и завязына вся работа. Можно посмотреть реализацию в исходникак CheatEngine.

    Работают ли эти функции с 64-разрядными приложениями? Вроде я читал что не работают.

    Пока нет, но будут (я надеюсь) как я перейду на Delphi XE2.

    Будут ли события в инспекторе объектов для формы?

    Хз... надо посмотреть что можно сделать.

    Ты бы что ли тутор сделал бы на своём сайте по созданию простого трейнера с демо-скином. А то я не знаю. Демо скрипт есть, демо скин есть, а как они связаны не понятно. Я ещё еле угадал как кнопки разместить на форме демоскина.

    Дело в том, что я не умею хорошо объяснять (писать туторы), да и времени на все не хватает.

    Вот думал keng поможет http://forum.gamehacklab.ru/topic/1002-%d0%b4%d0%b5%d0%bb%d0%b0%d0%b5%d0%bc-map-hack-%d0%b4%d0%bb%d1%8f-warcraft-iii/page__view__findpost__p__5656 ан нет, не понравилась ему моя программа :)

  3. gg_obj.png

    • Доработан инспектор объектов, теперь отображаются все свойства компонента, так-же стало возможным назначать собития.
    • Из списка меню компонентов, убранны лишние компоненты которые нельзя создавать для дизайна.
    • Добавлены новые функции для скриптов: (Assemble, ReadPtr, WritePtr, Scan, ScanToList). Пример использования можно посмотреть в папке ("Demo\Script.gst").
    • Исправленны небольшие недочеты.

    Скачать http://my-soft.ucoz.ru/prog/GodGame_v1.4.1.zip

  4. Если кто покажет данный код более облегченно на c# ,будем обсуждать.

    Ну как-бы я выше написал как можно упростить функцию PointerRead, с PointerWrite практически аналогично, единственное типы у переменных надо доработать.

  5. ZOCKIR, помоему все усложненно, особенно Pointer(Read/Write) я правда на C# не писал, не знаю как там с типами (в частности с указателями), но примерно так.


    public byte[] PointerRead(IntPtr MemoryAddress, uint bytesToRead, int[] Offset, out int bytesRead)
    {
    int iPointerCount = Offset.Length - 1;
    int ptrBytesRead;
    int buffer = new byte[bytesToRead];

    for (int i = 0; i < iPointerCount; i++)
    {
    GmeHackLab.ReadProcessMemory(m_hProcess, (IntPtr)MemoryAddress, (IntPtr)MemoryAddress, 4, out ptrBytesRead);
    MemoryAddress += Offset[i];
    }

    GmeHackLab.ReadProcessMemory(m_hProcess, (IntPtr)MemoryAddress, (IntPtr)buffer, bytesToRead, out ptrBytesRead);
    return buffer;
    }

    Вот так бы это выглядело на Delphi


    procedure ReadMemory(Address: Pointer; Offsets: array of Word; Buffer: Pointer; Size: Integer);
    var
    I: Integer;
    bytesRead: Iteger;
    begin
    for I := 0 to High(Offsets) do
    begin
    if ReadProcessMemory(h_Process, Address, @Address, bytesRead) then
    Inc(Address, Offsets[I]);
    end;
    ReadProcessMemory(h_Process, Address, Buffer, Size);
    end;

  6. нет более расширенных возможностей дизайнера форм

    Ну все впереди :D работаю над этим.

    не поддерживает ассемблерные скрипты, конечно хотелось, чтобы поддерживала

    FLS, Посмотрим что можно сделать.

    часто вылезает такое окно с ошибкой

    ZOCKIR, Можно подробнее, после каких действий, ну там при поиске, при работе в отладчике или в скриптах ???

    В ошибках указано что у меня 2048 памяти, хотя на компе больше

    Магия однако :) будет время посмотрю в чем там трабла.

  7. Ну что-же, потихоньку работа идет.

    Теперь в скриптах можно так.


    //------------------------------------------------------------------------------
    // Запись в память через указатель --- абстрактный пример ----------------------
    //------------------------------------------------------------------------------

    procedure WriteProcessClick(Sender: TObject);
    const
    Ptr = $00401000; // Указатель
    begin
    // Теперь что-бы не писать так:
    // Addr := ReadInteger(Ptr);
    // Addr := ReadInteger(Addr + $F4);
    // Addr := ReadInteger(Addr + $A0);
    // WriteProcessMemory(Addr, HStr('FF 00 00 00'), 4);

    // можно все заменить одной функцией
    WritePtr(Ptr, [$F4, $A0], HStr('FF 00 00 00'), 4); // Пишем в память
    end;

    //------------------------------------------------------------------------------
    // Выполнить свой код в чужом процессе
    //------------------------------------------------------------------------------

    procedure CallRemoteFuncClick(Sender: TObject);
    const
    Msg = 'GodGame'#0'CallRemoteFunc';
    var
    AllocMem : Pointer;
    AllocStr : Pointer;
    Code : string;
    AddrMB : Pointer;
    begin
    // Выделяем память в открытом процессе
    AllocMem := VirtualAlloc($1000);
    AllocStr := VirtualAlloc($1000);
    AddrMB := GetProcAddress('MessageBoxA');
    // Внедряем строку в открытый процесс
    WriteProcessMemory(AllocStr, Msg, Length(Msg));

    // Создаем ассемблерный код
    // --------------------------------------------------
    Code := Assemble(['push 0',
    'push ' + IntToHex(AllocStr, 8), // Адрес строки GodGame
    'push ' + IntToHex(AllocStr + 8, 8), // Адрес строки CallRemoteFunc
    'push 0',
    'call ebx', // ebx - адрес MessageBoxA
    'ret']);
    // --------------------------------------------------

    // Внедряем код в открытый процесс
    WriteProcessMemory(AllocMem, Code, Length(Code));
    // Запускаем наш код
    CallRemoteThread(AllocMem, AddrMB);
    end;

    PS: Народ! не ужели никто кроме MasterGH программу не смотрел :( или нечего сказать ? Пишите, может какие замечания предложения есть, да и вообще общее впечатление о программе.

  8. В как бы Инспекторе объектов очень не достаёт обработчиков событий

    Планируется в будущих версиях, возможно даже будет реализованно: при изменении свойств в инспекторе, они будут сразу изменятся и в редакторе кода, а не как сейчас, только копирование в буфер.

    Хорошо бы иметь возможность встраивать ассемблерный код или ассемблерный скрипт, а не байты как в этом примере:

    Не вопрос, будет в следующей версии.

    Может быть я плохо смотрел, вроде нет функций для работы с отладчиком, сканером памяти...

    Нет зрение не подвело :-D действительно пока таких возможностей нет, решаю пока как лучше реализовать, в виде классов или просто функций ?

    Программа наверно будет в будущем платная, как я понял из соглашения дистрибутива

    Нет, хотя! если добавить фич, перевести на английский язык, написать развернутую справку то... Все-же нет, не будет, по крайней мере в обозримом будущем.

    Просто мне надо поюзать её как-нибудь

    Обязательно :)

  9. Вышла новая версия 1.4

    gg_dissasm.png

    gg_script.png

    Список изменений:

    Версия 1.4.0.0 - 18.11.2011

    • Добавлена поддержка и поиск многоуровневых указателей, то есть ("Указатель на указатель").
    • В отладчик добавлена возможность трассировки и установки своих точек прерывания, так-же добавлено окно стека и редактор памяти.
    • Добавлен скриптовый язык, с синтаксисом Object Pascal. Пример использования можно посмотреть в папке ("Demo\Script.gst").
    • Добавлен встроенный формульный калькулятор. Теперь в поле поиска значения, можно вводить математическую формулу, поддерживаются все математические операции что и в скриптах, например, (2+2*3) shl 2, и программа будет искать результат формулы, то есть 32. Удобно использовать, если вы знаете, как кодируется значение в игре. Например, 100 жизни может хранится как - 100 xor ("число").
    • Добавлен конвертер величин.
    • В ("редакторе памяти") улучшен поиск, так-же теперь можно копировать и вставлять массивы байт.
    • Заменена иконка программы.
    • Исправлен серьезный баг! не находился не один адрес при отсеивании.

    Версия 1.3.0.0 - 18.08.2011

    • Добавлен новый тип поиска ("Строка").
    • Добавлен новый тип поиска ("Массив байт").

    Версия 1.2.0.0 - 08.08.2011

    • Добавлены новые настройки "Использовать свои функции для доступа к памяти". При задействовании данных функций, GodGame использует свой сервис для работы с памятью, тем самым, обходя все возможные защиты памяти. Использовать в случае, если GodGame не может открыть процесс или прочитать память процесса. платформа (x86)

    Скачать http://my-soft.ucoz.ru/prog/GodGame_v1.4.zip

  10. MasterGH, Да скрипты планируются в будующих версиях, только в каком виде пока не решил...

    На всех указанных адресах при условии WHERE будет создана инъекция ADDNEWASSEMBLE

    Фишка интересная обязательно учту.

  11. Давненько вышла уже более функциональная версия, прошу заценить, принимаю конструктивную критику, пишите чего не хватает, чего хотелось бы.

    История версий

    Версия 1.1.0.0 - 27.07.2011

    • Добавлено окно приветствия
    • Теперь программа работает и на Windows 7
    • Добавлен Поиск комманд в окне отладчика
    • Изменена цветовая схема в окне отладчика
    • Теперь статичные адреса помечаются другим цветом
    • Изменен диалог Выбор процесса, добавленна опция: не показывать системные процессы и показывать процессы только с окнами, сортировка процессов, иконки для процессов.
    • Добавлен специальный манифест для меньших конфликтов с системой защиты UAC
    • Заменены некоторые иконки в программе
    • Убранны за ненадобностью некоторые пункты меню
    • А также исправлены небольшие ошибки и недочеты

    Версия 1.0.0.0 - 5.05.2011

    Первая полноценная версия добавленно очень много, вот некоторые из добавленных возможностей:

    • Добавлен Отладчик для продвинутых
    • Speed Hack
    • Вызов удаленных функций
    • Внедрение своих DLL
    • Поиск неизвестного значения
    • И много много других исправлений

    gg_main.png gg_dissasm.png

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

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

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