RamDigga,
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Каким образом вы строите асму ???
|
|
 |
|
 |
|
Мы "строим" как ты это называешь, ее не по какому то принципе одному, а мы ее "строим" как надо!
Надо просто понять что за что отвечает, тобиш что делает тот или иной участок кода!
Если тебе так интересно выучи синтаксис асмы, и вообще почитай о ней
Сайт - wasm.ru, можешь там пробежатся
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Каким образом узнали на какие байты нужно менять что бы функция работала
|
|
 |
|
 |
|
Тот же принцип, понять как работает
Чисто в ЕСП мы просто "нопим" т.е пишем байты 90 90 90 в память. Почему? Байт 90 - ноп - от англ nope - ничего, ничего не делает. А зачем? Обясню
Когда ты разбираешь код, и доходишь до места с ЕСП ты увидишь примерное такое
cmp dword ptr [eax],0
je [адреc]
code
code
code
.....
(je может менятся, я не помню что там)
Теперь по порядку
Функция cmp - от англ. compare - сравнивать - сравнивает что-то с чем то
eax - регистр из стека (почитаешь что такое)
0 - просто число
cmp сравнивает значение еах и 0
Je - сокращение jump if equal - прыжок если равно
тобиш если Eax=0 делаем "прыжок", перескакиваем код "code code code ... "
А теперь зачем нопы? А потому что мы нопым функцию je, тоесть по сути игре стает пофиг на cmp, оно проходит нопы, ничего не делает, а потом просто выполняет код который и выводит ники на екран
Вот вроде и все )))
Еще некоторые функции
jnz - jump if not zero - прыжок если не ноль
jz - прыжок если ноль
jne - прыжок если НЕ равно
jbe - прыжок если ниже
jnb - прыжок если не ниже