Декомпиляция приложений
В статье мы работали только с дизассемблированным кодом приложения, однако если в большие приложения вносить более серьезные изменения, разобраться в коде smali будет гораздо сложнее. К счастью, мы можем декомпилировать код dex в Java-код, который будет хоть и не оригинальным и не компилируемым обратно, но гораздо более легким для чтения и понимания логики работы приложения. Чтобы сделать это, нам понадобятся два инструмента:
- dex2jar — транслятор байт-кода Dalvik в байт-код JVM, на основе которого мы сможем получить код на языке Java;
- jd-gui — сам декомпилятор, позволяющий получить из байт-кода JVM читаемый код Java. В качестве альтернативы можно использовать Jad (www.varaneckas.com/jad); хоть он и довольно старый, но в некоторых случаях генерирует более читаемый код, нежели Jd-gui.
Использовать их следует так. Сначала запускаем dex2jar, указывая в качестве аргумента путь до apk-пакета:
4.Получение доступа при помощи «Request code»
Еще один вариант. Во время установки программы или после запуска установленной программы, на экране появляется окно с регистрацией. В папке с установочным файлом должен быть keygen.exe, crack.exe или что-то еще.
Пример окна регистрации (рис.4):
рис.4 Начало регистрации с «Request code»
Иногда нужно выбрать режим регистрации, например, выбрать «ввести серийный номер». На экране появляется окно для ввода серийного номера. (рис.5)
В данном случае:
— Get an activation code — получить код активации
— Enter an activation code — ввести код активации (нужный нам вариант)
Открываем из папки с установкой программы файл keygen.exe (crack.exe, …) (рис.6).
Теперь нам нужно скопировать «Request code» из окна на рис.4 (рис.5) и вставить в окно на рис.6. Выделяем Request code и нажимаем Cntr+C (горячая клавиша копировать).
Вставляем в последнее окно скопированный код (Cntr+V).
Обратите внимание!!!
Код скопировался не полностью, а только первая строчка. Вторую строчку кода нужно скопировать отдельно, в окне на рис.6 нужно поставить пробел, скопировать и вставить оставшуюся часть «Request code»
Должно получиться так (рис.7):
рис.7 Генератор после вставления «Request code»
После этого в программе на рис.7 нажимаем кнопку «Calculate» (иногда называется Generate). Должно получиться так (рис.8):
Копируем «Auth code» из программы рис.7 в окно на рис.5 и получаем так (рис.9):
Нажимаем Next или Ok. Нам должны сообщить, что регистрация прошла успешно. Теперь программой можно пользоваться бесплатно.
Такая ситуация встречается довольно часто. Главное не забывайте, что Request code состоит из двух строчек.
Последовательность действий:
- Установить программу
- Запустить программу
- Выбрать режим ввода серийного номера (Enter …)
- Открыть keygen
- Скопировать «Request code» из программы в «keygen» (обе строчки)
- В «keygen» нажать кнопку сгенерировать
- Скопировать код, полученный в «keygen»
- Вставить его в требуемое место в программе (Cntr+V)
- Нажать готово
Заявление
Размер патчей может варьироваться от нескольких байты сотням мегабайты; таким образом, более значительные изменения подразумевают больший размер, хотя это также зависит от того, включает ли исправление файлы целиком или только измененные части файлов. В частности, патчи могут стать довольно большими, когда изменения добавляют или заменяют непрограммные данные, такие как файлы графики и звука. Такие ситуации обычно возникают при исправлении компьютерные игры. По сравнению с первоначальной установкой программного обеспечения установка исправлений обычно не занимает много времени.
На случай, если операционные системы и компьютер-сервер программного обеспечения, патчи играют особенно важную роль в исправлении дыр в безопасности. Некоторые критические исправления связаны с проблемами с драйверами. Для исправлений может потребоваться предварительное применение других исправлений или может потребоваться предварительное или одновременное обновление нескольких независимых программных компонентов. Чтобы упростить обновление, операционные системы часто предоставляют средства автоматического или полуавтоматического обновления. Полностью автоматическим обновлениям не удалось получить широкую популярность в корпоративных вычислительных средах, отчасти из-за вышеупомянутых сбоев, но также и потому, что администраторы опасаются, что компании-разработчики программного обеспечения могут получить неограниченный контроль над своими компьютерами.[нужна цитата ]Системы управления пакетами может предлагать различные степени автоматизации исправлений.
Использование полностью автоматических обновлений стало гораздо более распространенным на потребительском рынке, во многом благодаря[нужна цитата ] к тому, что Майкрософт Виндоус добавлена поддержка для них, и (доступно в 2004 году) по умолчанию включены. Осторожные пользователи, особенно системные администраторы, склонны откладывать установку исправлений до тех пор, пока они не смогут проверить стабильность исправлений. Microsoft (Вт) SUS поддерживает это. В случае больших исправлений или значительных изменений дистрибьюторы часто ограничивают доступность исправлений квалифицированным разработчикам в качестве .
Применение патчей к прошивка создает особые проблемы, так как часто предполагает создание полностью новых образов микропрограмм, а не применение только отличий от предыдущей версии. Патч обычно состоит из образа микропрограммного обеспечения в виде двоичных данных вместе со специальной программой, предоставленной поставщиком, которая заменяет предыдущую версию новой версией; а материнская плата BIOS update — это пример обычного патча прошивки. Любая непредвиденная ошибка или прерывание во время обновления, например отключение электроэнергии, может сделать материнскую плату непригодной для использования. Производители материнских плат могут принять меры для предотвращения серьезных повреждений; например, процедура обновления может создать и сохранить резервную копию микропрограммы на случай, если она определит, что основная копия повреждена (обычно с помощью контрольная сумма, например CRC ).
Права автора
Согласно закону, автор программы для ЭВМ – тот человек, чьим творческим трудом она была создана. Составителем базы данных считается гражданин или юридическое лицо, организовавшие сбор материалов, их обработку и размещение. Эта информация может быть размещена на экземпляре базы данных или ее упаковке, говорится в статье 1333 ГК РФ.
Важно помнить, что у автора есть как имущественные права – это исключительное право, так и личные неимущественные права. Последние невозможно передать кому-то или отказаться от них, и такие права – право авторства, право на имя, и так далее – охраняются бессрочно
Кроме того, если программный продукт был создан по заказу, то исключительное право на него также принадлежит заказчику (за исключением иных случаев, предусмотренных договором между исполнителем и заказчиком).
Основной интерес представляют имущественные права. Как и в случае с другими результатами интеллектуальной деятельности, этот вид прав первоначально возникает у автора – программиста или составителя базы данных. Далее он может распоряжаться ими по своему усмотрению – передавать (и продавать) другому лицу по договору, лицензировать и так далее. Гражданин или юридическое лицо, по факту обладающее исключительным правом на результат интеллектуальной деятельности, является правообладателем. В соответствии со статьей 1229 ГК РФ, правообладатель может использовать произведение любым законным способом.
У автора базы данных также есть отдельный вид исключительного права – право на извлечение и использование отдельных материалов, содержащихся в базе. По статье 1335 ГК РФ, оно начинает действовать с 1 января года, следующего за годом ее создания, и активно в течение 15 лет. Данный срок возобновляется при каждом обновлении продукта.
Использование объекта авторских или смежных прав без разрешения правообладателя является нарушением. Сюда относятся удаление, его нелегальное воспроизведение и распространение произведение, а также присвоение авторства. Разрешается вносить изменения в оригинальное произведение (в том числе переводить его на иностранные языки) исключительно в целях функционирования программы для ЭВМ или базы данных на технических средствах пользователя или для исправления явных ошибок, если иное не предусмотрено договором с правообладателем. Особенность программ в том, что их воспроизведением также считается запись на электронный носитель – включая внутреннюю память компьютера. Нарушением будет считаться и обход технических средств защиты программного продукта (кроме случаев, когда эти технологии изначально разрабатывались, изготовлялись и распространялись в целях, не связанных с осуществлением или обеспечением обхода технических средств защиты).
Синтаксис и основные опции команды patch
Нет ничего удивительного в том, что утилита patch относится к категории ПО, которое обязательно должно быть установлено на любой машине для разработки программ, да и вообще для ведения разработки. Практически любой дистрибутив Linux предоставляет утилиту patch предустановленной по-умолчанию.
Стоит также отметить, что по своей функциональности, patch довольно сложна и обладает, без преувеличения, просто огромным набором опций. По этой причине в данной статье будут приведены только самые распространённые приёмы при работе с этой утилитой и только сопутствующие им опции команд. Синтаксис команды patch следующий:
YAML
patch
1 | patch |
Здесь originalfile – это файл, который необходимо «пропатчить» до актуального состояния. А patchfile – файл-патч. Сразу возникает вопрос: а откуда берётся этот файл-патч? Ответ: он генерируется другой утилитой — diff, которая находит построчные различия между файлами. Либо же патч может быть составлен вручную, автором, если он знаком с соответствующим форматом. Но это бывает крайне редко, обычно прибегают к помощи diff или её аналогов.
В следующей таблице приведены опции команды patch, которые используются наиболее часто:
<td»>Помещает неудавшиеся (отклонённые) изменения в отдельный файл rejecfile вместо файла .rej по-умолчанию.
Опция | Значение |
-i patchfile | Читает информацию из патч-файла, указываемого параметром patchfile. |
-r rejectfile, —reject-file=rejectfile | |
-N, —forward | Когда патч не применяется, то утилита patch обычно пытается определить, выглядит ли ситуация так, как если бы патч уже был применён. Опция -N отключает такое поведение. |
-pnum, strip=num | Обрезает части пути к файлу, разделяемые символом косой черты до уровня, указанного в параметре num. Например: p0 оставит путь /u/john/src/blurfl/blurfl.cpp неизменным, а p4 обрежет тот же путь до blurfl/blurfl.cpp. |
-o outputfile, —output=outputfile | Отправляет вывод в указываемый в параметре outputfile файл. Не следует использовать эту опцию, если в качестве outputfile указывается файл, который должен быть пропатчен. Если в качестве outputfile указать символ дефиса «-», то вывод будет направляться в стандартный поток STD_OUT. |
-E, —remove-empty-file | Удаляет файлы, оказавшиеся пустыми после применения патча. Эта опция имеет смысл, когда используемые патчи имеют не контекстный формат. |
—dry-run | Печатает результаты применения патча без реальной модификации файлов. Полезно для быстрого и безопасного тестирования патчей. |
-R, —reverse | Откатывает все изменения (если они возможны), т. е. отменяет установку патча. |
-c, —context | Интерпретирует файл патча как обычный контекстный формат, генерируемый утилитой diff. |
-b, —backup | Создаёт резервную копию оригинального файла вместо его удаления. |
Ситуация №1 «Прекрасная незнакомка просит установить 1С:Бухгалтерию»
Парню (студенту, IT-шнику, администратору компьютерного клуба) внезапно начинает писать очень красивая девушка, флиртовать и задавать вопросы про компьютеры. Постепенно переписка сводится к тому, чтобы он приехал к ней на работу помочь установить «1С:Бухгалтерию» за деньги, а заодно познакомиться с ней вживую. После завершения установки вместо девушки приходят представители отдела «К» и составляют протокол.
В тему: В Москве IT-специалиста приговорили к 1,5 года колонии за скачанный Windows 7
Еще сотрудники органов охотятся на работников «компьютерной помощи». В этом случае они не притворяются женщиной, а просто звонят под видом клиентов.
Вопросы и ответы
Как пропатчить исполняемый файл программы?
Открываете файл, который собираетесь патчить в такой программе, как шестнадцатеричный редактор (я использую Hex WorkShop), находите нужную команду или нужное место по соответствующему смещению (адресу относительно начала файла) в файле и изменяете ее как хотите.
Мне нужно изменить работу программы для своих целей. Я хочу вставить на место инструкций, которые хочу изменить, свои инструкции. Но «не хватает места», т.е. мои инструкции занимают больше места, чем те, которые нужно заменить. Что делать?
В этом случае составляем нужный нам код (процедуру). В конце кода добавляем команду ret . Создаем новую секцию (с помощью LordPE или ProcDump) и помещаем наш код в эту секцию. В начале инструкций, которые нам надо изменить, ставим вызов добавленной процедуры (call), оставшиеся ненужные инструкции, до начала нужных, забиваем командами «nop «. Все. Только нужно будет быть внимательным с адресами, их надо будет смотреть в отладчике . Еще можно не добавлять новую секцию, а написать свой
В разговорах мои коллеги часто оперируют такими определениями, как патч и кряк. Расскажите пожалуйста, что они означают?
В разработке программного обеспечения
Патчи иногда становятся обязательными для устранения проблем с библиотеки или с частями исходный код для программ, которые часто используются или обслуживаются. Обычно это происходит в очень крупномасштабных программных проектах, но редко при мелкомасштабной разработке.
В проектах с открытым исходным кодом авторы обычно получают исправления или многие люди публикуют исправления, которые исправляют определенные проблемы или добавляют определенные функции, такие как поддержка местных языков за пределами локали проекта. В примере из ранней разработки Ядро Linux (отмечен публикацией полного исходного кода), Линус Торвальдс, первоначальный автор, получил сотни тысяч исправлений от многих программисты применить против его оригинальной версии. Для повторяющихся патчей существуют инструменты, такие как Coccinelle для поддержки написания общих патчей и их одновременного применения в нескольких местах (обычно в сотнях мест в случае ядра Linux).
В HTTP-сервер Apache изначально развился как ряд патчей, Брайан Белендорф сопоставлено, чтобы улучшить NCSA HTTPd, отсюда и название, которое подразумевает, что это набор патчей ( ). В FAQ на официальном сайте проекта говорится, что название «Апачи» было выбрано из уважения к индейскому племени индейцев Apache. Однако объяснение «неоднородный сервер» изначально было дано на сайте проекта.
Ищем, что патчить
Если посмотреть на проблему с точки
зрения крэкера, можно сразу сориентироваться: код, который мы ищем —
это любой код, отвечающий за регистрацию программы и ее нормальное
функционирование. Существует несколько несложных приемов, для того
чтобы найти его.
Первый, самый простой, распространенный
и довольно эффективный — нахождение в коде строк, имеющих какое-либо
отношение к регистрации. Благо сообщения об успешной/неуспешной
активации программы, о количестве оставшихся до окончания срока
функционирования дней, содержимое NAG-окна, записи в About и т.п. — все
хранится в программе и, как правило, в виде plain-текста, поэтому их
поиск в программе будет не очень сложен. После успешного нахождения
строки остается только поймать в программе код, который использует ее.
Это можно сделать либо с помощью любого дизассемблера, либо с помощью
OllyDbg. Обычно такие строчки встречаются в коде в виде инструкций
наподобие “mov eax, prog.004FB613″ или “push prog.004FB613″, где по
адресу 004FB613 как раз и лежит искомая строка. Далее путем
статического или динамического метода (визуальный метод или метод
трассировки) определяется, является ли найденный код важным для взлома.
Если тебе повезло и ты поймал программу
в процессе ввода серийника на одной из этих API, то, выйдя из дебрей
системных библиотек и немного потрассировав код, ты, скорее всего,
найдешь место проверки или какой-нибудь другой манипуляции введенных
тобой данных. Можно также ловить место регистрации функциями
ShowWindow, MessageBoxA, MessageBoxExA, MessageBoxIndirectA и
недокументированной MessageBoxTimeoutA, отвечающими за выводы различных
окошек с сообщениями. Соответственно, если выдаются сообщения вида “Вы
ввели неправильный код” или что-то очень похожее, то, когда вылезешь из
системных дебрей, посмотри на код, находящийся выше/раньше вызова этого
сообщения, чтобы найти код, критичный для взлома.
Также программа может издавать
характерный звук при выводе ошибки — тут можно попробовать отловить код
на MessageBeep. В случае неудачи в первых двух случаях можно
попробовать поискать места чтения/записи значений из реестра, так как
программисты порой очень любят хранить там регистрационные данные своей
программы. Здесь тебе помогут API RegOpenKeyA, RegQueryValueA,
RegQueryValueExA, RegCreateKeyA, RegSetValueA и RegSetValueExA. При
анализе данных, передаваемых в реестр, всегда есть вероятность, что ты
наткнешься на критичный код. Данный способ немного муторный, так как
программы обычно считывают множество параметров реестра, и чем больше
программа, тем больше нагоняется трафика, который нужно анализировать.
Кстати, иногда программисты записывают регистрационные данные в файл.
Здесь все немного проще. Существует замечательная API CreateFileA,
вызываемая всегда — как при открытии какого-либо файла, так и при его
создании. Аналогично, анализируя параметры вызываемой CreateFileA,
можно нарваться на место для будущей модификации.
Если же программа проверяет, запустили
ее с оригинального диска или нет, то, как правило, бывает достаточно
брякнуться на API GetDriveTypeA. Эта функция просто проверяет тип
заданного диска (в данном случае диска, с которого запущена программа).
Если возвращенное значение равно пяти, значит это CD/DVD-привод. После
запуска этой функции должны идти разные проверки на соответствие метки
диска, наличия какого-нибудь файла и т.п. Их и нужно патчить.
Естественно, это не все приемы поиска важного для взломщика кода — лишь основные. Подробности в этом номере журнала
Inline-патчинг
Это довольно сложный метод. Возможно,
он чем-то напомнит тебе прямой патчинг, но они схожи только по подходу
к проблеме, а отличаются и принципами работы, и большинством случаев в
области применения: inline-патчинг делается для программ, круто
обработанных пакерами/протекторами, которые, вероятно, даже невозможно
распаковать с ходу. Смысл метода в том, что в место программы, которое
передает управление на OEP (на оригинальный Entry Point), то есть в
место, получающее управление, когда вся программа уже распакована,
встраивается код, который уже будет модифицировать некоторые байты,
отучать от регистрации — собственно, производить взлом. Отработав свое,
патчащий код возвращает управление на OEP уже взломанной программе. Для
чего нужен этот метод? Ну, хотя бы для того, чтобы уменьшить размер
крэка. Если ломаешь программу прямым патчингом, приходится раздавать
крэк либо в виде взломанного exe’шника, что ужасно, особенно если
вспомнить многомегабайтные Delphi-монстры, либо в виде программы-патча
вместе с распаковщиком, что тоже, скорее всего, будет весить немало.
Сложность метода inline-патчинга, как ты понимаешь, заключается в том,
чтобы вычислить адрес прыжка на OEP и грамотно создать код,
модифицирующий программу. Подробно о том, как реализуется этот метод,
вместе с его примерами читай на www.cracklab.ru.
Чем угрожает использование нелицензионного программного обеспечения в России в 2022 году
Многие до сих пор не в курсе, что раскрытием правонарушений в сфере применения контрафактного ПО на территории России занимается именно полиция, в полномочия которой и входит возбуждение административных или уголовных дел в связи с обнаружением достоверных сведений об использовании пиратских программ.
Подтвердить факт нарушения можно лишь после проведения соответствующей проверки, поводом для которой может стать:
- жалоба правообладателя, в виде подачи заявления в полицию;
- сообщение одного из сотрудников этой же организации или неравнодушного гражданина об использовании пиратского ПО;
- обнаружение сотрудником полиции факта нарушения при выполнении служебных обязанностей.
Не существует никаких оправданий для того чтобы пиратский софт, ведь недаром говорится, что незнание закон не освобождает от ответственности
Доля пиратского ПО на рынке
Business Software Alliance отметили положительную тенденцию к уменьшению доли пиратского программного обеспечения в России, на что во много повлияло внедрение компанией Microsoft программ SAM, позволяющих компаниям и организациям получать максимальную отдачу от инвестиций в лицензионное ПО.
Какие риски — комментарий эксперта
Работа с нелицензированным ПО является прямым нарушением авторских прав, влекущим за собой ответственность, причем как административную, так и уголовную. Под административной ответственностью подразумевается наложение штрафа и конфискация пиратских экземпляров ПО и оборудования, на котором оно было установлено и использовано.
В случае, если в результате данного деяния правообладателю был нанесен ущерб, то в отношении физического лица, несущего ответственность за нарушение (к примеру, директора компании, в офисе которой использовался пиратский софт) может быть применена уголовная ответственность в виде лишения свободы до 2-х лет или исправительные работы.
За использование нелицензированного ПО предусматривается не только гражданско-правовая и административная, но и уголовная ответственность
Антикоррупционная политика — кто контролирует использования пиратских версий Windows и 1C
Лицам, организациям и компаниям, внесенным в международный санкционный список (SDN), компанией Microsoft, может быть отказано в поставке лицензий для своего программного обеспечения. Тех, кто числится в данном списке, принято называть «Специально назначенными гражданами», в отношении которых также может не предоставляться услуга по обработке входящих запросов.
К примеру, в июне текущего года жительнице Испании был вынесен приговор о тюремном заключении, и согласно общедоступной информации из испанских СМИ, причиной тому послужил факт использования ею взломанных версий ПО (Windows и Office) на двух офисных компьютерах.
Помимо полиции и самих поставщиков ПО, за соблюдением авторских прав помогают следить различные общественные некоммерческие организации. В случае с программными продуктами компании «1С», контроль осуществляется Некоммерческим партнерством поставщиков программных продуктов – НП ППП.
На сайте организации существует специальная форма, в которой любой посетитель может сообщить сведения о нарушении третьими лицами лицензионного соглашения об использовании ПО. В дальнейшем эта информации будет рассмотрена специалистами и в случае подтверждения факта нарушения, лицу или организации будут выдвинуты соответствующие обвинения.
Много вопросов, мало ответов
Источник издания назвал план властей «проектом, который, очевидно, вызывает массу вопросов у игроков рынка, особенно у тех, кто сам лицензирует свое ПО».
Директор по правовым инициативам Фонда развития интернет-инициатив Александра Орехович сообщила изданию свое предположение относительно целей данной инициативы. По ее мнению, она заключается в принудительном лицензировании и вводе в эксплуатацию иностранного ПО «без какого-либо вознаграждения правообладателю, если он поддержал санкции против России».
Независимый консультант по работе с национальными проектами Андрей Шолохов отметил, что такое решение позволит российскому бизнесу переходить на отечественное ПО не резко, а постепенно. Он добавил, что импортозамещение в сфере ПО возможно не везде. «Быстро нарастить разработку своего системного ПО будет очень сложно. Есть риск, что компаниям продолжительное время придется пользоваться нелицензионным ПО», – сказал он изданию.
Другие эксперты полагают, что решение о легализации пиратского ПО в настоящее время не очень эффективно. «Сегодня большая часть полезного софта делается в виде подписок на облачный продукт, это позволяет разработчикам обезопасить код, который остается на их серверах. Без подписок и доступа к обычному сервису многие инструменты перестанут работать», – заявил изданию преподаватель Moscow Digital School Олег Блинов.
Сергей Белостоцкий, владелец продукта PIX BI: BI-системы — это не роскошь, а норма как для крупного бизнеса, так и для СМБ
Маркет
Здесь следует отметить, что те же упомянутые Microsoft Windows и Office по-прежнему распространяются по классической схеме, без подписки. Хотя, безусловно, сейчас даже Windows можно запустить в отдельном облаке – Microsoft сама предлагает такую услугу в рамках сервиса Windows 365. Он заработал июле 2021 г. и до России добрался пару недель спустя. Однако в свете последних событий на территории России он, вероятно, доступен не будет.
Как к новой инициативе властей относятся российские разработчики ПО, пока неизвестно. Редакция CNews обратилась за комментариями в организации «Руссофт» и АРПП «Отечественный софт» и ожидает ответа.
Патчинг загрузчиком
Малораспространенный и не самый
авторитетный метод, но он реализуется довольно просто. Используется,
как правило, для программ, запакованных чем-нибудь хитрым, например
протектором. Нет смысла писать загрузчики для программ, не запакованных
вообще, а для запакованных пакерами проще сделать прямой патчинг, то
есть распаковать, или, на худой конец — inline-патч.
Суть метода заключается в следующем:
уже после того, как был обнаружен код для патчинга, пишется некоторая
специальная утилитка-загрузчик (лоадера), которая запускает программу,
ждет, пока она распакуется, и проверяет код на целостность, после чего
патчит код. Использование этого метода позволяет, во-первых, обходить
разнообразные противные проверки, работающие в начале программы, а
во-вторых, уменьшить размер крэка до минимума.
Но написание лоадера — занятие довольно
неблагодарное. Мало того, что тут требуются знания работы ОС, основы
управления памятью и умение программировать, так еще и результат может
работать совершенно как ему заблагорассудится (глючить). Это связано с
тем, что лоадер может модифицировать байты программы, когда протектор
еще не распаковал основной код, что очень критично для стабильной
работы программы. Скорее всего, программа просто упадет с критичной
ошибкой. В связи с этим не советую увлекаться лоадерами. Правда, иногда
деваться некуда, и проще написать загрузчик, чем возиться с другими
методами. Есть несколько способов реализации лоадеров, я рассмотрю
самый простой и распространенный.
.data; заголовок окна с сообщением об ошибке
Msg db «Fatal Error», ; сообщение об ошибкеError db «Program not found»,; имя файла программы
program db «victim.exe»,; записываемый в память процесса байт
write_buffer db 90h; адрес, по которому будет; осуществляться считывание/запись
check_addr DWORD 401050h.data?; переменная, в которую производится; считывание байта процесса
buffer dw ?; структура информации о процессе
process_info PROCESS_INFORMATION <>; структура информации о параметрах; создающегося процесса
startup_info STARTUPINFO <>.codestart ;начало программы; запускаем нужные нам программы.invoke CreateProcess,addr program, NULL, NULL, NULL, FALSE,
CREATE_NEW_CONSOLE OR NORMAL_PRIORITY_CLASS, NULL, NULL, addr startup_info,addr process_info;если результат выполнения равен 0,; то программа не найдена и не запустилась
.if eax == ; информируем об ошибкеinvoke MessageBox, NULL, addr Error, addr Msg, MB_OK; и выходимinvoke ExitProcess,
.endif; главный цикл
.while true; считываем память процесса по; адресу check_addr в буфер buffer размером в 1 байтinvoke ReadProcessMemory, process_info.hProcess, check_addr, addr buffer,1, NULL; проверка на успешность считывания
.if eax != ; проверка на распакованность; программы по этому адресу
.if bufr != 00h;ждем проверку целостности кодаinvoke Sleep,300; приостанавливаем процессinvoke SuspendThread, addr process_info.hThread; записываем 1 байт write_buffer; по адресу check_addrinvoke WriteProcessMemory, process_info.hProcess, check_addr, addr
write_buffer, 1, NULL; продолжаем выполнение программыinvoke ResumeThread, addr process_info.hThread; закрываем хэндл процесса и; завершаем свой процессinvoke CloseHandle, process_info.hThreadinvoke ExitProcess,
.endif
.endif
.endw; конец кода
<p style=»text-align: justify;»>end start
Тут, я думаю, тебе все понятно. Просто запускаем процесс с помощью
CreateProcess и модифицируем после некоторой паузы и нескольких
проверок код программы, ответственный за регистрацию с помощью
WriteProcessMemory. Кстати, по такому же принципу пишутся трейнеры к
играм.
На случай если писать лоадер очень
лень, но очень нужно, существуют автоматизированные loader-мэйкеры,
которые по специальному скрипту создают полноценный загрузчик.
Останется лишь указать имя программы и то, по каким адресам и какие
байты нужно модифицировать — все! Loader-мэйкер сделает по этому
сценарию лоадер, который можно будет запустить с чувством собственного
достоинства.
Что будет — мифы, реальные штрафы и все виды ответственности для физических и юридических лиц
Если не считать самих разработчиков, то далеко не все осознают, что в современном мире компьютерный софт и программное обеспечение являются такими же объектами авторских прав, как и другие продукты интеллектуального или творческого труда, будь то книги, музыка, внутренний контент сайтов и прочее.
На территории нашей страны в этом вопросе дела обстоят несколько иначе, чем на западе. Так, многие пользователи ПК до сих пор не готовы принять тот факт, что им необходимо оплачивать покупку компьютерных программ, также, как и любые другие продукты массового потребления.
Именно поэтому пользователи продолжают работу в пиратских копиях, а некоторые даже и не подозревают, что тем самым нарушают законные права правообладателей и могут понести за это реальную ответственность перед законом.
За нарушение действующего законодательства с посягательством на интеллектуальную собственность предусматриваются не только штрафы и аресты, но и исправительные работы
Гражданско-правовая
Правообладатель имеет право требовать возмещения убытков от лица, использующего результат его интеллектуальной деятельности на незаконной основе, что регламентировано ст. 1252 ГК РФ. Но возмещением это может не ограничиться, так как в соответствии со ст. 1301 ГК РФ, он также сохраняет за собой право на выплату компенсации, финальная сумма которой определяется судом, составляя от 10 тыс. до 5 млн руб.
К этому виду ответственности в основном привлекаются физические или юридические лица, которые уже были замечены в подобных правонарушениях. Ведь в таком случае правообладателю не нужно предоставлять неоспоримые доказательства того, что действия данного лица действительно нарушали его права.
Уголовная
За незаконное применение объектов авторских прав, их хранение или транспортировку нелицензионных экземпляров ПО в крупном размере с целью сбыта, согласно ст. 146 УК РФ «Нарушение авторских и смежных прав» предусмотрена уголовная ответственность, влекущая за собой соответствующее наказание в виде штрафа, лишения свободы или исправительных работ.
Уголовная ответственность вступает в силу в том случае, если совокупная стоимость использованного пиратского ПО превысила 100 тыс. руб. При этом деяниями, совершенными в крупном размере, считаются те, при совершении которых стоимость используемого софта превысила 1 млн руб.
Еще хуже будут обстоять дела в том случае, если общая стоимость пиратского ПО перевалит за миллион рублей, ведь тогда срок лишения свободы может достигнуть 6 лет
Административная
К административной ответственности за рассматриваемые нарушения могут привлечь, согласно со ст.7.12 КоАП РФ «Нарушение авторских и смежных прав, изобретательских и патентных прав». В этом нормативно-правовом акте указано, что в отношении лиц, замеченных в продаже или ином способе незаконного обогащения на контрафактных экземплярах чужой интеллектуальной собственности, могут быть применены соответствующие штрафные санкции.
Размер последних определяется в зависимости от субъекта правонарушения, составляя:
- для граждан – от 1,5 до 2 тыс. руб. с конфискацией оборудования;
- для должностных лиц – от 10 до 20 тыс. руб. с конфискацией оборудования;
- для юридических лиц – от 30 до 40 тыс. руб. с конфискацией оборудования.