> Нашел один метод обхода, воспользовавшись неофициальным клиентом для андроида
Можно попробовать отследить запросы, которые он делает, с помощью HTTP-сниффера.
И делать такие же.
С VK возможно работать не только через API, но и имитируя запросы от веб-интерфейса, который в браузере. Это разные вещи, функционал местами различается...
> выложи библиотеку куда-нибудь
Коммерческая тайна. За всё это мне еще и деньги платят.
Весит несколько мегабайт.
> Есть, но зачем?
Для удобства и RAD. И в целом польза для отрасли - ниже порог вхождения.
> Хз, никогда не пользовался.
Примерно так.
А пока я пошел по иному пути.
Понял, что главное в моем случае, это сам факт наличия метода Java с нужной сигнатурой, а не то, что в его тело (пусть там будут ошибки - да и пофиг, всегда можно легко отладить, т.к. это уже Java, и код мой, а не чужой)
И так порассуждав, я взял jd-gui, декомпилировал то приложение, которое и "подделывал", и весь Java behavior прямо кучей побросал в новосозданный проект, и быстренько залатал все error marker'ы, просто чтобы компилировалось, ну и по возможности чтобы работало; логирование добавил везде на всякий случай.
Итог: буквально полчаса - и вуаля: пациент скорее жив, чем мертв. Приложение хотя бы загружается.
))
jcmvbkbc: > Я не специалист в java, но вижу следующие три принципиальные возможности:
Вы не поняли.
Я имел в виду - чем открыть библиотеку .so (ARM или x86), чтобы можно было что-то там понять, и не сойти с ума как в случае с IDA?
> Я бы использовал gdb, потому что я всегда использую gdb.
А гуй для него есть?
А в эклипсе (+ADT) вот гуй (в перспективе Debug) - это для какого отладчика, вы не в курсе?
А в Android Studio?
jcmvbkbc: спасибо, но тут-то и трудности: Как понять, как библиотека получает JNIEnv? Тот асм, который выдает IDA Pro, мне кажется слишком тяжелым для этого. Может, есть путь легче? И какой именно отладчик использовать в данной не совсем типовой ситуации?
jcmvbkbc: > Ну так значит умеешь? Не вводи в заблуждение тех кого просишь тебе помочь.
Пройтись могу. Ничего интересного найти - не могу. И пока буду искать в этом асме - с ума сойду.
> кто кого вызывает
Java-behavior вызывает native-метод из библиотеки.
Затем метод из библиотеки должен вызвать несколько методов в Behavior. Как именно - я не знаю, библиотека для меня почти черный ящик.
В Behavior нет нужного метода - соответственно, "JNI ERROR" и экспешн.
И всё. Больше никакой информации. Как узанть, какого именно метода.
А что мне даст objdump?
Зачем оно мне? У меня есть IDA Pro, я могу ею пройтись по .so, но хрен там че поймешь, а главное - сохранить-то обратно нельзя, если я там что-то изменю.
Я ж говорю, сложность в том, что всё слетает в JNI ERROR, вроде бы проблема в отсутствии метода, но какого именно - и вообще никакой отладочной информации - не только не дается, но и клещами не вытащишь.
Денис Загаевский: вам есть что по делу сказать, или вы потралить пришли? Ну, если потралить, то вы лишний раз подтверждаете, что ни здесь, ни на SO нет никого, кто бы мог помочь в сравнительно сложной ситуации. А в простых мне помогать не очень и надо - сам разберусь, дело времени.
А что насчет Fiddler? Я использовал его в паре с Genymotion, правда на HTTPS не припомню, чтоб пробовал. А еще можно же на сам Android поставить сниффер, есть несколько в плеймаркете, в т.ч. умеют HTTPS, но в сравнении с фиддлером они не айс
splunk: вы сначала узнайте, что вообще такое энтерпрайз, и каковы его особенности. Ну нет никакой связи между энтерпрайзом и сокрытием членов. Про "защиту" вообще бред полный.