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

MasterGH

Ветераны
  • Постов

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

  • Победитель дней

    129

Весь контент MasterGH

  1. Создание формы на WinAPI: Lazarus IDE - v0.9.28.2 Beta Free Pascal - v2.2.4 {$APPTYPE GUI} Program Api; {$MODE DELPHI} uses windows, messages; var window:TWndClassEx; Mwindow: HWND; Mmsg: MSG; function WindowProc (wnd: HWND; msg: integer; wparam: WPARAM; lparam: LPARAM):LRESULT;STDCALL; begin case msg of WM_Destroy: begin PostQuitMessage (0); Result := 0; Exit; end; else Result := DefWindowProc(wnd,msg,wparam,lparam); end; end; begin window.cbSize := sizeof (window); window.style := CS_HREDRAW or CS_VREDRAW; window.lpfnWndProc := @WindowProc; window.cbClsExtra := 0; window.cbWndExtra := 0; window.hInstance := HInstance; window.hIcon := LoadIcon (0,IDI_APPLICATION); window.hCursor := LoadCursor (0,IDC_ARROW); window.hbrBackground:=Color_BtnFace+12; window.lpszMenuName := nil; window.lpszClassName := 'Main_Window'; RegisterClassEx (window); Mwindow := CreateWindowEx(0,'Main_Window','First_WinAPI_Programm', WS_OVERLAPPEDWINDOW,100,100,300,300,0,0,Hinstance,nil); SHOWWINDOW (Mwindow,SW_Show); while GetMessage (Mmsg,0,0,0) do begin TranslateMessage (Mmsg); DispatchMessage (Mmsg); end; end. Этапы работы "напильником": 1) 63 КБ не в сжатом виде (23 КБ - упакован в архив .rar) 2) Удалив отладочную инфорамцию батником: cd lazarus D:\SOFT\lazarus\fpc\2.2.4\bin\i386-win32\strip.exe --strip-all project1.exe Получаю 38 КБ(17 КБ - упакован в архив .rar) 3) Открываем "Проект -- Параметры компилятора -- Код" Ставим галку напротив "Умное связывание (-CX)" Переходим на вкладку "Связывание" и убираем галку напротив "Выдать номера строк в ошибках времени исполнения (-gl)" Тут же ставим галку напротив "Вырезать символы из бинарника (-Xs)" - эту же самую функцию выполняет утилита strip. Тут же савим галку на "Умное связывание (-XX)" Жмем "Ок" и компилируем проект по новой. Получаю 28 кб (13 КБ - упакован в архив .rar) Выполнял по статье ------ Но последние обновления (я их ещё не установил): 2009-10-25 lazarus-0.9.28.2-fpc-2.2.4-win32.exe (64.6 MB) 13.11.2010 Вышел релиз Free Pascal v2.4.2 Я думаю, даже если бы я установил обновления, то размер бы вряд ли бы уменьшился. Пока вывод: Получаю 28 кб (12 КБ - упакован в архив .rar) Я не использовал пакеры, так что кому надо тот сам сделает. Файл для исследования (секций и дизассемблерного кода) в аттаче: 3) project1.rar
  2. Нормальная статья. Её поймут только те, кто делали хуки на COM бъекты. Я правда не совсем понял зачем автор ставит бряки больше одного раза, когда можно было обойтись одним. Хотя может я и ошибаюсь, т.к. на память не помню описания DirectX-интерфейсов и инициализацию устройства... Если будет время, то я почитаю повнимательнее эту статью. А вообще автор статьи неправильно поступил описывая подробности как и что делать в OllyDbg без рисования сначала общей картины как он собирается вытаскивать указатель и из какой представляемой "логики кода" на коде С++ он собирается вытащить, и вообще какова логика кода стандартной инициализации устройства, и по каким смещения каких интерфейсов находятся методы возвращающие те или иные объекты... Будет время я прокомментирую эту статью нормально с примерами.
  3. Народ, для того чтобы написать статью о компиляции CE6.0 нужна инфа по компиляции Lazarus после получения его исходников из SVN. Кто знает напишите ) А всё сам сделаю как будет время. Я уже нашёл информацию как компилировать Лезаруса.
  4. Lazarus - свободно распространяемая IDE для компилятора Free Pascal Compiler, среды для разработки кросс-платформенных приложений на языке Free Pascal. Содержит набор визуальных компонентов LCL (Lazarus Component Library). В настоящее время практически полностью поддерживает виджеты GTK1 и Win32 . В разработке находятся виджеты Carbon, WinCE и WinAPI. Начиная с версии 0.9.26 поддерживает виджеты GTK2 и Qt Реализован основной набор элементов управления Поддерживает преобразование проектов Delphi Имеет собственный формат управления пакетами Поддерживаемые ОС: GNU/Linux, Microsoft Windows, Mac OS X, FreeBSD, WinCE Как уменьшить размер EXE файла в Lazarus Любой, даже небольшой проект в Lazarus, при компиляции создает EXE файл большого размера. Это связано с тем, что компилятор добавляет большое количество информации для отладчика. Когда это информация становится ненужной (например, после окончательной отладки программы) ее можно удалить. Рассмотрим этот процесс на примере простой консольной программы, выводящей строчку "Hello, World!". Создаем новый проект: Файл ? Создать ? Project ? Console application. Добавляем строчку Write('Hello, World!'); после строк "{ add your program here }" в подпрограмме TMyApplication.DoRun. Теперь запускаем программу. Все, что она делает - это выводит строку текста в консольном окне и при этом занимает 1 154 845 байт (в случае приложения под Виндоуз размер может быть выше 11 МБ). Начнем уменьшать размер. Первое, уберем информацию для отладчика из исполняемого файла: strip --strip-all project1.exe (здесь project1.exe - имя вашего бинарного файла). Новый файл project1.exe имеет размер 141 312 байт, т.е. в 8 раз меньше. Но на этом мы не остановимся. Проведем еще один шаг уменьшения размера исполняемого файла с помощью бинарного упаковщика UPX. Команда для полного сжатия следующая: upx.exe --best project1.exe (упаковщик UPX должен лежать в той же папке, что и сама программа или же можно прописать путь в PATH до папки, где проинсталлирован упаковщик). В результате получим размер 54 272 байт, т.е. в 21 раз меньше первоначального размера. Отметим, что порядок выполнения команд важен. Если запустить упаковщик, а потом команду strip, то результат будет значительно хуже (416 541 байт). Для удобства вы можете создать пакетный командный файл compile.bat со следующим содержанием (подставив вместо project1.exe имя вашего исполняемого файла): strip --strip-all project1.exe upx.exe --best project1.exe Теперь, для того, чтобы уменьшить размер исполняемого файла достаточно просто запустить файл compile.bat. Автор статьи: Ильдар Насибуллаев.
  5. Новые изменения на форуме: 1) У пользователей группы "Разработчики" восстановлены рейтинги от минусовых рейтингов которые ставили бестолковые пользователи (в частности несчастные спамеры); 2) Теперь только привилегированные пользователи могут ставить рейтинг. В данном случае это право заслужили "Разработчики". Может быть позже будет ещё одна группа для постояльцев, которые также могли бы оценивать рейтинг, т.е. уровень. 3) Только что зарегистрировавшиеся пользователи проходят премодерацию сообщений какое-то время, после чего премодерация снимается. Это значит, что какое-то время Новые пользователи будут ждать когда их сообщения опубликуется. Когда пользователей будет очень много возможно администрации понадобятся помощники - супермодераторы и модераторы. От администрации: Xipho и MasterGH Мы ценим каждого нормального пользователя на нашем форуме. Спасибо за то, что вы с нами. Этот форум для вас и для нас.
  6. Эта тема будет для тех кто желает изучить программирование и кому это всегда казалось очень сложным. Я случайно нашёл идеальный вариант для вас: стильный, упрощенный и в то же время мощный, с описаниями на русском языке вариант - программирование на Small Basik. Ссылки которые я опубликую содержат настолько разжёванную информацию, что она позволит понять необходимые основы программирования и понять как учить язык программирования. Точнее не "учить", а воспринимать и понимать. 1) Программа "Small Basic" 2) Руководство "С чего начать" (.pdf) 3) Сайт "Small Basic" 4) Детский уголок вундеркиндов: Учебники по программированию Я несколько лет занимаюсь программированием и могу сказать, что в первую очередь для понимания "как заставить компьютер делать, то что вы хотите" нужно изучить самый простой язык программирования с доступным описанием, с хорошими примерами. Изучив один язык Вы сможете изучать другой вспоминая как вы изучали предыдущий. Поставьте для себя цель "написать некоторую программу" читайте и ищите примеры и тогда у вас в голове будет прояснятся каким образом достичь цели. Напишите вашу первую программу: s = "Привет, МИР!!!" TextWindow.WriteLine(s) А вот интересный пример который будет ближе к концу руководства: GraphicsWindow.BackgroundColor = "Black" GraphicsWindow.PenColor = "LightGreen" DrawTree() Sub DrawTree If (distance > 0) Then Turtle.Move(distance) Turtle.Turn(angle) Stack.PushValue("distance", distance) distance = distance - delta DrawTree() Turtle.Turn(-angle * 2) DrawTree() Turtle.Turn(angle) distance = Stack.PopValue("distance") Turtle.Move(-distance) EndIf EndSub Я посмотрел функционал этой программы. В общем довольно скудный функционал. Но вот что есть из функций, что очень не плохо; - математические функции - работа со строками и текстом (класс Text, работа в консоле TextWindow) - работа с массивами, списками (Stack, ImageList) - работа с файлами - работа с удалёнными соединениями, сетевыми методами (можно загрузить содержимое страницы, отфильтровать её содержимое, проанализировать, воспользоваться службой Гугль по составлению например графиков, получить график и сохранить как файл) - работа с графикой (ImageList, Shapes и т.п.) - работа с мышкой - поддержка определения командной строки - работа с часами - работа с рабочим столом - работа с Интернет-словарём - размещение фотографий на сервисе Flick - Класс Program (методы для работы с программой) - Работа со звуками Класс Sound - Работа с таймером класс Timer - Черепашка Turtle готова выполнить ваши издевательства. Вот и весь очень скромный набор этой программы. К сожалению здесь нет создания GUI элементов (кнопок, менюшек и т.п.) у окна формы. Кому надо больше, обратите внимание на следующие продукты (именно в таком порядке): Visual Basic 2010 Express (новичкам будет тяжело...писать трейнеры можно по статьям) Visual C# 2010 Express (точно не для новичков...писать трейнеры можно по статьям) Visual C++ 2010 Express (точно не для новичков; если будите писать трейнеры, то только по статьям которые найдёте и то у вас будет очень много вопросов) Для веб-разработок: Visual Web Developer 2010 Express Другие инструменты в зависимости от ваших интересов найдёте сами. Я привел бесплатные урезанные среды разработок (возможно без ограниченных сроков) в которых вы можете писать куда более продвинутые программы. Например, вы можете: создавать пользовательский интерфейс, а для гурманов взаимодействовать с программами из пакета Офисных программ: Ворд, Ексель и другие. Взаимодействовать с базами данных... Но у всех этих программных продуктов есть один недостаток, скорее это достоинство. Огромная документация, просто огромнейшая документация MSDN на русском языке для C# и Visual Basic.net. Если вы выберите C++, то пока не разберётесь с WinAPI, то ничего не напишите ) Потом ещё придётся разобраться с архитектурой Windows... Есть и другие языки программирования типа Дельфи (язык Паскаль)... сами решайте что вам легче
  7. Хотел бы узнать в чём у тебя возникла сложность сделать бесконечное здоровье в "Xenus 2: Белое золото"?
  8. Недавно вышла статья про обход Xlive - ссылка. Например, там вы увидите следующее. Для того чтобы узнать какой код xlive проверяет сохранность кода игры, вы должны поставить "аппаратный бряк на доступ" на игровой код (подробности в статьи с видео)
  9. За это не стоит благодарностей. Я поднял за твоё умение писать сложные скрипты.
  10. Оказался ты 1800 годах в России и понадобилось тебе из Москвы в Париж... На велосипеде можно доехать из Москвы до Парижа. На лошади можно доскакать... На машине можно доехать из Москвы до Парижа. На поезде можно доехать... На самолете можно долететь из Москвы до Парижа. В конце концов можно и пешком дотопать если очень долго идти. Но самолётов тогда не было, машины были медленные... животное тебе нужно достать и на поезд не сесть. Машину достать проблема. На велосипеде как и пешком долго добираться. Но вот тебе подарили самую скоростную электронную машину с маркой LUA со сложной инструкцией. И ты всем сказал "да зачем она мне нужна, я эту инструкцию буду читать полмесяца, возьму я лучше велосипед и поеду на нём в Париж..." Так и уехал Akama в Париж на велосипеде с маркой Asm...
  11. От администрации выражается благодарность Grom-Skynet за его гиперактивность в содании трейнеров и выкладывании их на форум. Ему повышен уровень.
  12. Сейчас нет. Можно будет, если Дарк Байт сделает в будущем. Вроде, он писал что сделает.
  13. Попробуй так: _OneHitKill: push eax mov eax,[deadspace2.exe+01CB6918] mov eax,[eax+1EC] mov [pHero],eax pop eax pushfd cmp dword ptr [iOHK],1 jne _ExitOHK cmp [pHero],edi je _ExitOHK mov [edi+000000E8],0 movss xmm0,[edi+000000E8] jmp _BackOHK _ExitOHK: popfd movss [edi+000000E8],xmm0 jmp _BackOHK Если не работает, то скорее всего по указателю [[deadspace2.exe+01CB6918]+1EC] проскакивает указатель на твоего героя и на других или другие указатели... Но может быть я ошибаюсь.
  14. Можно открывать таблицу скриптов двойным щелчком мыши и после этого запустится CE. В зависимости от твоих настроек запустится LUA-скрипт: либо автоматически, либо с запросом о твоём подтверждении. Далее в LUA скриптах можно написать программу скрыть CE и отобразить форму "Трейнера". Таким образом CE не будет мазолить глаза. У LUA-скриптинга для пользователей и для создателей читов есть свои плюсы и минусы. Основной плюс это сверхмалый размер LUA-трейнера для каждой отдельной игры. Точные цифры приводить не буду, сами посмотришь. Плюсов у LUA-скриптинга очень много в потенциальных возможностях: автономное исследования кода игры, GUI-отображение данных, GUI-управления через события, LUA-связь с записями в таблице CE, ассемблирование, ассемблирование посредством автоассемблера, загрузка dll-ко в процесс игры, извлечение отладочной информации... доступ практически к любым уголкам операционной системы и т.п. ... Раньше бы для этого Вам пришлось бы писать много кода на языке программирования под Windows, а теперь это у Вас всё на ладони в LUA-скриптах с доступными API для CE описанными в справочном руководстве CE. С помощью LUA Вы можете нагляднее и проще управлять поведением игры и её игровыми объектами чем если бы это делали только автоассемблером. LUA хороший инструмент наглядно показывающий логику кода... иногда его неявная типизация тоже имеет свои плюсы, некоторый его синтаксис тоже хорош. Но всё-таки у LUA есть проблемы они касаются привидения типов - например если читать данные через readBytes, то придётся постараться чтобы привести возвращаемый массив байтов к типу Word... Можно сделать форму для трейнера. По вопросу чтобы "что-то чем-то заменить" я не понял. Можно реализовать. Если в программировании не селён, то можешь только искать уже готовое решение. А если решишь, то можешь нчать с поиска примеров в Интернете написаний программ на DirectX на VC++ для новичков и с поисков другой информации. Есть готовые библиотеки которые помогут написать direct-x интерфейс меню... Есть статьи по работе с directx чужого приложения... Если ты в это во всё вникнешь, то сможешь реализовать свою идею в LUA-скриптах...
  15. Ничего плохого в том чтобы можно было менять имя не вижу. _ В раздел "Наши Реализы" добавлен форум "Таблицы и скрипты"
  16. Напиши подробнее. 1) Рабочий адрес какого параметра ты нашёл? 2) Какая у тебя цель, что ты хочешь сделать? 3) Толком сформулируй чем тебе помочь.
  17. Akama, для выявления ошибок предназначен отладчик и он тебе покажет на все твои ошибки. От тебя требуется время и умение ставить брейкпоинты, выполнять пошагово инструкции, следить за регистрами, и использовать логическое мышление - больше ничего не требуется.
  18. Сложно что-то подсказать. Если бы ты описал подробно что делал, то может быть можно было дать совет. Не всегда и не все будут устанавливать игру чтобы помочь, дав готовое решение... Вместо TSearch(дизассемблирует не правильно) используй CheatEngine. Читай статьи.
  19. Обработка нажатий клавиш в трейнере. Есть множество способов определить какие клавиши были нажаты и если была нажата определённая или определённые, то выполнить какой-то код трейнера. Обычно в таких целях принято пользоваться GetAnsyKeyState помещая его в процедуру цикла обработки сообщений трейнера, также можно воспользоваться акселераторами. Но возможно теоретически "сообщения" о нажатых клавишах могут не дойти до этой процедуры потому что код процесса игры, который написали разработчики уберёт события о клавишах из системной очереди сообщений... или же например будет включен "монопольный" режим обработки клавиш. Т.е. если вы нажмёте на определённую клавишу, трейнер работать не будет. Команда Cheathappens стала использовать directx input хук(и) перехватывая события от клавиш клавиатуры. Не буду писать как я об этом узнал... Короче говоря стоит взять на заметку использовать directx input. Этот метод и есть выход из той ситуации которую я описал выше. Пример:
  20. MasterGH

    JustCause

    Версия игры 1.0; версия трейнера 1.0; +2; дата создания 11.12.2009 Описание: 1) Здоровье 2) Патроны Трейнер + таблица CE5.6: TrainerJustCause.rar Дополнительная информация:
  21. Исправил статью. Вытащил теги [TEXT], картинки залил на форум. Встретите ещё теги [TEXT] пишите мне в личку с ссылкой на сообщение и я поправлю.
  22. Надо ему это или нет (я без понятия), звать его сюда или нет это всё обсуждения не этой темы
  23. Тема. Собрание хороших статей по CE 1) Новый тутор про трейсер для CE (англ) - ссылка 2) Другие статьи с того же ресурса (ссылка) Тутоторы о том как писать сложные скрипты на автоассемблере от самого Recifense - автора небезызвестного для постояльцев на cheatEngine-форуме, пишущего очень объёмные скрипты на Автоассемблере. Тутор "Cheating Galactic Civilization 2 (V1.0)": 1) Часть 1; 2) Часть 2; 3) Часть 3. Кстати в своём первом туторе Автор призывает найти ссылку на "IA32_SDM_Vol2A.pdf" - документ в котором можно посмотреть описания ассемблерных инструкций. Этот документ 2007 года. Новый, вы можете найти по поиску "Intel® 64 and IA-32 Architectures Software Developer’s Manual"
  24. Просьба ко всем авторам трейнеров корректировать ссылки на ваши трейнеры, т.к. с течением времени файловые обменники удаляют ваши трейнеры. Чтобы вам не приходилось постоянно заниматься перезаливанием трейнеров на сторонние хостинги все авторы трейнеров входят в группу разработчиков у которых есть возможность аттачить файлы (заливать их прямо на сервер форума).Успехов! p.s. Авторы, имейте ввиду, что когда-нибудь администрация может удалить темы с не корректными ссылками, чтобы пользователи не тратили своё время по клику битых ссылок. Пока этого не намечается... во всяком случае любите порядок и пишете администрации если вашу тему нужно почистить от сообщений пользователей (свои сообщения авторы могут сами удалить)
  25. MasterGH

    Timmy Trainme

    Нет там никаких объектов. Там структура из 8-ми байт перемещается по выделенной памяти, которая то создаётся, то разрушается. В её первых 4-байтах содержится зашифрованное число1 из трейнрми по xor константе, во вторых 4-х байтах содержится число2 (он тоже зашифровано и равно "указатель на память в которой находится структура"+ "зашифрованное число" ). Где-то так, возможно я не прав. Когда ты нажимаешь на кнопку в функции1 вычитается единичка от числа2, затем в другой функции2 создаётся новая память, в неё перемещается структура с обновлением данных. Механизм я описал, а дальше сами. Вообще если хотите моего мнения, то почти ни в одной игре не будет такого шифрования, а если будет попадётся, то тогда будите ломать голову. Я же писал трейнми (в этом разделе) который был похожий на игровой код с гораздо большей вероятностью (про объектные типы шаблона vector<T> из стандартных библиотек). А этот трейнми скорее "исключение чем правило" для любителей экзотики, написанный на MASM/TASM.
×
×
  • Создать...

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

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