Гость Zer0 Опубликовано 19 июня, 2017 Поделиться Опубликовано 19 июня, 2017 Исследовал игру Terraria наткнулся на такие адреса в CE: За каждой такой текстовой записью CE закрепляет адрес. Terraria.NPC::Transform Terraria.NPC::SpawnSkeletron Terraria.NPC::SpawnWOF Terraria.NPC::SpawnNPC Terraria.Player::ItemCheck Terraria.Player::Hurt Terraria.Player::ItemCheck Эти записи полностью идентичны функциям из исходников игры. Например класс Player и его функция Hurt итп. Как CE смог это получить? Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 19 июня, 2017 Поделиться Опубликовано 19 июня, 2017 Тут вроде как может быть только одно: таблица экспорта Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Zer0 Опубликовано 20 июня, 2017 Поделиться Опубликовано 20 июня, 2017 12 часа назад, uhx сказал: Тут вроде как может быть только одно: таблица экспорта Выгрузил все модули, просканировал их на содержание экспорта приведенных функций, но так и ничего подобного не нашел. Возможно, это как то связанно с памятью .NET? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 20 июня, 2017 Поделиться Опубликовано 20 июня, 2017 (изменено) 22 часа назад, Zer0 сказал: Как CE смог это получить? Просто дизассемблер получил имена функций т.к. в .net, vb они подписаны по стандарту, это что-то типа файла содержащего отладочную информацию и информацию о состоянии проекта, которую использует Visual Studio вшитого сразу в экзешник. В c++ такая информация генерируется в отдельный .pdb файл к примеру. Таблицы экспорта это совсем не то, она используются для "связи" между файлами, чтобы можно было использовать модули, а не месить весь код в один файл. Изменено 20 июня, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Zer0 Опубликовано 20 июня, 2017 Поделиться Опубликовано 20 июня, 2017 38 минут назад, partoftheworlD сказал: Просто дизассемблер получил имена функций т.к. в .net, vb они подписаны по стандарту, это что-то типа файла содержащего отладочную информацию и информацию о состоянии проекта, которую использует Visual Studio вшитого сразу в экзешник. В c++ такая информация генерируется в отдельный .pdb файл к примеру. Таблицы экспорта это совсем не то, она используются для "связи" между файлами, чтобы можно было использовать модули, а не месить весь код в один файл. Скрытый текст Откуда это взято? Можно эту информацию получить самому? Есть решение на каком либо ЯП или просто список действий, которые нужно выполнить? Кстати найти такое я смог только в CE, x64dbg или ольга не выдают подобного(возможно просто я не нашел). Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 20 июня, 2017 Поделиться Опубликовано 20 июня, 2017 (изменено) 5 часов назад, partoftheworlD сказал: Таблицы экспорта это совсем не то, она используются для "связи" между файлами Да, я в курсе. Вообще у них конечно другое предназначение, чем просто "разбиение, чтоб не месить в один файл" Я думал здесь именно на модули и разбита игра, ибо не знал что CE способен вытаскивать подобную инфу, думал он только функции из экспорта подписывает. В таком случае все это можно вытащить через какой-нибудь .NET Reflector. PS IDA Pro как-то очень стремно этот код на шарпе дизассемблирует)) Изменено 20 июня, 2017 пользователем uhx Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 21 июня, 2017 Поделиться Опубликовано 21 июня, 2017 13 часа назад, partoftheworlD сказал: Просто дизассемблер получил имена функций т.к. в .net, vb они подписаны по стандарту, это что-то типа файла содержащего отладочную информацию и информацию о состоянии проекта, которую использует Visual Studio вшитого сразу в экзешник. В c++ такая информация генерируется в отдельный .pdb файл к примеру. Совершенно не обязательно. Если при/после компиляции не была применена обфускация кода, то СЕ все функции увидит, как на ладони. Тот же S.T.A.L.K.E.R. - в нем все функции видны, хотя он собран без отладочной информации. Надо в СЕ просто поставить галочку "Show symbols" Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 21 июня, 2017 Поделиться Опубликовано 21 июня, 2017 8 часов назад, uhx сказал: PS IDA Pro как-то очень стремно этот код на шарпе дизассемблирует)) А разве IDA умеет дизассемблировать .NET приложения? Они же в байт-код компилируются. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 21 июня, 2017 Поделиться Опубликовано 21 июня, 2017 (изменено) 21 час назад, Xipho сказал: А разве IDA умеет дизассемблировать .NET приложения? Да , для декомпиляция .Net ilspy только 21 час назад, Xipho сказал: Надо в СЕ просто поставить галочку "Show symbols" Он обычно выводит только библиотечные функции. Хотя может мне с играми не везёт. В 20.06.2017 в 17:10, Zer0 сказал: Откуда это взято? IDA, но думаю можно на любом ЯП задампить. Это не сложно. Изменено 22 июня, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 21 июня, 2017 Поделиться Опубликовано 21 июня, 2017 1 час назад, partoftheworlD сказал: Он обычно выводит только библиотечные функции. Хотя может мне с играми не везёт. У него есть два вида символов - kernel symbols или как-то так - это как раз библиотечные. А есть еще просто symbols - это как раз внутренние. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 22 июня, 2017 Поделиться Опубликовано 22 июня, 2017 11 час назад, Xipho сказал: У него есть два вида символов - kernel symbols или как-то так - это как раз библиотечные. А есть еще просто symbols - это как раз внутренние. Во как, даже с моим уровнем знаний частенько открываю что-то новое для себя на форуме. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения