Current time: 25.11.2024, 16:35 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 7107
Post: #106

а, так надо ж было или 7802h написать, или 0x7802


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

Posts: 1054
Post: #107

Каков аналог NOP для команды UN:C?


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

Posts: 16657
Post: #108

Опкод нопа - 90h = 144


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
09.09.2010 00:59
Find all posts by this user Quote this message in a reply
baratorch Offline

Posts: 197
Post: #109

(08.09.2010 22:48)GhostManSD Wrote:  То есть для кнопки с кодом ID=7802 должно быть cmp eax, 7802?
в большинстве случаев проверяемые ID элементов окна в функции-обработчике находятся внутри switch-ей, поэтому ситуация cmp <ID>, 0x7777 встречается редко.
09.09.2010 03:12
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #110

так свич - это и есть последовательность сравнений и прыжки на соотв. позиции.


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

Posts: 1054
Post: #111

Bers, спасибо! Т.е. если я хочу забить адрес NOP-ами, то я должен ввести !!UN:C[адрес] / [размер адреса] / 144;? А где размер адреса смотреть? Артмани подойдет?


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

Posts: 16657
Post: #112

nop - однобайтовая команда, а смотреть в оле, там слева от команд пишутся байты опкодов: e7 12345678 - 5 байт, 5 nop-ов нужно по одному.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
09.09.2010 14:55
Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 624
Post: #113

Quote:так свич - это и есть последовательность сравнений и прыжки на соотв. позиции.
не всегда. Скажем, для свитчей на свойства существ используются две таблицы - таблица существ и таблица адресов обработчиков того или иного свитча. А итоговый код выглядит так:
Code:
CPU Disasm
Address   Hex dump          Command                                  Comments
00440906  |.  83C0 C1       ADD EAX,-3F                             ; Switch (cases 3F..87, 6 exits)
00440909  |.  83F8 86       CMP EAX,-7A
0044090C  |.  0F87 99090000 JA 004412AB
00440912  |.  33C9          XOR ECX,ECX
00440914  |.  8A88 4C7A7900 MOV CL,BYTE PTR DS:[EAX+797A4C]
0044091A  |.  FF248D C01244 JMP DWORD PTR DS:[ECX*4+4412C0]
3F - номер первого существа (артефакта, заклинания) в таблице соответствий.
797A4C - адрес таблицы соответствий (хранит номера ветвей-кейсов)
4412C0 - адрес таблицы обработчиков (хранит адреса ветвей-кейсов)
(This post was last modified: 09.09.2010 20:02 by feanor.)
09.09.2010 19:57
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #114

хм, интересно


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

Posts: 1809
Post: #115

Таблица NOP'ов с разным числом байт. (Макрос для MS VC)
09.09.2010 21:01
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #116

db size dup(90h)


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

Posts: 1809
Post: #117

(09.09.2010 23:24)gamecreator Wrote:  db size dup(90h)
Так не интересно. Ab Хотя, конечно, читается лучше.
09.09.2010 23:41
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #118

зато сразу видно где забитые байты


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

Posts: 1054
Post: #119

Подскажите, пожалуйста, как найти адрес стандартного триггера WoG. Например, !?HE.

Кажись, вник. В комментариях - ошибки на неправильный синтаксис. Будем копать оттуда.


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
(This post was last modified: 10.09.2010 03:29 by GhostManSD.)
10.09.2010 03:12
Visit this user's website Find all posts by this user Quote this message in a reply
GhostManSD Offline

Posts: 1054
Post: #120

Нашел место, где сравниваются данные из EBP и номер героя (ввел специально неправильную команду !?HE-1). Вопрос: что теперь делать, чтобы присвоить -1 значение типа "если x=-1, то выполнять для каждого значения от 0 до 156"? Куды иттить, то бишь, где этот гребаный x искать?


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
(This post was last modified: 10.09.2010 04:17 by GhostManSD.)
10.09.2010 04:09
Visit this user's website 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-2024 MyBB Group