7 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как научиться читать код сайта и зачем это нужно, если вы не программист

Как научиться читать код сайта и зачем это нужно, если вы не программист

Часто возникают ситуации, когда необходимо проанализировать содержимое веб-страницы: посмотреть description, узнать размер какого-то элемента или просто выяснить, какой используется шрифт. С помощью опции «Просмотреть код» можно узнать не только это, но и многое другое – практически всю подноготную сайта.

Для каких целей нужен навык чтения кода и как в несколько кликов посмотреть содержимое сайта? Об этом и многом другом поговорим в сегодняшней статье.

Вёрстка страницы с игрой

Для начала нужно создать страницу, на которой будет отображаться холст. Для этого потребуется совсем немного HTML:

Теперь нужно добавить стили:

Обратите внимание, что в HTML элементу canvas были заданы нулевые ширина и высота, в то время как в CSS указано 100%. В этом плане холст ведёт себя как изображение. У него есть фактическое и видимое разрешение.

С помощью стилей меняется видимое разрешение. Однако при этом размеры картинки останутся прежними: она просто растянется или сожмётся. Поэтому фактические ширина и высота будут указаны позже — через скрипт.

Сделаем то же самое для платформы — сначала опишем её поведение словами, а потом переведём в код. Итак, вот что должна уметь платформа:

  • двигаться влево или вправо в зависимости от нажатой стрелки;
  • понимать, когда игра началась и можно двигаться.

А вот как это будет в виде кода:

Можно было не выделять счёт в отдельный класс и каждый раз обрабатывать вручную. Но здесь реально проще сделать класс, задать нужные методы, чтобы они сами потом разобрались, что и когда делать.

Статья в тему:  Как переустановить стим не удаляя доту

От счёта нам нужно только одно (кроме конструктора) — чтобы он правильно реагировал на касание платформы, увеличивал число очков и выводил их на экран:

У нас всё готово для того, чтобы написать саму игру. Мы уже провели необходимую подготовку всех элементов, и нам остаётся только создать конкретные объекты шарика, платформы и счёта и сказать им, в каком порядке мы будем что делать.

Смысл игры в том, чтобы не уронить шарик. Пока этого не произошло — всё движется, но как только шарик упал — нужно показать сообщение о конце игры и остановить программу.

Посмотрите, как лаконично выглядит код непосредственно самой игры:

Исходный код страницы в Microsoft Edge

Браузер Edge позволяет просматривать, анализировать и даже манипулировать исходным кодом текущей страницы через интерфейс инструментов разработчика.

Чтобы получить доступ к этому удобному набору инструментов, вы можете использовать одно из этих сочетаний клавиш: F12 или CTRL + U . Если вы предпочитаете мышь, вместо этого нажмите кнопку меню Edge (три точки в верхнем правом углу) и выберите в списке пункт «Средства разработчика F12».

После первого запуска инструментов разработчика Edge добавляет в контекстное меню браузера две дополнительные опции (доступные по щелчку правой кнопкой мыши в любом месте веб-страницы): Проверить элемент и Просмотреть источник, последний из которых открывает интерфейс инструментов разработчика с исходным кодом страницы сайта.

У нас есть файл игры. Но вместо исходного кода мы будем изучать память и поведение приложения.

Начнем с поведения игры

При каждом нажатии Enter жизни игрока уменьшаются на 15. Начальное количество жизней — 100.

Изучать память мы будем при помощи Cheat Engine. Это приложение для поиска переменных внутри памяти приложения, а еще хороший дебаггер. Перезапустим игру и подключим к ней Cheat Engine.

Статья в тему:  Почему не работают скрипты в доте 2

Подключение CE к игре

Первым делом мы получаем список всех значений 85 в памяти.

Все значения, которые нашел CE

Нажмем Enter, и показатель жизней будет равен 70 . Отсеем все значения.

Значение найдено

Вот и нужное значение! Изменим его и нажмем Enter для проверки результата.

Значение изменено
Скрин игры, после того как мы нажали Enter

Проблема в том, что после перезапуска игры значение будет уже по другому адресу. Каждый раз отсеивать его нет никакого смысла. Необходимо прибегнуть к сканированию AOB (Array Of Bytes — массив байтов).

При каждом новом открытии приложения из-за рандомизации адресного пространства (ASLR) структура, описывающая игрока, будет находиться на новом месте. Чтобы найти ее, необходимо сначала обнаружить сигнатуру. Сигнатура — это набор не меняющихся в структуре байтов, по которым можно искать в памяти приложения.

После нескольких нажатий на Enter количество жизней изменилось на 55 . Снова найдем нужное значение в памяти и откроем регион, в котором оно находится.

Регион памяти

Выделенный байт и есть начало нашего int32 -числа. 37 00 00 00 — число 55 в десятичной форме.

Я скопирую небольшой регион памяти и вставлю в блокнот для дальнейшего изучения. Теперь перезапустим приложение и снова найдем значение в памяти. Снова скопируем такой же регион памяти и вставим в блокнот. Начнем сравнение. Цель — найти байты рядом с этой сигнатурой, которые не будут меняться.

Начинаем сравнивать байты

Проверим байты перед структурой.

Бинго!

Как видишь, выделенные байты не изменились, значит, можно попробовать использовать их как сигнатуру. Чем меньше сигнатура, тем быстрее пройдет сканирование. Сигнатура 01 00 00 00 явно будет слишком часто встречаться в памяти. Лучше взять 03 00 00 01 00 00 00 . Для начала найдем ее в памяти.

Статья в тему:  Что такое дизейбл в доте

Сигнатура не уникальна

Сигнатура найдена, но она повторяется. Необходима более уникальная последовательность. Попробуем ED 03 00 00 01 00 00 00 .

В подтверждение уникальности получим такой результат:

Сигнатура уникальна

Нам необходимо найти отступ от сигнатуры, чтобы получить ее стартовый адрес, а не адрес жизней. Пока сохраним найденную сигнатуру и отложим на некоторое время. Не беспокойся, мы к ней еще вернемся.

Просмотр кода элемента | исследовать элемент | проинспектировать элемент

Если вдруг нужно просмотреть не весь исходный код, а вывести на экран лишь отдельную его часть, какой-то участок на странице, то предыдущий инструмент не подойдет. Для этого в инструментах разработчика есть другая функция, о которой пойдет речь ниже.

Как просмотреть код элемента на странице:

  1. Открыть нужную страницу сайта;
  2. Вызвать контекстное меню правой кнопкой мыши;
  3. Затем нажать пункт, соответствующий вашему браузеру.
    Google Chrome: «Просмотреть код»
    Opera: «Просмотреть код элемента»
    Яндекс браузер и Mozilla Firefox: «Исследовать элемент»

Проинспектировать отдельный элемент

Кроме того, можно использовать комбинации клавиш на клавиатуре для быстрого доступа к инспектированию элемента.

Горячие клавиши (кнопки):

Google Chrome: Ctrl+Shift+I и Ctrl+Shift+C

Opera: Ctrl+Shift+I и Ctrl+Shift+C

Mozilla Firefox: Ctrl+Shift+I и Ctrl+Shift+C

Яндекс браузер: Ctrl+Shift+I и Ctrl+Shift+C

После проделанных действий, в этом же окне браузера откроется исходный код web страницы:

Посмотреть HTML CSS код сайта

Весь HTML код будет в левой большой колонке. А CSS стили – в правой.

Посмотреть css стили в браузере

Преимуществом данного способа, безусловно, является и то, что у пользователя есть возможность изменить исходный код, править стили. То есть, можно редактировать стили на сайте и посмотреть, как он будет выглядеть с теми или иными стилями, без необходимости сразу вносить изменения в файлы, которые находятся на серверах хостинга. Чтобы изменить или добавить программный код, необходимо сделать двойной клик на нужном фрагменте или участке. Конечно же исправление кода в браузере не внесется на серверах хостинга. Поэтому в дальнейшем, в любом случае, придется копировать этот код и прописать в файлы.

В этой видео-инструкции подробно рассказано и показано, как работать с инструментами разработчика:

Вот так вот просто в режиме онлайн, прямо в браузере, можно посмотреть исходный код страницы сайта, получить основные данные о HTML и CSS коде, изменить и скопировать их, без необходимости скачивать файлы этого сайта на компьютер.

Кстати, неопытных интернет-пользователей, изменивших код страницы и ждущих, что он сохранится, ждет разочарование. Ведь после обновления страницы, все изменения на ней пропадут. Этого мало, чтобы взломать сайт 🙂

простой способ: используйте онлайн-инструмент http://www.javadecompilers.com/apk, загрузить apk и получить исходный код.

процедура декодирования .файлы apk, пошаговый метод:

Шаг 1:

создайте новую папку и скопируйте ее.файл apk, который вы хотите декодировать.

теперь переименуйте расширение этого .apk файл .zip (например, переименовать из filename.apk для имени файла.ZIP) и сохраните его. Теперь вы можете доступ к классам.DeX файлы и т. д. На этом этапе вы можете видеть drawables, но не xml и java-файлы, поэтому продолжайте.

Шаг 2:

теперь этот экстракт .zip-файл в той же папке (или новой папке).

скачать dex2jar и извлечь его в ту же папку (или новую папку).

ход занятия.dex файл на dex2jar папка.

теперь откройте командную строку и измените каталог на эту папку (или новую папку). Тогда пиши d2j-dex2jar classes.dex (для Mac terminal или ubuntu напишите ./d2j-dex2jar.sh classes.dex ) и нажмите enter. Теперь у тебя есть занятия.Декс.dex2jar файл в той же папке.

скачать Java decompiler, дважды щелкните по jd-gui, нажмите «Открыть файл» и откройте классы.Декс.dex2jar файл из этой папки: теперь вы получаете файлы классов.

сохранить все эти файлы классов (в JD-gui нажмите Файл — > Сохранить все источники) по имени src. На этом этапе вы получаете источник java, но .xml-файлы по-прежнему не читаются, поэтому продолжайте.

Шаг 3:

теперь откройте другую новую папку

положить в .apk файл, который вы хотите декодировать

скачать последнюю версию apktool и окно установки apktool (оба могут быть скачано по той же ссылке) и поместите их в ту же папку

откройте командное окно

Теперь запустите команду apktool if framework-res.apk и далее

apktool d myApp.apk (где myApp.apk обозначает имя файла, которое вы хотите декодировать)

теперь вы получаете папку с файлами в этой папке и можете легко читать xml-файлы apk.

Шаг 4:

это не какой-либо шаг, просто скопируйте содержимое обеих папок (в данном случае обеих новых папок)в одну

и наслаждайтесь исходным кодом.

это альтернативное описание-на всякий случай, если кто-то застрял с описанием выше. Выполните следующие действия:

  1. скачать apktool.bat (или apktool для Linux) и apktool_ .jar от http://ibotpeaches.github.io/Apktool/install/
  2. переименуйте файл jar сверху в apktool.jar и поместите оба файла в одну папку

  • откройте окно dos ( cmd.exe ) и перейдите в эту папку; убедитесь, что установлена среда Java (для Linux также проверьте заметки о необходимых библиотеках)
  • начало: apktool decode [apk file]

    промежуточный результат: файлы ресурсов, AndroidManifest.xml

    распакуйте файл APK с помощью распаковщика по вашему выбору

    промежуточный результат: classes.dex

  • скачать и извлечь dex2jar-0.0.9.15.zip от http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=
  • перетащить classes.dex на dex2jar.bat (или введите

    dex2jar.bat classes.dex в коробке DOS; для Linux используйте dex2jar.sh )

    промежуточный результат: classes_dex2jar.jar

  • распакуйте classes_dex2jar.jar (может быть необязательным в зависимости от используемого декомпилятор)
  • декомпилируйте файлы классов (например, с помощью JD-GUI или DJ Декомпилятор)

    результат исходный код

    Примечание: не разрешается декомпилировать пакеты сторонних производителей; это руководство предназначено для восстановления личного исходного кода только из файла APK; наконец, результирующий код, скорее всего, будет запутан

    пока вы можете декомпилировать свой APK файл, вы, вероятно, нажмете одну большую проблему:

    он не собирается возвращать код, который ты написал. Вместо этого он будет возвращать все, что компилятор встроил, с переменными, заданными случайными именами, а также функциями, заданными случайными именами. Это может занять значительно больше времени, чтобы попытаться декомпилировать и восстановить его в код, который у вас был, чем начать все сначала.

    к сожалению, такие вещи убил много проекты.
    В будущем я настоятельно рекомендую изучить систему управления версиями, например CVS, SVN и git etc.

    и как это сделать.

    существует также новое приложение на Play Store С помощью которого можно декомпилировать apk (системные приложения тоже) и просмотреть исходный код прямо на вашем смартфоне. Она сохраняет файлы на SD карту, так что вы можете просмотреть его на вашем компьютере. Для этого не Требуется root или что-то еще.

    просто установите и получайте удовольствие. Я думаю, что это самый простой способ декомпилировать приложение.

    apktool это лучшее, что вы можете попробовать. Я сохранил с ним xml, но, честно говоря, я не знаю, как он будет работать с ним .Java-код.

    Я бы рекомендовал вам иметь репозиторий кода, даже если вы единственный кодер. Я использовал Проект Locker для моих собственных проектов. Это дает вам бесплатный SVN и Git РЕПО.

    эти две статьи описывают, как сочетать использование apktool и dex2jar взять APK файл и создать проект Eclipse, который может создавать и запускать его.

    1. использовать apktool to получить файлы ресурсов из apk
    2. использовать dex2jar чтобы получить файл jar, содержащий классы в формате, который понравится Eclipse.
    3. создать проект Eclipse укажите его на файлы ресурсов и новый файл jar
    4. откройте файл jar с помощью утилиты zip и удалите существующие ресурсы
    5. откройте файл jar с помощью JDGui для просмотра исходного кода
    6. Возьмите любой исходный код, который вам нужен от JDGui , вставьте его в класс внутри Eclipse и изменить его
    7. удалите этот класс из файла jar (так что у вас нет одного и того же класса, определенного несколько раз)
    8. запустить его.

    apktool будет работать. Вам даже не нужно знать хранилище ключей для извлечения исходного кода (что немного страшно). Основным недостатком является то, что источник представлен в формате Smali вместо Java. Другие файлы, такие как значок и основной.xml проходит отлично, хотя и может стоить вашего времени, чтобы по крайней мере восстановить их. В конечном счете, вам, скорее всего, придется переписать свой Java-код с нуля.

    вы можете найти apktool здесь. Просто скачайте apktool и соответствующий помощник (для Windows, Linux или Mac OS). Я рекомендую использовать такой инструмент, как 7-Zip, чтобы распаковать их.

    есть несколько способов сделать это:

    используйте функцию «профиль или отладка APK» в Android Studio 3.0.

    Это позволяет открывать и исследовать APKs в Android Studio. Занятия декомпиляция в smali. Ресурсы не извлекаются, и такие вещи, как» перейти к определению»,» найти все ссылки » и отладка не работают без исходного кода (android studio 3.0 canary 9). Некоторые дополнительные функции smali могут работать с smalidea.

    Jadx декомпилирует код в данном APK в исходные файлы java.

    Apktool-это инструмент командной строки, который извлекает ресурсы и декомпилирует код в smali для данного apk. Вы также можете перекомпилировать с помощью apktool. Вот пример этого в действии:

    может быть легко увидеть источник:

    в Android studio 2.3, Build -> Analyze APK -> Select the apk that you want to decompile .
    Вы увидите, что это исходный код.

    Я покажу вам другой способ декомпилировать .apk файлы.

    вы можете выполнить первые 2 шага от «prankul Гарг«. Так что у вас есть еще одна возможность:

    Шаг 3′:

    скачать «JD-GUI», это легко найти. Открой свой .Джар файл в » JD-gui.исполняемый.» (Файл > Открыть файл > ‘ нашел свой .Джар «файл»). После этой процедуры можно сохранить все ресурсы в .zip.

    1st-вы должны переименовать .apk до .zip

    2nd-вы должны декодировать .Декс!—2— > файл (если хотите, расшифруйте .apk до dex2jar, это возможно)

    3rd-вы должны декодировать .Джар С JD-GUI

    ниже онлайн:

    это сделать все одним щелчком мыши: decompiled .java файлы + ресурсы + xml (в одном .zip-файл) с очень хорошим декомпилятором (Jadx возвращает java-код в местах/функциях, где другие компиляторы возвращают комментарии внутри функции, такие как «невозможно декомпилировать» или некоторый ассемблер/машинный код android)

    Apktool по инженерный 3-й партии, закрытые, бинарные приложения для Android.

    Он может декодировать ресурсы почти в исходную форму и перестраивать их после внесения некоторых изменений.

    Это позволяет отлаживать код smali шаг за шагом. Также это упрощает работу с приложением из-за проектной файловой структуры и автоматизации некоторых повторяющихся задач, таких как построение apk, так далее.

    этот сайт https://www.apkdecompilers.com/ сделал это автоматически.

    сначала я попробовал сайт, упомянутый в принятом ответе, но это не сработало для меня.

    Я лично рекомендую Показать Java Android App чтобы получить исходный код. Вы можете скачать его из play store или из здесь

    apktool — это путь. Онлайн-сервис apktool также существует:http://www.javadecompilers.com/apktool

    некоторые ограничения, очевидно, существуют из-за сервиса «online nature»: вы можете извлекать и исследовать активы и файл манифеста, но на данный момент невозможно перекомпилировать приложение.

    тем не менее, это без проблем способ «открыть» приложение для android.

    вы можете попробовать DexPatcher. Он даже интегрируется с Android Studio. Он использует Apktool и Dex2Jar внутренне.
    Вы также можете использовать эти инструменты независимо. Apktool декомпилирует apk и извлекает .файлы dex, которые могут быть преобразованы в jar с помощью Dex2Jar. Банку можно декомпилировать с помощью JD-GUI. Вы можете увидеть код Java с помощью этого инструмента. Хотя сходство декомпилированного кода с фактический код не может быть гарантирована. Есть некоторые продвинутые обфускации кода инструменты, доступные на рынке, которые испортят код, чтобы затруднить декомпиляцию / понимание. например. Должны быть

    Действующие промокоды на Genshin Impact сентябрь 2021

    • Prime Gaming — 20 000 мора, 1 Первородная смола, 8х Волшебная руда усиления
    • Prime Gaming — 8х опыта героя, 5х грибная пицца, 60 камней истока
    • GENSHINGIFT – 50 камней истока и 3 опыта героя (Работает, только если вы не использовали код до этого, ранее за код давали 50 камней истока и 5 книг опыта искателя приключений)

    Для получения некоторых наград нужна учетная запись Amazon Prime.

    Взламываем исходный код через IlSpy и dotPeek

    Для Windows-сборок Unity компилирует и сохраняет исходный код всех игровых скриптов в директорию Managed . Интересуют нас следующие библиотеки: Assembly-CSharp.dll , Assembly-CSharp-firstpass.dll и Assembly-UnityScript.dll .

    Для декомпиляции и просмотра managed-кода .NET библиотек (коими и являются наши жертвы) существуют довольно удобные и при этом бесплатные утилиты: IlSpy и dotPeek .

    Данных подход особенно эффективен для наших целей: Unity очень скупо оптимизирует исходный код игровых скриптов, практически не изменяя его структуру, а также не скрывает названия переменных. Это позволяет с легкостью читать и понимать декомпилированный материал.

    голоса
    Рейтинг статьи
  • Ссылка на основную публикацию
    Статьи c упоминанием слов: