Всем привет.
Сегодня, в этот субботний вечер, я хочу предложить почитать интервью с Jaspreet Singh (известному также как Jasi2169) — участником команды реверсеров URET.
Интервью имело место пару дней назад.
Я надеюсь, что этот материал представит интерес ИТ-сообществу, возможно, кто-то захочет задать вопросы, которые мы потом отправим Jasi.
Вопросы пишите в комментариях. Набор вопросов будет производиться до конца января, после чего я их попытаюсь свести вмести и отправить адресату.
Но это уже будет совсем другая публикация (если будет).
Итак…
Я
Привет, Jasi! Если не возражаешь, я хотел бы задать тебе несколько вопросов для всех читателей ресурса Habrahabr.
Jaspreet Singh
Да, давай.
Я
Мы с тобой сейчас общаемся через Hangouts — тебя не беспокоит возможная утечка данных о твоей личности? Кстати, у тебя есть учётная запись в Google+. В наше время все параноики — но не ты. Почему – ведь принимая во внимание твою деятельность, ты имеешь все права беспокоиться об анонимности?
Jaspreet Singh
Мне плевать на всё это, я знаю, что Google известно откуда я. Я просто не хочу, чтобы кто-то знал меня в лицо. И вообще лучше держаться от США подальше, если хочется свободы.
Я
То есть никто тебя не беспокоит касательно того, что ты взламываешь программное обеспечение? Похоже, что индийские законы очень терпимые!
Jaspreet Singh
Я не нарушаю индийские законы, и я не взламываю индийское программное обеспечение, если не считать модификацию игр – и то это приватные взломы в целях обучения.
Кроме того, я перестал публиковать взломанный софт с октября 2016 года, сейчас я в основном занят работой над URET Patcher и физически не взламываю программное обеспечение. Правда, я выпустил два — это был МХ Рlayer по просьбе пользователя ositkp с форума 4pda – он написал мне, что новая версия крашится при запуске. И ещё был ХРrivacy Рremium – разработик просто заблокировал своё приложение для Индии, и кстати он в курсе этого взлома. Я не собираюсь больше выпускать взломанные релизы, если только на то не будет какой-то особенной причины.
Лучше делать патчи, кейгены или публиковать серийные номера, чем взламывать софт – в этом случае ты даёшь пользователю выбор кликнуть PATCH/GENERATE или нет – и в этом случае это его ответственность в нарушении возможных законов. Так, кстати, работает Lucky Patcher: он не взламывает программное обеспечение, а даёт выбор пользователю — делать это или не делать. Мы просто оттачиваем наши способности реверсинга и нам это нравится, ведь знание – сила. Ну и кстати это улучшает навыки разработки у производителя программного обеспечения.
Я
Ты не мог бы немного рассказать о себе? Всё, что мне известно, это то, что тебя зовут Jaspreet Singh, ты из Индии, и ты являешься участником команды URET (United Reverse Engineering Team).
Jaspreet Singh
Ага, ну тогда немного обо мне.
Да, это верно – я из Индии, и было время, когда я хотел уехать в США, но не получил должных оценок на экзамене SAT, хаха, не повезло, да уж.
Я
Экзамен SAT? Что это?
Jaspreet Singh
Экзамен для обучения в США.
Ну вот, и когда я купил свой первый телефон на Android – это был конец 2011 года и Samsung Galaxy Y. Я тогда учился в 12 классе – ну это выпускной класс по меркам США.
Первое, что я установил – это был медиаплеер.
Я скачал PowerAmp. Он перестал работать через 15 дней, а у меня не было ни банковского счёта, ни денег – ничего, а плеер не работал, как бы мне этого не хотелось.
Ну я и начал копаться в Google, я понятия не имел, что такое патчи, краки, я был совершенно новым в этом мире. Кстати, сейчас у меня довольно много легально приобретённого программного обеспечения и две разные легальные лицензии для PowerAmp. И я действительно считаю, что мы должны поддерживать разработчиков хорошего софта, потому что кому, как не мне не знать, что разработка – это реально непросто.
Я
Ну и в конце концов ты построил свой казино с блекджеком и шлюхами? )))
Jaspreet Singh
Нет, приятель, это ещё только начало истории.
Итак, я искал что-то типа «poweramp music player version full блаблабла» – чёрт я до сих пор это помню! – и я нашёл патчер плеера от chelpa (разработчик Lucky Patcher – прим.). В общем я посмотрел видео, понял, как это делается, пропатчил плеер и начал искать этого парня chelpa.
Нашёл я его на xda, ну и пишу ему: «Я хочу быть как ты», — хаха, я это тоже до сих пор помню! Ну и всё началось…
Я спросил его, как вообще делаются такие вещи, ну и он ответил, что нужны специальные инструменты, рассказал мне про IDA Рro. Мне стало любопытно, я опять нашёл различные обучающие видео – и понеслась!
Надо сказать, что этот дизассемблер от HexRays очень сложный поначалу. Но тем не менее это лучший инструмент для статического анализа приложений.
Я как-то спросил chelpa, зачем он этим занимается? И он ответил: «Это повышает мои знания, иногда у пользователя попросту нет интернета или просто невозможно совершать онлайн-покупки, да и вообще зачастую разработчики надувают своих пользователей». Я вообще всегда считал и считаю, что chelpa – мой наставник.
Ну вот так всё и началось – chelpa подсказал мне сравнить оригинальный файл PowerAmp и патченный, ну и показал пару других приложений и рассказал, как он их патчит.
Те патчи были так, ерунда, это потом я начал изучать Java и Visual Basic – всё есть в интернет! В 2014 году я уже начал понимать основные алгоритмы, начал делать патчи под Windows, некоторые лоадеры. И вот однажды я опубликовал простой однобайтный патч для WinCHM на площадке URET – и тут на форуме какой то парень под ником Jaspreet Singh пишет: «Ну ты и ламер, тут надо кейгенить!» Вот так я и стал делать кейгены, в основном они на .Net, ну несколько есть на нативе.
Это было то время, когда меня начали атаковать производителя софта, если такое случалось – ну хорошо, я переставал обновлять свои патчи и кейгены, но тем не менее со временем мой блог, где я всё это публиковал, Google удалил из-за жалоб DMCА. Вот так я переехал на Wordpress.
Я
А ты вообще изучал IT (ну я имею в виду колледж, университет и т.д.) или это просто хобби?
Jaspreet Singh
Да, я получил степень бакалавра в колледже, но после этого я не хочу больше учиться.
Я
Почему? Почему ты не хочешь получить более высокую степень?
Jaspreet Singh
Нет, хватит! В Индии все эти степени не имеют значения, это простая формальность. У нас кастовая система, она и определяет, попадёшь ты на работу или нет.
Я
Да, выглядит глупо.
Ты тратишь столько времени на свою деятельность: куча постов на jasi2169.wordpress.com, пишешь на форуме 4pda, на URET.in – там ты вообще в статусе модератора. У тебя вообще время на личную жизнь остаётся?
Jaspreet Singh
У меня была работа в мультинациональной комапнии Wipro – я помню, как приходил на два собеседования в IBM и Wipro, ну и потом меня пригласили на работу. Но потом Winpro захотели, чтобы я получил степень магистра в течение 4 лет по контракту (они оплачивали обучения), но я не хочу больше никакого обучения. В общем, я ушёл.
Ну как я и говорил, Google удалил www.jasi2169.blogspot.com, на котором я каждый день публиковал по 2-3 патча на разный софт, я переехал на Wordpress, ну и честно говоря я сейчас там не такой активный, как был раньше.
Короче, сейчас я безработный и как-то пока не ищу, потому что на работе они тебя связывают обязанностями делать то и, что тебе не нравится. Я написал одно приложение для маркета, сейчас оно приносит мне примерно $100 в месяц. Мне в принципе хватает – я молодой холостяк и живу с родителями.
Да, я посматриваю пару форумов, но не так уж и много – в основном, отслеживаю проблемы с URET Patcher и URET Android Reverser Toolkit, так что с 2017 года времени у меня хватает.
Я
$100 в месяц – это достаточно для холостяка в Индии?
Jaspreet Singh
Честно говоря – да. Ну и к тому же мой отец – бывший военный, он получает пенсию, и нам хватает. Может когда-то я женюсь и мне будет мало. Я понимаю, что сейчас деньги – это важно, но как суждено – так и будет.
Я
Итак, взлом программ – это твоё хобби. А с тобой связывались производители взломанного софта и предлагали работу?
Jaspreet Singh
Нет, никто. Я однажды написал разработчикам Mini Militia, что могу закрыть несколько уязвимостей, но их это не заинтересовало.
Я сейчас по ночам занимаюсь ещё веб-дизайном, ну это типа фрилансинг. Ну а днём сплю. Мне нравится работать ночью.
Я
И какие планы на будущее?
Jaspreet Singh
Ну вообще было бы неплохо получить хорошую работу в Google – там хорошо платят и хорошая атмосфера, хоть мама не орёт :) Частная работа плохо оплачивается, и понятно, что рано или поздно надо будет браться за ум и будет очень сложно. Сейчас крупные компании приходят в крупные университеты и нанимают работников оттуда, их не интересуют выпускники маленьких учебных организаций. Ну и кастовая система, я уже говорил.
Я
Понятно.
Кстати, www.URET.in зарегистрирован в Индии. У вас нет проблем с жалобами на ресурс?
Jaspreet Singh
Честно говоря, я вообще не знаю лично этих парней. Разные люди из разных мест участвуют в команде, даже администраторы хоть родом из Индии, но живут в разных странах. Это обычная команда реверсеров, я знаю и очень уважаю другие команды — Core, lz0, arteam, at4re, SnD — талантливые ребята в разных странах, которые живут своей простой жизнью.
Я
Так вы вообще не общаетесь? Каждый релиз – это результат труда одного человека, у вас нет общих релизов?
Jaspreet Singh
Ну, мои релизы – это результат только моей работы. Я выпускаю их от имени команды, они предоставили мне платформу, но вообще у меня есть и свой блог, и своя платформа тоже.
Я
Интересно, то есть в команде у вас нет никакого общения – только общая платформа?
Jaspreet Singh
Нет, ну мы общаемся, но не более – все анонимны, хотя кто из какой страны мы знаем.
Я
Кроме тебя.
Jaspreet Singh
Ну я тоже анонимен – никто не знает, где я живу в Индии и как я выгляжу.
Я
Ну принимая во внимание, что в Индии миллиард человек – это да.
Jaspreet Singh
Да, людей много.
Я
Хорошо, так а почему ты выбрал URET?
Jaspreet Singh
Не знаю, совершенно случайно, я был на форуме команды SnD, ну и услышал, что там какая-то команда расширяет клуб индийских реверсеров, я пообщался с ними, а потом Phoenix предложил мне войти в команду, я и согласился.
Я
Понятно.
А что ты думаешь о развитии в ОС Android и приложений под неё? Стало сложнее взламывать?
Jaspreet Singh
Нет, не сложнее. Сервера Google как работали, так и работают, я могу обходить проверки как и раньше. Всё что нужно – это Xposed. С его появлением вообще не нужно менять код.
Я
Но вроде ж Xposed для новых версий Android ещё не вышел?
Jaspreet Singh
Нет, под Android 8 уже вышел, две недели назад.
Правда, ещё бета.
Я
Ясно.
Давай поговорим о URET Patcher. Это воя идея или кто-то помогал из команды? Я знаю, что chelpa помогал, верно?
Jaspreet Singh
Это моя идея и над ней работал только я, но да — chelpa помогал. Мы общались, особенно касательно изменений в Android 8, в том числе и применительно к работе Lucky Patcher в этой ОС. Ну ты знаешь Lucky Patcher – он патчит код и dalvik, его chelpа придумал и поддерживает.
Chelpa здорово помог мне в работе с dalvik, особенно с патчингом и проверкой CRC на Lollipop, а то там с каждой перезагрузкой устройства все изменения слетали.
Chelpa вообще очень крут.
Я
Но в новых версиях Android Dalvik сменился на ART.
Jaspreet Singh
Ну да, но это даже проще. Dalvik требовал больше правок, это не просто замена или добавление байтов, как в Windows, в Android даже замена одного байта требует патчинг md5, crc32, adler32 – иначе система не примет файл.
Я
То есть с переходом на ART стало даже проще?
Jaspreet Singh
Не проще, тоже есть нюансы, но стало требоваться меньше шагов в патчинге, чем с Dalvik. Да, немного сложнее стали алгоритмы, появилась необходимость определять процессор и разрядность, определять положение системы, и только потом уже работать – этого не было в Dalvik, но зато было больше шагов в правке подписей и прочего.
Ну везде свои нюансы.
Я
Я знаю, что ранее ты выпускал достаточно много патчей под конкретные приложения Android. Потом появился URET Patcher – решение «всё-в-одном», а сейчас ты пытаешься сделать некий общий генерик, который будет работать для любого приложения – без создания отдельных патчей. Я всё верно изложил?
Jaspreet Singh
Ну да, в принципе это уже сделано – называется эмуляция лицензий и биллинга. Этот подход представляет собой офлайн-подмену ответов серверов Google. Таким образом, приложение будет считать себя лицензионным вечно.
Пока что онлайн-проверка не обманывается, но у меня и в эту сторону есть несколько идей. Когда я это реализую, это будет чума. Разработчики не смогут это обойти, но пока это только планы.
Я
А какая тогда разница URET Patcher от Lucky Patcher, Freedom и всех других решений, «эмулирующих» ответ Google на запрос лицензии?
Jaspreet Singh
Freedom и LP в этом похожи, а URET Patcher – это другое. Я сделал фактический клон серверов Google, который отправляет верный ответ на запрос, рассчитанный по правильному алгоритму с полным обходом всех библиотек Google в приложении.
Я
Ты упомянул обман онлайн проверки. Так это и есть твои планы на развитие в будущем? Почему я спрашиваю – последнее обновление URET Patcher было 31 октября 2017 года, а другой твоей разработки — URET Android Reverser Toolkit – 20 июня 2017 года. После этого были релизы для программ под Windows, и вообще пошли слухи, что тебе надоел Android, и ты перешёл на Windows.
Jaspreet Singh
Нет, те релизы — это меня просто некоторые близкие люди попросили, вот я и выпустил парочку под Windows.
Я
Ну тогда – кратко – какие планы на развитие URET Patcher?
Jaspreet Singh
Ну мне надо завершить список всего, что должно быть сделано и изменено в URET Patcher, а потом мне надо выпасть из жизни дней так на 4-5. Просто когда я обновляю этот патчер, мне обычно требуется именно столько времени, при чём по 16-18 часов работы каждый день. Надо проверить работу на каждой версии Android в эмуляторах, проверить все возможные ситуации, чтобы исключить ошибки и сбои.
Сейчас я жду обновление до Android 8 на моём устройстве, после чего начну работать. Я уже сделал некоторые исправления в патчах под Android 8, и их один пользователь даже протестировал на своём устройстве, но перед общим релизом я хочу всё проверить сам.
Сейчас я планирую в основном некоторые правки, добавление пары дополнительных возможностей, обновление патчей некоторых программ – ну и конечно онлайн-проверка, о которой я уже говорил.
Я
Ставлю на то, что твоё устройство – это OnePlus 5.
А вообще выглядит как очень кропотливая работа. Надеюсь, кто-нибудь оценит такие усилия и предложит тебе действительно хорошую роботу!
Jaspreet Singh
Нет, у меня Galaxy S7.
При чём б/у )
Я
Чёрт, я продул ставку!
Jaspreet Singh
Хаха, да.
Сейчас вот выйдет S9 и начнутся продажи дешёвых S8, тогда я продам S7 и перейду на S8. Я в принципе всё время так делаю, это позволяет мне получать самые последние обновления Android. Потому что общая политика Samsung – два мажорных обновления, после чего поддержка фактически прекращается.
В принципе, именно так я узнал, что патчи URET Patcher и Lucky Patcher на Android 7 в телефонах Samsung вызывали перезагрузку устройства.
Я увидел это на S7, после того, как мне многие пользователи об этом написали. Оказалось, что это вызвано Knox – я решил проблему и отписался chelpa, он поправил это и в Lucky Patcher.
Я
А почему именно Samsung? У разных производителей ведь разные защиты?
Jaspreet Singh
Ну я предпочитаю Samsung, потому что больше всего проблем именно с ними. Ну и к тому же их в мире больше всего. Да и нравится мне Samsung!
Я
Ясно.
Я думаю, что у читателей Habrahabr могут появится ещё вопросу к тебе, после чтения этого материала. Могу я их собрать вместе, а потом задать тебе?
Jaspreet Singh
Да нет проблем, спрашивайте!
Пока!
Комментариев нет:
Отправить комментарий