Current time: 27.06.2017, 12:09 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Исследование героев
» туториал(ы)
Author Message
Berserker Offline
Administrators

Posts: 10163
Post: #31

GhostManSD, Virtual Pascal из папки Эры запускал?
/попробуй команду Make вместо Compile.
01.09.2010 17:22
Find all posts by this user Quote this message in a reply
MOP Offline

Posts: 1211
Post: #32

(01.09.2010 16:38)Berserker Wrote:  MOP, спасибо за пример. Довольно чётко. Разве что "PTR DS:" лишние...
Учту. Я просто скопировал комментарий из исходника к бинарнику. Себе-то длл-ок пока не делаю - для этого мне нужна какая-то... глобальная задумка, что ли (как для тебя - ЭРА). А пока всё в exe...


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery

Сайт
Группа vk
01.09.2010 18:20
Find all posts by this user Quote this message in a reply
Sav Online

Posts: 2183
Post: #33

(01.09.2010 15:04)Berserker Wrote:  Суть создания "нового триггера" в Эре - это в нужном месте кода героев/вога:
...

Как можно найти это нужное место?
01.09.2010 18:29
Find all posts by this user Quote this message in a reply
MOP Offline

Posts: 1211
Post: #34

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


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery

Сайт
Группа vk
(This post was last modified: 01.09.2010 18:34 by MOP.)
01.09.2010 18:29
Find all posts by this user Quote this message in a reply
Sav Online

Posts: 2183
Post: #35

MOP Wrote:... в туториале Дьякона
Это который должен быть по ссылке в первом посте темы? Ссылка не работает.
01.09.2010 18:38
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 476
Post: #36

Не портите нервы связкой паскаля и асма, припудренной милыми досовскими средами.
Портите нервы связкой С и асма.
Quote:Как можно найти это нужное место?
Тут надо предметно смотреть - в каждом конкретном случае вопрос особый.
На палатку я бы выходил через давно записанный на бумажке адрес свитча на действия юнитов в бою. Этот свитч я нашел через функцию каста заклинаний. А её я нашел, кажется, через функцию проигрывания звука.
01.09.2010 18:38
Find all posts by this user Quote this message in a reply
gamecreator Offline
Administrators

Posts: 7096
Post: #37

MOP, а если в том неиспользуемом участке патч какой-то записался? получится каша.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
01.09.2010 19:23
Find all posts by this user Quote this message in a reply
MOP Offline

Posts: 1211
Post: #38

+ ещё одна причина делать это по-человечески, а не UN:C.
Но не буду же я объяснять простому человеку, как поставить ЭРУ или прилепить длл к экзешнику.


Circle of destruction, hammer comes crushing
Powerhouse of energy
Whipping up a fury, dominating flurry
We create the battery

Сайт
Группа vk
01.09.2010 19:30
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10163
Post: #39

Quote:Портите нервы связкой С и асма.
Ничем не лучше, если не считать, что из-за крайней низкоуровневости, что-то большое писать без ошибок нереально. По поводу среды - использую Delphi, но не его IDE, а notepad++. Писать можно в чём нравится и как нравится, а компилировать хоть через командную строку. И как сказал ZVS на ag.ru, это не досовское окно, а полноценное win-32 приложение.

Quote:брейкпойнт
Перевожу: точка останова.

Quote:свитча
Перевожу: разветвление/переключатель (серия подряд идущих если..то).
01.09.2010 19:30
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 476
Post: #40

Quote:Перевожу: точка останова.
Кстати, о бряках.
В той же оле есть три вида бряков: Int3, Memory и Hardware.

Первый ставится на код и срабатывает, что характерно, при проходе про коду.
Второй ставится на память и срабатывает при чтении\записи в память.
Третий может ставиться и на код, и на память, но имеет ряд ограничений - типа, только четыре бряка такого типа, брячится только до четырех байт (и то, зависит от фактического адреса).

Дык вот..для бряков на код лучше использовать первые.
А вот для бряков на память - третьи, несмотря на все их ограничения.
01.09.2010 19:58
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10163
Post: #41

Аппаратные точки останова обрабатывает процессор (регистры Dr0-Dr3). А Olly реализует это дело через VirtualProtect с нулевыми правами на всю страницу памяти и перехват-обработку исключений. Если доступ к странице нужен редко, то в принципе, терпимо, если постоянно, то тормоза будут существенные.
01.09.2010 20:11
Find all posts by this user Quote this message in a reply
GhostManSD Offline

Posts: 1055
Post: #42

О Боже... Х_Х


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
01.09.2010 20:27
Visit this user's website Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 476
Post: #43

Quote:если постоянно, то тормоза будут существенные.
если обращения чаще, чем примерно раз в секунду - герои нафиг повисают. Приходится ставить-снимать паузу.
Так что, скажем, изменялку параметров героя с меморибряками выявить удастся только при достаточном терпении.
Quote:О Боже... Х_Х
ась? Все оказалось несколько сложнее, чем представлялось?)
Дык на самом деле все сложнее, чем на самом деле.
(This post was last modified: 01.09.2010 20:43 by feanor.)
01.09.2010 20:32
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10163
Post: #44

Quote:О Боже... Х_Х
Я бы начал с обычного: wasm.ru Введение в крекинг с нуля. Хотя может МОР что посоветует, он вроде как обходился без азов программирования.
01.09.2010 21:22
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10163
Post: #45

Quote:или чистотой языка
В отличие от жаргона корректный литературный перевод уже несёт 90% смысла даже для человека непосвящённого. В СССР было понятие АВОСТ - аварийного останова. Это самый нормальный перевод для halt, например. Тоже самое и с breakpoint. Это и есть точка останова программы. И человек сразу вникает в суть дела. А жаргон используют все, но не везде же и среди тех, кто понимает.

feanor, по твоему уже удалённому посту. 6[a] в си тоже массив, как и 256[a]{b} и т.д. Но это не полноценный массив с двумя/более измерениями, а просто синтаксический сахар для вычисления адреса (собственно, нельзя создать тип-многомерный массив, массив можно использовать как переменную или одномерный и никакого контроля над границами тоже нет). Касаемо передачи параметра для изменения, это был не юмор. Введённая в Алголе60 конструкция VAR означает, что внутри функции работа с переменной/массивом/структурой вполне прозрачна, но реально компилятор имеет дело со ссылкой. Тем не менее проверка типов остаётся жёсткой. В СИ нет возможности передать аргумент для изменения иначе как использованием низкоуровневого средства ссылки. Именно поэтому, несмотря на тотальную популярность СИ-семейства, я бы не советовал людям формировать своё мировоззрение в сфере программирования, начиная с языка, чей основой является близость к ассемблеру и минимальная типизация. И тем более, если нужно что-то реализовать, а навыков нет. И конечно же, не посоветовал начинать с монстров класса СИ++, Ада, на прочтение одной лишь спецификации по которым уйдёт пол жизни, а остальная половина на знакомство с особенностями компиляторов.

P.S В посте была ошибка. Передача аргумента в качестве изменяемой переменной, а не по значению.
01.09.2010 21:45
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2017 MyBB Group