Интервью с Jasi2169

z8xrqz2lrgdwvbnqsmv7cnsl7ak.png

Всем привет.

Сегодня, в этот субботний вечер, я хочу предложить почитать интервью с 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
Да нет проблем, спрашивайте!

Пока!

© Habrahabr.ru