Пытаюсь разобраться в функции генерации запросов в приложении. В запросе в параметре передается MD5-строка. Генерится она вот так (.class):
paramSession = dh.a(dh.a(paramSession) + dh.a(str2));
smali:
invoke-static {v0}, Lcom/avito/android/util/dh;->a(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-static {v9}, Lcom/avito/android/util/dh;->a(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/avito/android/util/dh;->a(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
Где: dh.a
- MD5
функция.
paramSession
- некий secretKey
str2
- urlEncodedParams
.
C urlEncodeParams
подбором разберусь. А вот что за secretKey - не ясно. В переменную эту напихивается то url, то хост.
Хочу попробовать вставить toast
, в текст которого я засуну строку paramSession
.
Код toast(smali):
const/4 v10, 0x1
const-string v8, "YOUR MESSAGE @ iOSGods.com"
invoke-static {p0, v8, v10}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v10
invoke-virtual {v10}, Landroid/widget/Toast;->show()V
Не знаю как правильно сунуть код toast
-a в листинг. Собранное приложение постоянно вылетает. Пробовал менять регистры (думал занимаю нужные). Какие еще могут быть проблемы? Может его можно вставлять лишь в определенном месте или что-то вроде того.
Есть ли иной способ получить интересные мне строки до оборачивания их в MD5?
Чтобы сделать инъекцию кода, проще всего вставлять одиночный вызов статик-метода и передавая все нужное уже туда. Именно такой метод предоставляет собой Log.i(). Если класса Log мало, к примеру, хотим сделать Тосты или записать данные в файл, то пишем свой класс со статик-методами, которые будем дергать. Само собой, вся инициализация должна быть статичной. Если надо какой-то стейт, то делаем синглтон живость которого (например, для внешнего сокета) проверяем на каждом вызове. У такого метода есть недостаток: размер кода у метода не должен превышать 65кб, что в общем-то редко, но встреается, к примеру, в гугловых библиотеках. Остается только положить рядом смали-класс с реализацией методов или инъектнуть нужные классы через dx и можно запускать.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Везде написано что include включает контент ресурса (сервлет, JSP или HTML страница) в ответНо не понятно контент какого(где источник) ресурса? Два...
Всем приветВ общем проблема такая: Проект на JAVA и есть NoSQL DB - MongoDB, необходимо работать примерно с 1000000000 записей
Использую для управления яркостью экрана такой метод: