Я пытаюсь реконструировать старую игру, с которой я возился, и которая больше не поддерживается. В настоящее время я просто пытаюсь отредактировать IP-адрес подключения, чтобы подделать, что сервер находится в сети, но у меня возникли некоторые проблемы с отслеживанием IP-адреса в приложении. После выполнения теста wireshark IP-адрес, к которому программа пытается подключиться: 24.56.108.156, но сканирование для этого с помощью программы редактирования шестнадцатеричного кода (в частности, XVI32) в шестнадцатеричном формате или тексте не дает результата.
Итак, я продолжил возиться и загрузил ollydbg, который я не использовал вечно, и мои знания ассемблера, несомненно, резко упали. Во всяком случае, я сначала просмотрел строки, на которые ссылаются, и нашел там некоторый текст (кажется, комментарии к коду), который показывает, что функция «RemoteHostIP» возвращает IP-адрес удаленного хоста. Итак, я нашел сборку для вызова и сделал на ней точку останова, чтобы убедиться, что это правильная функция и она вызывается именно тогда, когда клиент пытается подключиться. Сборка для него такая:
MOV EAX, DWORD PTR DS:[C98FA8]
OR EAX, EAX
JE SHORT Eternal.0043629F //Jumps back to the MOV call.
Я посмотрел на значение EAX, и оно оказалось равным 75843918, а DS — 002B, но значение EAX (при обратном преобразовании в десятичное число или ascii) не равно IP-адресу, к которому клиент тоже пытается подключиться. Итак, я понятия не имею, что именно означает DS, кроме регистра сегмента данных, или как он влияет на разыменованный указатель, поэтому я перешел к выражению 00C98FA8 и получил то же значение 75843918, что не то, что я ищу.
У меня заканчиваются идеи, есть ли что-то конкретное, что я мог пропустить? Имеет ли этот DS какой-то эффект, о котором я не знаю? Любая помощь будет принята с благодарностью, и если я упустил некоторую информацию, которая может быть полезной, просто скажите мне.
--Недавно добавленная информация--
В ответ на type1232 и просто для получения дополнительной информации:
В адресе есть некоторый отступ между отдельными числами, он выглядел так: 32, Random Number Of 00s и прочий мусор и т. д., поэтому я не могу отследить его напрямую.
18 38 6c 9c
или9c 6c 38 18
(не уверен в порядке). - person typ1232   schedule 24.09.2013