Меня интересует вызов последней функции. С виду мы имеем вроде как вызов простого метода, указатель на класс которого лежит в EDI. То есть по идее прототип выглядит так:
Код:
DWORD class::method(int a1, int a2);
Всё верно? Не взирая на возвращаемое значение, оно в данном контексте не важно. А вот hex-rays парсит совсем по-другому:
Код:
char __userpurge sub_4E23ACF@<al>(int a1@<ebp>, int a2, int a3)
Ну __userpurge ладно, там за ESP можно последить, возвращаемое значение я тоже опущу. Но откуда у нас первый аргумент в EBP? Может кто-нибудь объяснить? Когда явным образом он должен быть в ECX.
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
HexRays далеко не всегда даёт годный результат. Во многих случаях - наоборот, запутывает. Разбирайте лучше ассемблерный код. Если в статике понять не получается - отладчик поможет.
HexRays далеко не всегда даёт годный результат. Во многих случаях - наоборот, запутывает. Разбирайте лучше ассемблерный код. Если в статике понять не получается - отладчик поможет.
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.