ScorpioT1000
Работаем
offline
Опыт: отключен
|
Tooltip Exploit
Я нашёл ещё одну "лазейку" в варе) ну могу сразу сказать, что ничего не получится сделать :)
чисто теоретически мы можем читать из любой области памяти.. Как немногие знают, строки "Игрового интерфейса" работают по принципу printf
Тоесть туда передаются по очереди значения, которые подставляются в %s, %d, %x итп внутри строки. Не знаю, каким образом получилось так, что эти строки полностью поддерживают форматирование printf. С помощью этого я смог обратиться к ячейке памяти по номеру, равному уровню героя. Естественно вар скрашился.
Пока не знаю, как передать номер какой-либо ячейки динамически (без говнорб офк)
Проверял на отладчике, соответственно EAX содержит этот адрес и система убивает после cmp(ну там в недопустимом сегменте я так понял) :)
Проблема еще в том, что макс. уровень героя не может быть больше какого-то значения (ну точно меньше 0xFFFFFFFF), это дает дополнительные сложности.
Скрин и карта прилагаются. Отредактировано ScorpioT1001, 18.04.2010 в 21:25. |
18.04.2010, 21:20 | #1
+4/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
bee
vjass.optimizer
offline
Опыт:
16,615Активность: |
честно говоря я не понимаю что это и для чего это нужно, но видимо что-то очень крутое
мне нравиться bee добавил: выбираю корову и у меня фатал |
18.04.2010, 21:30 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FREEZE_ball
Cataclysm => жара
offline
Опыт:
15,247Активность: |
Я понял, что это, и понял, для чего нужно.
Цитата:
Это очень и очень круто, на самом деле, но вот применить это на практике не удастся. Во всяком случае, я не вижу ни одного применения. Бтв, найти ячейку памяти может и артмани =\ |
|
18.04.2010, 21:35 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
FREEZE_ball, но не в игре :) тоесть без вмешательства стороннего и всяких ссаных ретурнбагов. и как я говорил там хрень с
|
18.04.2010, 21:36 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
FREEZE_ball
Cataclysm => жара
offline
Опыт:
15,247Активность: |
ScorpioT1001, твой способ, конечно же, прямо такой игровой =)
Я так думаю, можно попробовать написать некое чудо, чтобы меняло к чертям весь движок... Утопия... |
18.04.2010, 21:48 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
Попробуй с рб, если будет больше возможностей - можно использовать в крупных проектах=) |
18.04.2010, 21:53 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
а смысл? в рб и так уже есть ретурн код, делай че хочешь |
18.04.2010, 22:10 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
XOR
offline
Опыт:
38,284Активность: |
Примеров нет, чтобы разобраться ^_^ |
18.04.2010, 22:19 | #8
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
SRes
1110101000
offline
Опыт:
9,997Активность: |
Толку от этого эксплоита ровно ноль, ведь можно обращаться только в пределах signed short, надо поковырять другие вызовы printf...
Да и что дает обращение ? Ведь на выходе мы не получаем ничего. |
19.04.2010, 00:18 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revion
offline
Опыт:
483Активность: |
Ну хорошо, есть printf обращающийся к случайной памяти. Ну залезет он туда, попытается найти строчку. Может даже что она там и окажется и он что то да выведет. Или там окажутся какие то данные. Получил, вывел. А дальше что? 1 как ты собираешься считывать эти данные из того что вар вывел пользователю это раз. Во вторых от пользователя в идеале это нужно будет как то скрыть. Ну и даже если ты получишь эти данные что ты с ними будешь делать? В память то ты всё равно записать ничего не сможешь. Есть вариант использования этого всего - определять расположение в памяти определённых переменных или групп переменных, что может помочь при дисассемблинге. А в игре это использовать хз как.. Даже если ты узнаешь что адрес *имени игрока*, скажем, - такой-то, и даже постоянный на одной машине, не факт, что он будет такой же на другой. А если там вообще какой-нибудь sprintf_s используется, который длину строки ещё принимает, что тогда? |
19.04.2010, 05:11 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
там есть ещё %n
ScorpioT1001 добавил:
|
19.04.2010, 05:23 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revion
offline
Опыт:
483Активность: |
Не понял сраказма.. Насколько мне известно в С стандарте вообще нет упоминания о %n. А вапще, компилятор вижуал студии на это говорит что 'n' format specifier disabled. Вар тихо валится если его использовать. |
19.04.2010, 06:48 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ZeToX2007
offline
Опыт:
7,009Активность: |
А я ковырялся над этим несколько лет назад, только с описанием способностей.
|
19.04.2010, 22:19 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
архибоянище, есть вполне джаз функция которой можно вытаскивать аргументы предыдущих функций, зовётся она DisplayTextFromPlayer() |
19.04.2010, 23:27 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
не видел такой) |
19.04.2010, 23:44 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
native DisplayTimedTextFromPlayer takes player toPlayer, real x, real y, real duration, string message returns nothing
с этой функцией работают строковые параметры, можно узнать что за игрок передан параметром, время и прочие данные, возможно также вернуть параметры из предыдущей функции, но там крит 99%. |
20.04.2010, 03:58 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
DioD, а если мы передадим duration как указатель на область памяти и заюзаем %s ?
ScorpioT1001 добавил: тока надо правильно преобразовать инт в флоат |
20.04.2010, 12:10 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
пока работал ретурн баг можно было играться, сейчас лавочка закрылась. |
20.04.2010, 13:14 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
причем тут рб? я сейчас о другом говорю |
20.04.2010, 14:26 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Windrunner
Верь мне!
offline
Опыт:
4,565Активность: |
Мб я тут не в тему но разве рб не закрыли?Оо и как с помощью рб получить код? |
20.04.2010, 21:10 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|