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

Многоуровневый указатель (проблема)


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

Хочу в игре денег наколдовать, адрес со значением нашёл. Указатель на этот адрес нашёл. А вот когда ищу кто указывает на найденный указатель, то ничего не находит :(

Ставлю бряк в СЕ на доступ к указателю, трачу денешку а инструкции не появляются в окне бряка. В чём причина и что делать чтобы найти искомое?

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

Хочу в игре денег наколдовать, адрес со значением нашёл. Указатель на этот адрес нашёл. А вот когда ищу кто указывает на найденный указатель, то ничего не находит :(

Ставлю бряк в СЕ на доступ к указателю, трачу денешку а инструкции не появляются в окне бряка. В чём причина и что делать чтобы найти искомое?

Название игры можно? Интересно посмотреть самому.

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

Craft The World

Взял версию 0.9.033. repack от United Packer Group

Удалось найти инструкцию, которая увеличивает кол-во ресурсов и корневой указатель.

Удалось модифицировать инструкцию, чтобы любое изменение(получение, трата, крафт) ресурса давало максимум(обрезается) 999.


00D4FEB7 - 01 9F 4C010000 - add [edi+0000014C],ebx
||
V
mov [edi+0000014C],edi

В edi большое число, но оно режется до 999.

Вот формула поиска значений ресурсов:


[[[CraftWorld.exe+3168B4]+1C]+X]
где X:
+14c земля
+5e4 камни
+13ac дрова
+98e4 каменный топор
+f710 лестница

Осталось найти значения смещений для всех ресурсов)

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

Взял версию 0.9.033. repack от United Packer Group

Удалось найти инструкцию, которая увеличивает кол-во ресурсов и корневой указатель.

Удалось модифицировать инструкцию, чтобы любое изменение(получение, трата, крафт) ресурса давало максимум(обрезается) 999.


00D4FEB7 - 01 9F 4C010000 - add [edi+0000014C],ebx
||
V
mov [edi+0000014C],edi

В edi большое число, но оно режется до 999.

Вот формула поиска значений ресурсов:


[[[CraftWorld.exe+3168B4]+1C]+X]
где X:
+146 земля
+5e4 камни
+13ac дрова
+98e4 каменный топор
+f710 лестница

Осталось найти значения смещений для всех ресурсов)

а в асемблере вообще не шарю, поэтому ничего совсем не понял из того что вы написали.

мне не нужно выполнять столь сложные операции, я просто хотел чтобы адрес всегда был рабочим, тоесть найти статический указатель на значение кол-ва денег. Это возможно? и почему у меня не было инструкций на указатель когда я ставил бряк?

Посмотрите есть ли у вас инструкции при поиске указателя? Я имею ввиду ручной метод а не автоматический. А то может я что-то не так делаю?

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

Если нужна таблица для CE, то вот пример указателя на землю:

41ecdba932d6e5182338376b05e8e59c.png

Почему не работал бряк? Возможно нерабочий временный указатель

Нет, дело именно в деньгах. Остальные ресурсы вроде бы нормально находятся. А вот именно на монетки не могу найти статический указатель.

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

о_О но как?

Также как и с землёй только вместо 14c будет 419c. Это благодаря тому, что относительно друг друга ячейки не сдвигаются. Нашёл адрес начала и считаю от него, хотя такого указателя игра может не использовать.

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

Также как и с землёй только вместо 14c будет 419c. Это благодаря тому, что относительно друг друга ячейки не сдвигаются. Нашёл адрес начала и считаю от него, хотя такого указателя игра может не использовать.

Ну вот а как мне самому это всё найти? Вы мне дали все адреса и байты для поиска. А как самому найти это всё?

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

Ну вот а как мне самому это всё найти? Вы мне дали все адреса и байты для поиска. А как самому найти это всё?

Я начал поиск с дерева(или земли, не помню))).

Добыл одно, поискал, нашёл ещё одно отсеял и т.д., пока не нашёл ячейку.

Поставил бряк на запись. Нашлась инструкция(та что выше), посмотрел что в edi. Поискал это значение, среди найденных взял "зелёный" адрес(не последний, там системная библиотека). Составил цепочку(на скрине). Теперь если найти адрес ресурса и вычесть значение которое в [[[CraftWorld.exe+3168B4]+1C]+0] будет как раз смещение от начала структуры(значение X)

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

A1t0r, а в каких случаях надо ставить бряк на доступ, запись? в смысле какой из них куда приведёт?

Если поставить на доступ, то поймаешь инструкции которые каким-либо образом читают или пишут значения по этому адресу. На запись - только модифицирующие данное значение.

Адреса указателей не находились, возможно из-за того,что ты не убрал галочку с Writable

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

Адреса указателей не находились, возможно из-за того,что ты не убрал галочку с Writable

У меня CE русский, что значит эта галочка на русском?

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

Write - запись, соответственно - записываемые или что-то такое

У меня в CE есть следующее:

Параметры сканирования памяти

Перезаписыв. < это оно? там стоит галочка, её снять? на что это влияет?

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

У меня в CE есть следующее:

Параметры сканирования памяти

Перезаписыв. < это оно? там стоит галочка, её снять? на что это влияет?

Да, хотя тогда правильнее Rewritable.

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

ae1afb5577d33e9960754df74ecd9a7e.png

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

Надо ставить бряк на адрес, а на не указатель. exorcise

По пробу заново найти указатель на адрес золото, потом перезапусти игру, и отсеивай указатели, пока не найдёшь один уникальный.

Бывает так что найти статический указатель невозможно на некоторые игры или при переходе на другой уровень он меняет смещение.

По этому надо использовать инструкции assembler'а, и искать анализ данных, чтобы построить фильтр в скрипте, если и это не помогает,

используй регистры как фильтр в скрипте.

Почитай статейки здесь на форуме, чтобы научиться как правильно писать скрипты.

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

Надо ставить бряк на адрес, а на не указатель. exorcise

По пробу заново найти указатель на адрес золото, потом перезапусти игру, и отсеивай указатели, пока не найдёшь один уникальный.

Бывает так что найти статический указатель невозможно на некоторые игры или при переходе на другой уровень он меняет смещение.

По этому надо использовать инструкции assembler'а, и искать анализ данных, чтобы построить фильтр в скрипте, если и это не помогает,

используй регистры как фильтр в скрипте.

Почитай статейки здесь на форуме, чтобы научиться как правильно писать скрипты.

Вы наверное сейчас имеете ввиду автоматический поиск указателей. Я знаю про этот метод. Но дело в том что я хотел найти статический указатель сам, в ручную. Очень часто в играх CE не отображает инструкции на доступ к указателю при поиске многоуровневого указателя. Эта игра одна из них. Поэтому я и обратился сюда.

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

Возможно я что-то не так делаю или чего-то не знаю.

А насчет скриптов: мне это не надо. Я просто хочу найти цепочку указателей чтобы всегда иметь адрес со значением и не искать его каждый раз при запуске игры.

Надо ставить бряк на адрес, а на не указатель.

Насколько я знаю бряк на адрес ставиться чтобы найти указатель на него. А чтобы найти указатель на указатель, бряк ставится на указатель.

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

С квадратом, чтобы найти все

Вот только что попробовал с квадратом, тоже не находит :(

Я использовал VEH отладчик (так как с виндовсовским вылетает игра) и ставил квадрат в ту функцию, искал сразу на доступ и на запись. Ни там, ни там нету инструкций при поиске второго указателя.

Может у меня что-то не настроено? или настроено что-то не то? или я что-то не так делаю?

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

Вот только что попробовал с квадратом, тоже не находит :(

Я использовал VEH отладчик (так как с виндовсовским вылетает игра) и ставил квадрат в ту функцию, искал сразу на доступ и на запись. Ни там, ни там нету инструкций при поиске второго указателя.

Может у меня что-то не настроено? или настроено что-то не то? или я что-то не так делаю?

У меня стоит Windows debugger. VEH использовал редко.

Только что прошёлся ещё раз. Ковырял через землю.

1. Нашёл ячейку с количеством земли.

2. Поставил бряк на запись(write).

3. В найденной инструкции посмотрел значение edi.

4. Его поискал в памяти с галочкой в Writable. Нашлось примерно 15 адресов.

5. Взял и поставил на первый бряк на доступ. Нашлось очень много инструкций.

6. Взял первую. Посмотрел в ней edi. (а смещения то мы записываем!!! здесь +1C). И запустил снова поиск в памяти с теми же параметрами.

7. Нашлась туча значений. Среди них 5-я единственная зелёная(статический адрес и расположен в CraftWorld.exe).

Вот и получилась цепочка [[[CraftWorld.exe+3168B4]+1C]+X]

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

У меня стоит Windows debugger. VEH использовал редко.

Только что прошёлся ещё раз. Ковырял через землю.

1. Нашёл ячейку с количеством земли.

2. Поставил бряк на запись(write).

3. В найденной инструкции посмотрел значение edi.

4. Его поискал в памяти с галочкой в Writable. Нашлось примерно 15 инструкций.

5. Взял и поставил на первую бряк на доступ. Нашлось очень много инструкций.

6. Взял первую. Посмотрел в ней edi. (а смещения то мы записываем!!! здесь +1C). И запустил снова поиск в памяти с теми же параметрами.

7. Нашлась туча значений. Среди них 5-я единственная зелёная(статический адрес и расположен в CraftWorld.exe).

Вот и получилась цепочка [[[CraftWorld.exe+3168B4]+1C]+X]

Блин, вылетает при отладчике windows. Всё делаю по пунктам, находит действительно 15 адресов. Имелись ввиду адреса ведь? А то там написанно 15 инструкций.

Вот, но когда ставлю бряк на первую, вылет. Хотя в игре не должно быть защиты от отладки. У вас же не вылетает. Странно что вылетать стало только вчера. А до этого ни разу не вылетала игра. А при использовании VEH находит 20 адресов и бряк на доступ к первому адресу не отображает никаких инструкций.

Сейчас поищу такой же репак как у вас. Возможно у меня кряк кривой.

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

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

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

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