@nnGot583
c#, iOS дизассемблирование

Изминение запроса Amazon DynamoDB?

Привет, пишу сюда потому что совсем отчаялся, я давно изучал код игры и наткнулся на метод и целый класс PurchaseDocument. Грубо говоря он нужен для того чтобы совершать покупки предметов которые сделали другие игроки. Я долго изучал код и пришел к такому выводу:

K этому запросу относиться следующий дизассемблированный код:

62d689e983e2c825612863.png

В этом запросе меня интересуют части {"N": "10"} и {"N": "1"}, в N = 10 присвоена цена товара а в N = 1 - количество скачиваний (по дефолту 1). Задача либо понять "1" на любое нужное число, либо сделать так чтобы количество скачиваний было равным цене товара.

spoiler
62d6942ddc78f678547057.png


В куске кода есть функция 0xed0d78 она устанавливает значения для Expression Attribute Value "N", и встречается она в коде столько же раз, сколько и в запросе.

Я проверял много раз, эта часть кода относиться {"N": "1"} и {"N": "10"}, только поменять значения у меня не получилось:

0x013ded78 cbz x23, 0x13dee44
0x013ded7c adrp x8, 0x2d71000
0x013ded80 nop
0x013ded84 ldr x1, [x8, 0x250]
0x013ded88 mov x0, x23
0x013ded8c movz x2, 0
0x013ded90 bl func.00ed0d78 ; sym.func.00ed0d78

пытался менять 0x250 в "0x013ded84 ldr x1, [x8, 0x250]" но получалось только {"N": ""}

Я плохо разбираюсь в дизассемблере, поэтому буду благодарен любой помощи.
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Слишком мало информации.
Я долго изучал код

Только по выводу дизассемблера или отладчиком ходил?
пытался менять ... "0x013ded84 ldr x1, [x8, 0x250]"

Выглядит разумно, но стоило бы под отладчиком посмотреть, что в x1 оказывается после этой инструкции. Я подозреваю, что адрес строки в памяти, а значит случайные изменения адреса откуда x1 загружается почти наверняка ничего не дадут.
Задача либо понять "1" на любое нужное число, либо сделать так чтобы количество скачиваний было равным цене товара.

Можно попробовать сохранить x1 каким он приходит к адресу 0x13ded40 в каком-нибудь callee-saved регистре (например x24) и перезагрузить обратно его вместо инструкции по адресу 0x13ded84. Как раз между этими адресами есть один nop и adrp x8, 0x2d71000 который теперь будет не нужен.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@nnGot583 Автор вопроса
c#, iOS дизассемблирование
Если ли возможность вычислить адрес x1 без отладчика?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы