-
Постов
321 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные live_4_ever
-
-
Блин((9 Ну зачем это надо было!?
Ээээээххх...Жалко. Старый лучше был. Мечтал что хоть если будет на IPB.., но не такой ведь. Хмм...и че все уже? Так на всегда?
Тем более много тем и постов нету!
-
Отличная статья! Только есть одно но! Она на английском. Пока...Я сейчас перевожу ее. Но думаю это будет не скоро. Поэтому если кто хочет и понимает может пока на англ. почитать. Может кому понадобиться...
Сохранить позицию/Отменить позицию (Телепорт)
Save/Restore(Teleport) - 08-19-2006, 03:15 AM
________________________________________
Subject: Save Restore (Teleport)
Game: Bloodrayne 2 Demo
Tools Needed:
Memory Searcher(i used cheat engine,tsearch has problems with this game)
Debugger( I used softice but you can use whatever you want)
************************************************** ********
................Introduction
Step 1..........Find Health and getting our structure
Step 2..........Finding our players coordinates
Step 3..........Code Injection
Step 4..........Code into the trainer
************************************************** ********
Introduction
------------
Basically we are going to do a save restore option for bloodrayne2 Demo. What this option does is you can press one key to save a position in the game then another key will teleport you back to that same position. You should have good training skills if you plan on doing this tutorial(searching,debugging,ect). Ill try and go into as much detail as i can, but if you follow all the steps you should have no problem doing this option correctly. On with the tut.....
************************************************** ********
Step 1: Find Health and getting our structure
---------------------------------------------
Ok I am sure you know how to search for your health. If you don't get out of here . Ok now you found your health address. What we want to do is get all of our pointers because we are going to use one of them to do our injection. So...
CTRL+D into softice...
bpm ADDRESS press enter...
Press F5 and softice will break...
Write down the address it breaks at...
Keep hitting F5 and write down all the addresses, and pointers you break at until they start repeating...
This is what I ended up with
5BE285 : PUSH [EBX+39C4]
5BE2B5 :
5BE2D1 :
5BF30A :
There are a lot more but we really only need on of them. Next you want to go threw and set a execution breakpoint on them one at a time and watch the structure inside the pointer and make sure it never changes so you know that pointer is only reading your health, so....
bpx 5BE285 press enter....
F5 and softice will break...
Keep hitting F5 and watch the structure inside 5BE285 witch is EBX(up in the register window), and if it never changes its just for us (witch it don't). This is the address we will be using for our teleport option...
5BE285 : PUSH [EBX+39C4]
Ok you should know how most games work...Your players,weapons,items,ect have there own structures. So inside your player structure will have everything containing your character. So now to get the coordinates.
There are a lot of ways to finding these. A lot of people will take the long approach(using a mem searcher,blah), witch doesn't always work. The quick and easy way is to use the players structure, because they are usually
stored at the top of the structure(if not there there down in the structure somewhere). Health is stored in the player structure. This pointer PUSH [EBX+39C4], EBX is the beginning of the player structure, so whenever
the game needs to get something for your player they just add a value to EBX, for instance your health is [PlayerStructure+39C4]. Your power might be [PlayerStructure+34] or whatever. That's all I am going to explain
on that matter I hope you understand.
Ok now to get the coordinates... We need to set a execution breakpoint on our health pointer and dump our structure, so....
bpx 5BE285 press enter...
Hit F5 and softice will break...
d EBX press enter...
Now up in the dump window the first address will be our player structure. Now all you want to do here is watch the bytes. You are watching for 4 bytes in a row that only change when your player has moved. So I go into
softice and watch a line at the top..I remember what the bytes looked like or you can write them down..then move your character a few steps go back into softice and look for 4 bytes that have changed..your coordinates will
be store in 4 bytes and there are 3 of them x,y,z.. And they will be back to back..
So your data window looks like this
600001 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
600002 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
The coordinates will be stored like this
600001 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
600002 00 00 11 11 11 11 22 22 22 22 33 33 33 33 00 00
1 = first coordinate
2 = second coordinate
3 = third coordinate
So I did this step and found 3 dwords in a row where 2 of them changed only when I moved(height coordinate don't change unless you change height). So i took the first dword i found and put it in a memory searcher so i can test. I wrote down the value then i moved my character, went back to the memory searcher and put back the first value i wrote down and sure enough i teleported back to that location.
So the next step is to find out where it is stored in our structure. All you do is this...
First Coordinate Address - PlayerStructure address = how many bytes away
so I ended up with (34) for the first coordinate and the other 2 are 4 bytes away so..
[PlayerStructure+34] = First Coordinate
[PlayerStructure+38] = Second Coordinate
[PlayerStructure+3C] = Third Coordinate
Great now we have our coordinates and there location...
Note!! do not skip this step unless you fully understand it...read it over until you do..
************************************************** ********
Step 3: Code Injection
----------------------
What you will need...
1. Code Cave
2. 2 Empty address for setting 2 flags
3. 3 Empty address for storing away our 3 coordinates (I just make my 3 addresses 4 bytes away).
Ok so first thing is find you a big code cave cause its kind of a big injection. We are going to use that first health pointer to do our teleport injection. We can do that because the pointer holds our player structure. You don't always have to do your injection wherever you break at in softice . Now I am going to show my full injection then I will explain... So here goes..
5BE285: JMP CODE CAVE---------- ORIGINAL INSTRUCTION REPLACED WITH A JUMP TO OUR CAVE
NOP | BALANCE OUT THE BYTES
|
|
CAVE: PUSH [EBX+39C4]-------- ORIGINAL INSTRUCTION
PUSHAD SAVE REGISTERS
CMP [FLAG1],1 TEST IF OUR SAVE KEY WAS PRESSED
JNE SHORT-------------- IF KEY WASNT PRESSED JUMP TO RESTORE ELSE SKIP JUMP
MOV [FLAG1],0 | MOVE ZERO BACK INTO THE FLAG SO FUNCTION DOESNT REPEAT
MOV ECX,3 | MOVE COUNTER INTO ECX
LEA EDI,[sTATIC1] | LOAD DESTINATION ADDRESS INTO EDI
LEA ESI,[EBX+34] | LOAD FIRST CORDINATE ADDRESS INTO ESI
REP MOVSD | COPY SOURCE INTO DESTINATION UNTIL ECX=0
|
CMP [FLAG2],1---------- TEST IF RESTORE KEY WAS PRESSED
JNE TO END--------------- IF NOT THEN JUMP TO END
MOV [FLAG2],0 | MOVE ZERO BACK INTO FLAG SO FUNCTION DONT KEEP REPEATING
MOV ECX,3 |
LEA EDI,[EBX+34] | LOAD DESTINATION ADDRESS INTO EDI
LEA ESI,[sTATIC1] | LOAD FIRST STORED CORD ADDRESS INTO ESI
REP MOVSD | COPY SOURE INTO DESTINATION UNTIL ECX=0
|
END:---------------------
POPAD RESTORE REGISTERS
JMP BACK TO GAME LOOP JUMP BACK TO GAME LOOP
Pretty simple eh?
************************************************** ********
Step 4: Code into the trainer
-----------------------------
Ok all you need to do is,
For the Save key in your trainer, just inject all that code(make sure you inject your cave before your jump) and inject the value of 1 into the first flag address
For the Restore key in your trainer, inject all that code, and inject the value
of 1 into the second flag address.
So when you press the save hotkey it will put 1 into that flag making it true and put your coordinates away into there static address. And when you press the restore key it will take the coordinates in your static addresses and put then in your actual coordinates addresses making you teleport to that location.
Not to tuff of an option, it may be at first but with a few tries you should have it no problem..
Well that's the end ... Hope this helps a bit...
Happy Training…
- 1
-
Хочу сейчас посмотреть что за вещь - Syser Debugger. Что то он из всех мне понравился...
-
От нечего делать Пока на мою не трезвую голову больше ни на что фантазии не хватило
Syser Debugger — отладчик уровня ядра с графическим оконным интерфейсом. Позволяет отлаживать как приложения, так и драйвера. Сочетает в себе функции IDA Pro, Softice и Ollydbg.
Основные возможности:
• подсветка листинга дизассеблера
• динамическая загрузка и выгрузка
• поддержка работы с клавиатурой и мышью
• поддержка всех команд отладчика Softice
• поддержка юникода, многоязычный интерфейс
• поддержка плагинов
• поддержка многопроцессорных систем с Intel Hyper-Threaded процессоров
• поддержка скриптов
• поддержка буфера обмена, позволяющего копировать данные из уровня Ring 3 в уровень Ring 0
• корректная совместная работа с Softice
• автоматическая загрузка драйверов для отладки
• добавление комментариев в отладку
• закладки
• поддержка cross-reference и data reference
• многооконный интерфейс
• и многое другое
PEBrowse Professional Interactive 8.4
Учебник
Отладка в WinDbg. Пособие для тест.
Скрин дебаг. занятым делом
-
хотелось бы поддержку спецсимволов в никах. Как минимум 2х - "[" и "]" ;P
Кому что!
Может тогда и _ добавить?
-
Регистрация на сайте выключена. Но, в будущем, планируется закрытый раздел для постоянных участников, приносящих пользу форуму и сайту. Всех участников я буду добавлять вручную.
ЗЫ. Спасибо за трейнеры.
О_о! У "Лаборатории геймхакинга" светлое будущее.
А еще вопрос: Xipho, статьи на сайте только твои публикуются? Или можно например хорошую, отличную переведенную статью прислать?
ЗЫ "Служу Российской Федерации?"
-
Регистрация на сайте выключена. Но, в будущем, планируется закрытый раздел для постоянных участников, приносящих пользу форуму и сайту. Всех участников я буду добавлять вручную.
ЗЫ. Спасибо за трейнеры.
оО! У "Лаборатории геймхакинга" светлое будущее.
А еще вопрос: Xipho, статьи на сайте только твои публикуются? Или можно например хорошую, отличную переведенную статью прислать?
ЗЫ "Служу Российской Федерации?"
-
Live 4 ever, ты для какой версии игры тренер делал, для английской чтоли? У меня он так и не заработал(( ставил update1 с кряком skidrow (после него все надписи в игре англофицируются, русский пропадает из меню выбора языка, остаётся одна озвучка русская), всё равно не пашет
Сейчас спрошу у live_4_ever'а...
Ну как сказать - меню на английском, в игре субтитры на азерб. Скачано с иранских торрентов.
ЗЫ Увидел трейнер от h4x0r'а для версии 1.1.1. Я думал будет ли работать мой. Некоторые сказали что нормально работает.
-
Ум...а что это за вещь такая на сайте - Авторизация?
Не, я знаю зачем она. Но зачем на сайте? А если ввести свои данные написано "страница не отображается" и прочая фигня.
-
Да! Спасибо. Получилось. Я тоже с начало думал чего то не то делаю, оказалось...Только в свойствах я не нашел где нужно указать "что приложение Гуевое". Но отметил, что "EXE: Generate console application" и так... пошло.
-
-
Xipho Спасибо. Правда только сейчас почитал, но кое что новое узнал, спс.
-
-Создать проект WindowsForms (или дргого типа), сохранив его в некоторую директорию.
-Скомпилировать проект (нажать F9)
-Получиться и запустится exe файл находящийся в директории проекта.
О_о получилось, спасибо большое ...Пока больше вопросов нет.
-
Помогите...как в Delphi 7 сделать .exe файл? e nfv j,]zcybnt gkp...
-
Нет ничего сложного, просто в проект подключаете модуль uFMOD и всё
Тоже самое.
-
Только в трейнерах h4x0r'а и KelSat'а я встречал музыку. В других нет. Ну короче, интересно как и что и все. Могут ли те, кто делают трейнеры, кто здесь, попробовать замутить что то такое?
-
Может лучше будет оставить "полный" вариант? В смысле убрать кнопочку "развернуть/свернуть".
-
А в СЕ так и должно быть: Когда пытаюсь сохранить таблицу, он мне выводит окно - "Сделай трейнер...пожалуйста". Я его посылаю и все...потом заново. Короче, нельзя что ли иметь таблицу в СЕ как в ArtMoney?
-
Если считаете, что необходимость в сайте есть - тогда сделаем. Это не проблема.
Есть один такой форум, очень напоминает мне один - GameHacking.com. Отличный форум! (Всегда хочется сказать сайт. Но нет.) Там есть много хорошего, можете посмотреть. Очень хорошо, очень. И своя база-трейнеров есть даже. Один минус, он весь на английском... Так вот.., опять забыл. Увлекся.
GameHacking'у[RU] не нужен сайт. Я думаю Форум - вот сайт.
-
.Я думаю, ты делал всё правильно, наверно, просто есть какие-то ошибки в коде CE. В CE предусмотрено открывать таблицы артмани, попробуй открыть английской версией CE, если не пробовал.[...]
Да, английской тоже пробовал. Может это из-за того что у меня ArtMoney версии 7.30? Сейчас уже более поздняя версия, намного, есть.
Мною было решено, дождаться выхода версии 5.6 и модернизировать уже только её. А версию CE 5.5 RUS 1.2.0 можно считать больше не обновляемой. Следующая версия будет CE 5.6 RUSУх ты...интересно на это посмотреть.
-
Еще один вопрос, тупой. Просто интересно. Возможно ли каким либо образом СЕ открыть таблицы ArtMoney? В СЕ нажимаешь откурыть, в "Тип Файлов" выбираю "ArtMoney Tables". Выбираю какую нужно таблицу и выходит что СЕ не может загрузить версию таблиц ArtMoney.
-
О_о! Помогло! Спасибо большое
-
После того как скачал любую версию СЕ и нажимаю "Открыть", выходит вот такая ошибка:
Перепробовал не все, так как не знаю что делать. Так, что делать?
-
Что то хотел предложить...забыл. Как вспомню скажу. А так, если это не запрещает правилами форума и администрацией.., короче "Предложение по сайту и форуму."
Обсуждение работы сайта и форума
in О работе сайта и форума
Опубликовано
А блин...)))) Я не лысый! ПЛЗ Хипхо если тебе не трудно! Меня как обычный ник можно сделать?
ЗЫ Хипхо ты правильно сказал. А я ошибся. Двиг и правда лучше чем все ост.