Перейти к содержанию

Dark Souls Поиск Адреса указывающего на ID предмета.


Рекомендуемые сообщения

Добрый день! Никак не пойму как найти адрес который бы отображал ID предмета в игре DARK SOULS.

Конкретнее:

В игре, при открытии инвентаря, иконка с выбранной одежой/оружием/т.п. подсвечивается.

Хочу найти адресс, который при выделении в инвентаре любого объекта отображал ID этого объекта.

Как я уже пытался его найти:

Пробовал через CE поиск неизвестного значения. Выделял нужную вещь, потом снимал выделения и производил поиск - Изменилось/Не изенилось(Отсеивал) ...

К сожалению результат был печальный, очень много адрессов. =(

P.S.: мне нужен не ID какой-то конкретной вещи, а любой, которую я выделяю :) На форуме CE есть трейнер, там есть такая функция =( Но я так и не понял как он смог найти адресс.

Ссылка на комментарий
Поделиться на другие сайты

А с какой целью ID ищется? Если в расчёте подменить вещь, изменив ID, 99,9% что ничего не выйдет. Такое прокатывает только на старых консолях и старых же PC-играх (даже в первом Half-Life у меня получалось только создать визуальную смену предмета, иконки, но не более того).

А на форуме CE иногда можно встретить истинных гуру. В том же Dark Souls они отключили ragdoll игрока (в частности реакцию игрока на удары). Как искали - не разобрался.

Upd: почитал про ID - да, действительно, у них предметы менялись, но не уверен в простоте реализации опции...

Ссылка на комментарий
Поделиться на другие сайты

Я сам пробовал, у меня все получалось.

Делал так:

1 - Смотрел в инвентарь, выбрал нужную мне вещь.

2 - Заходил на страничку, где есть все ID предметов (в DEC и HEX), находил интересующий меня ID.

3 - Заходил в CE, запускал поиск этого ID, выдавало примерно адресов 70+

4 - Заходил в игру, выбрасывал предмет из инвентаря

5 - Переключался в CE, искал адресс который поменял свое значение на FFFFFFFF (HEX), добавлял в таблицу.

6 - Поднимал вещь в игре.

7 - В CE менял ID на другой и все замечательно получалось) Там же через промотр региона памяти можно изменить и количество и параметры вещи.

Вот меня интересует, как без страницы ID предметов, самому находить эти ID.

А точнее, чтобы не искать каждый раз ID определенного предмета, хотелось бы видедеть его в талице CE :)

Ссылка на комментарий
Поделиться на другие сайты

elvis66666, заметь, что ты привел два способа поиска. В одном вещь выбрасывал/подбирал, в другом - ты выделял и снимал выделение с пиктограммы вещи в инвентаре.

Наводя курсор на пиктограмму в инвентаре возможно не так-то просто получить id этой вещи не только через сканер памяти, но и через отладчик даже не получишь малой кровью. Там скорее всего будет счетчик выделенной ячейки, а не самой вещи. Так, что может быть искать неизвестное, +/- единица. Найдешь счетчик в инвентаре. Поставишь бряк на чтение и выкинешь вещь. Посмотришь в отладке как по id пиктограммы инвентаря определить id вещи выкинутой вещи (через указатели, через выполнение функции или иначе)

Ссылка на комментарий
Поделиться на другие сайты

Поиск ID вещи:

ШАГ 1 - Поиск неизвестного значения 4байта в первом слоте инвентаря, для Usable Items;

ШАГ 2 - Помещаем в слот инвентаря предмет и производим отсев значений (Changed Value/Unchanged);

ШАГ 3 - После продолжительного отсева значений, находим 1 адресс, соответствующий ITEM ID выбранного предмета. В моем случае это 203 (DEС);

ШАГ 4 - Смотрим изменения в MEMORY VIEWER , когда добавляем предметы в соседние слоты;

ШАГ 5 - Видно из предыдущего шага, что адреса находятся рядышом (+4байта);

ШАГ 6 - Ставим бряк (Fiend out what writes to the adress) и убираем предмет из слота. Поймали одну инструкцию;

ШАГ 7 - А теперь выбрали и добавили любой друго предмет, поймали еще 1 инструкцию.

Продолжение следует...

И тут я встрял, я еще очень слаб в геймхакинге, но мне это интересно для расширения собственного кругозора, подскажите, что мне делать дальше? Если можно то более разжеванно ^_^ а то еще утону...

P.S.: Поискал еще счетчик, как описал MasterGH выше, нашел следующее: ТЫК . Каждому выделенному слоту присваивается цыферка от 0 до 6 :) Еще есть проблемы c MsLIVE защитой, часто крашится игра при применении отладчика =\. Как залить картинки на форум =))) ?

Ссылка на комментарий
Поделиться на другие сайты

У CE есть функция Dissect Data/structure. На 7-ом шаге посмотри структуру по esi. Можешь поставить бряк на счетчик ячейки инвентаря. Если повезет,то выскочат инструкции, когда курсором выделяешь ячейку или наводишь на неё. Все структуры которые увидел можно проанализировать на связь между собой по значениям, близлежащим адресам, близлежащим указателям и вложенным указателям.

Если увязнешь, тогда трессишь ветку кода с бряка1 до бряка2, ищешь связи. Где бряк1 - это обращение к id ячейки, а бряк2 - обращение id вещи. Всю ветку исследуешь на вложенные коллы поглядывая стек, регистры, значения похожие на начала структур. Трейс можно делать в CE, OllyDbg. Если опять увязнешь бери IDA + Hex-Rays или любой дизас с декомпилятором на плюсы. В последнем случае С++ разумеется знать надо ;)

Ссылка на комментарий
Поделиться на другие сайты

А есть похожее обучающее видео или статья? А то на словах все замечательно, но после предложения "На 7-ом шаге посмотри структуру по esi" я уже встрял ))))

Ссылка на комментарий
Поделиться на другие сайты

  • 2 года спустя...
В 14.10.2013в13:09, elvis66666 сказал:

мне нужен не ID какой-то конкретной вещи, а любой, которую я выделяю :)

elvis66666, если вопрос ещё актуален, то ответ выложил в этой теме - Dark Souls ADD ITEM.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.