Суть такова. Есть одна коммерческая программа.Не какой нибудь высер школьника, что торгует им на всяких тематических форумах.Это что бы было представление о масштабе.Но и не супер анально огороженный, типо Денуво или АйЛецензер.Есть я, не владею ни одним языком программирования, но в сути более менее разбираюсь. С компьютером тоже давно на ты.То бишь, не совсем конченый Алёша, что переустанавливает шиндувс, каждый раз, когда "лагает"Некоторые базовые принципы крекинга знаю.А теперь ближе к сути. Так как у меня нету бабла на лицензию этой программы 30к, то я хочу её взломать для личного пользования. Не распространять, что бы не присесть на сгущенку.Так вот, насколько это будет сложно с моим уровнем? Я знаю тут есть много толковых ребят, которые разбираются в подобных темах.Какой нужно будет изучить язык?Ассемблер или сразу C? И на сколько глубоко?И самое главное, сколько это займёт времени?Алсо, был опыт написания брутфорса на С# но это так, не более чем развлекалово.
Бамп.
Для начала надо уметь пользоваться OllyDbg и знать про реверс-инжиниринг
>>848578Говорят что Оли игрушка для юных кулхацкеров. И в ней мол ничего серьезного не сделаешь, так ли это? Но с Оли я знаком, в принципе. Реально ли будет ей взломать коммерческий софт?
>>848580> Можно ещё юзать IDA. Тут самое главное - это скилл. Не существует невзламываемого софта
>>848587Да. А у тебя опыт есть в этом? Может напутствия дашь или полезного чего почитать?
>>848592https://beginners.re/RE4B-RU.pdfhttps://habrahabr.ru/post/220245/
>>848596Но ведь даже для начала изучения инжинеринга, надо же обладать каким-либо языком или нет?
>>848599Ассемблер учи. В реверс-инжиниринге без него никакмимокрокодил
>>848451 (OP)Тебе понадобится ассемблер. У меня был единичный опыт такого плана, ситуация как у тебя была, знал только паскаль. В итоге нихуя не вышло, но спустя три года вернулся к этой задаче и таки получилось. У меня был пакер Themida и мне нужно было с помощью OllyDebug запустить пару скриптов, которые бы находили точку входа в пакер и в обход как бы мутили темы, грубо говоря jmp на адрес начала работы самой программы, в итоге был балласт с неиспользуемым кодом пакера и потом его отрубал. Нужно ещё дамп было делать, помню, а потом как-то восстанавливать и тд. Короче, я к чему это всё. Да, реально, но заёбно, месяц потратишь. Второе это то, что язык ассемблера без подготовки решительно невозможно читать. Начни с архитектуры ЭВМ https://vk.com/doc22264043_369431759?hash=d047d4f4a8e75c4211&dl=71c31a532757e063e5Без этого ты только сможешь запускать чужие скрипты в надежде, что один из них подойдёт. Меня, например, скрипт спрашивал RISC или CISC процессор, а я в душе не ебал, что это. То есть даже самый автоматизированный скрипт, это если ты его найдёшь, один хуй потребует от тебя минимальной корректировки и вмешательства. А вот с нижнего уровня если начал, то потом асм читаешь, пишешь будто всю жизнь на нём писал, должно выработаться мышление определённое, должен понимать, что и как ты делаешь. Ну и удачи, но вангую, что тебя заебёт. Либо ты такой же ноулайфер, как и я.
>>848986Спасибо за большой ответ. На самом деле не ноулайфер, но время свободное есть. Я боюсь что придётся протратить очень много часов на изучение ассемблера как раз. Но послушаю твоего совета и начну разбираться в ЭВМ.
>>848986Алсо, так ты взломал в итоге? Что хоть за софт был?
>>848451 (OP)А как прога проверяет лицензию?
>>849072Клиент корейской MMO. Да, получилось.
>>849083Я в этом не особо разбираюсь. Но обычный ключ продукта. Возможно он сверяет его на сервере. Так же есть демо-мод. По функционалу вроде нет ограничений. Хотя я пока не углублялся. Так же я думаю можно просто модифицировать exe. Сделать битхак и всё будет. Но я не проверял. Программа называется - Notion 6. Нотный редактор. Старые версии есть взломанные, именно через exe, но они все уже стали мусором и на 32бита.
>>849433Описание PEiD 0.92: Самая извесная тулза для определения чем упакованы EXE, DLL файлы. Попробуй, посмотри.
>>849441http://www.securitylab.ru/contest/432018.phpНу кури, короче. Я в тебя верю. Ещё посмотри exelab, там всякое такое лежит.
>>849441Сам exe что-то не просконировал. Не знаю почему.
>>849450>EID is telling you that the exe is NOT packed, it is just a straight forward app compiled with Microsoft VC 6.0 and linked in Overlay mode.Хуй знает, вроде тебе повезло, но ты прогони ещё по разным https://exelab.ru/download.php?action=list&n=NQ==
>>849455Если окажется, что ничем не запакован, то считай повезло. Кури дальше тогда. У меня было:ЮСамые распространённые пакеры (от англ. pack – «упаковывать»): UPX, AsPack(и AsProtect), PECompact, WinUPack, Telock, NeoLite, Yoda, PE-Shield, Armadillo… Они сжимают как и все(или не часть) ресурсы так и сам код программы, что приводит к невозможности её дизассемблирования (декомпиляции в исходный код ассемблера), отладки(трассировки) и даже редактированию ресурсов. Поэтому перед крЯком обязательно нужно проверить подопытную прогу на «сжатость».Весь код загажен хуйнёй, при отладке в олли прога крашилась, типа детектилась отладка и тд Тот ещё пиздец был. А я всего-то хотел проксидлл подключить, чтобы одну малючесенькую функцию подправить, а так развыёбывалась эта сука.
>>849455Скачать ExeInfo PE 0.0.4.1 (1476 Кб) Определяет версию упаковщика и компилятора по встроенной базе из 937 сигнатурыОбновление от : 2015.12.01Скачать RDG Packer Detector 0.7.5 (2571 Кб) Новый анализатор исполняемых файлов - детектор EXE компиляторов и упаковщиков.Хорошо определяет публичные и приватные крипторы и упаковщики.Ну ты понял, проверь несколькими, моя хуйня маскировалась под другие пакеры ещё, лол. Пиздец, как вспомню эту хуйню.
>Notion 6>$149.95Не позорился и купил бы. Не такие огромные деньги за профессиональную софтину.
>>849466https://habrahabr.ru/post/106920/>Возможности автоматической защиты ThemidaСначала о «скучных банальностях». Антиотладчик. Поддерживается как обнаружение стандартных отладчиков, так и отладчиков уровня ядра. Есть также режим агрессивного поиска, но в этом случае приложение может отказаться запускаться на компьютерах с активными антирусами, руткитами или под Wine.Антидампер. Themida защищает приложения постоянно. Дамп памяти приложения на диск с последующим запуском не снимет защиту (кто бы сомневался.… Такие примитивные методы уже давно не работают)Обфускация точки входа (OEP). Themida прячет точку входа в библиотеку или приложение.Шифрование ресурсов. Если в ваше приложение включены какие-либо ресурсы (иконки, файлы и так далее), они будут зашифрованы и расшифрованы только при обращении к ним.VMWare/VirtualPC совместимость. Можно активировать этот режим для того, чтобы защищенное приложение могло запускаться под гипервизорами.Заворачивание обращений к API Windows. Themida прячет информацию о функциях Windows API, которые вызывает ваше приложение. Информация о требуемых для запуска библиотеках также недоступна взломщику.Защита приложения от модификации. Themida может проверять целостность приложения при его запуске, не позволяя запуститься измененной копии приложения. Можно активировать режим, при котором приложение после защиты можно будет беспрепятственно подписать .Защита памяти приложения от модификации в процессе выполнения (полезно, если вы разрабатываете, например, игру).Технология мутации кода. Весь код ядра Themida, который связывается с вашим приложением, подвергается мутации и «размазыванию». Каждый раз этот код генерируется заново, используя техники виртуализации (см. далее).Защита от мониторинга файлов и реестра. Themida не позволяет внешним программам отслеживать обращения защищенного приложения к файлам или реестру.Сжатие. Наложение защиты приводит к довольно сильному увеличению размера исполнимого файла на диске. Для уменьшения этого размера Themida поддерживает сжатие как самого приложения (со встроенным кодом защиты), так и его ресурсов.Themida умеет защищать формы Delphi/C++ Builder от специальным образом. Содержимое форм (фактически, .dfm файл) нельзя будет извлечь как из .exe, так во время выполнения приложения.Практически все описанные возможности можно включать/отключать по вашему желанию.СУКА НАХУЙ ТЫ МНЕ НАПОМНИЛ БЛЯДЬ КАК ЖЕ У МЕНЯ ОЧАГ ГОРЕЛ ТОГДА ЕБУЧАЯ ТЕМИДА БЛЯДЬ МРАЗЬ А У ТЕБЯ НИЧЕМ НЕ ЗАПАКОВАН??!!!??!? НИЧЕМ БЛЯДЬ!! ПОВЕЗЛО БЛЯДЬ !!! АА ААААА
>>849470Технология CodeReplaceТехнология CodeReplace извлекает части приложения, вставляет вместо них мусорный код, смешивает оригинальный код с кодом защиты и хранит его в другом месте приложения. При запуске участка кода, защищенного CodeReplace, после многочисленных проверок, он извлекается и расшифровывается. После выполнения опять заменяется мусором. Themida может сама проанализировать ваше приложение и выбрать кажущиеся ей подходящими для такой защиты функции. Но будет лучше, если вы сделаете это сами с помощью макросов (о них речь пойдет далее).
>>849471Виртуальная машинаВиртуальная машина Themida – один из самых сильных способов защиты приложения. Суть его состоит в том, что части вашего кода заменяются сгенерированным ассемблерным кодом, но не родным для Intel процессоров, а кодом для абстрактного виртуального процессора со своей системой команд и внутренней структурой. Themida каждый раз случайным образом генерирует план его архитектуры. Таким образом, в коде защиты становится сложно разобраться.Themida поддерживает несколько типов виртуальных процессоров:CISC. Базовая защита, защищенный код относительно быстро выполняется.CISC-2. Расширенная защита, код занимает больше места, чем в случае CISC. Чуть более медленный.RISC-64. Каждая виртуальная инструкция занимает 64 бита, защита сильнее, чем у CISC, но защищенный код выполняется медленно.RISC-128. Усовершенствованный супермедленный и суперзащищенный вариант RISC-64Для CISC процессоров поддерживается одновременное встраивание в защищенное приложение нескольких виртуальных процессоров одного типа, но с разной системой команд. Это повышает защиту, но увеличивает размер исполняемого кода приложения.Генерация шума позволяет смешивать производящие полезную работу инструкции с ничего не значащими для еще большего затруднения работы хакеру.Как и в случае с CodeReplace, Themida может сама выбрать, какие функции внутри вашей программы защитить преобразованием в код для виртуальной машины. Но лучше сделать это самостоятельно (см. далее).
>>849472ПрочееThemida позволяет прятать приложение от PE-сканеров, которые определяют, чем защищено приложение.Доступны возможности локализации интерфейса приложения (окна с ошибками и системными сообщениями) и вставка заставок (все же время запуска защищенного приложения увеличивается на 500-5000 миллисекунд в зависимости от настроек защиты, надо чем-то занять пользователя в это время).Themida поддерживает управление с командной строки, что позволяет интегрировать ее в Build-систему.
>>849473Сука. И представь, я знал только ебаный паскаль. Столько нервов сгорело. Ты это, если вдруг он всё таки запакован не надо, не лезь в это, не стоит оно того, я пизданулся на всю голову, пока пытался это сделать. Так и не сделал. Потом уже вернулся и получилось, но сука, я уже ебанутый теперь,я голоса слышу, понимаешь? За всё нужно платить.
>>84946710к сама программа и 20к соундбанки. У меня нету таких денег, даже банальных 10к за чистую. Я же нищеброд.
>>849475Ну что там? Запаковано?
>>849475Ну тогда юзай пятую версию от вована что ли https://rutracker.org/forum/viewtopic.php?t=5051156
>>849475Уже самому интересно стало.
>>849476Во что говорит. Я просто пока не совсем понимаю, что это значит. >>849478Она 32бита. Плюс по функционалу говно.
>>849485Бля, ну выдохни тогда. Дальше я думаю проблем у тебя не будет. Статью ту кури. У меня если че ситуация была другая немного, мне нужно было стороннюю библиотеку подключить, а пакер не пускал, так что как обойти регистрацию не подскажу. Но думаю там просто должно быть: дебажить до места, где вызывается ебучее окно и посмотреть какие варики есть, там должно быть типа je jne jmp и тд ну и там где-нибудь поставить или типа того.>Жмём на Enter, перед нами «предстаёт» окно Olly, в статусной панели которого мы можем прочитать, что >возник экзэпшн по адресу 0EEDFADE. В принципе это нам и надо. Теперь «шарим» взглядом по дампу >памяти(правое нижнее окно). Тут мы видим всё, что произошло с программой с момента её >запуска(переход по адресам, загрузка модулей, строк, вызов функций и возврат из них).
>>849490Ну вот что говорит отладчик. Она рипнулась где-то.
>>849492jmp ntdll это типа ошибку системную вызвало, не? Чё у тебя произошло?
>>849495И чё до этого jmp за код?
>>849495Ничего. Запустил без вмешательства. Показать где происходит остановка. 1. Забыл добавить, что до всего этого он синхронизирует что-то с сервером. Не знаю, важное ли что-то или по-типу обновлений. 2. Он лезет в Windows папку, я просто не знаю, нормально ли это или нет.
>>849503Архитектура x86-64 имеет:16 целочисленных 64-битных регистра общего назначения (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 — R15);8 80-битных регистров с плавающей точкой (ST0 — ST7);8 64-битных регистров Multimedia Extensions (MM0 — MM7, имеют общее пространство с регистрами ST0 — ST7);16 128-битных регистров SSE (XMM0 — XMM15);64-битный указатель RIP RIP это указатель, он не рипнулся, лол. Instruction Pointer
>>849503Бля, чувак, у меня не винда и тд По скринам тупо этим заниматься. Потрать неделю, ну две максимум на ту книжку, которую я тебе скинул и сам всё сделаешь.
>>849505Если ничем не запаковано, то и заебись, у тебя весь код на ладони, просто читать его научишься и ок.
>>849505Ок. Спасибо за помощь. Сейчас почитаю.
>>849508Не, ты прям прочитай. Она легко идёт и интересно, последовательно и тд. Историю узнаешь, как всё развивалось и тд. А как прочитаешь садись и пару условий в коде поменяй, ну как в обычном коде, только тут язык ассемблера.
>>848451 (OP)ОП, тебе сюда:https://tuts4you.com/И начинаешь очень вдумчиво осваивать все туториалы оттуда.>Ассемблер this. Патчи на нём же делать будешь. Если прога не под .NET, конечно.>>848580>Говорят что Оли игрушка для юных кулхацкеров. Хуита, ничем не хуже IDA, особенно с плагинами.
>>849513К этому оратору присоединяюсь. Благодаря скрипту божественной немочки LCF-AT с того форума как раз всё тогда и получилось.
>>849520Смотри анон, я нашёл код о успешной регистрации. Я на правильном пути? Например сделав брейкпойнт или нечто подобное?
>>849529Да, не брейкпоинт а jmp. С того места где регистрация просится до сюда. Ну ты понял, да? jmp и адрес вот этот вот где suceed
>>849529Это как goto.
>>849529Хотя у тебя там call чета, вот этот колл по идее вызвать надо. Ну регистрация успешна! высветилось а затем уже какая то функция идёт, начало зарегистрированной работы программы. Ну ты принцип понял разберёшься там. Уже считай всё сделал. Ох и повезло тебе, что ничем не запаковано.
>>849534Погоди. Я там наткнулся на интересные строчки. Точно не могу сказать, но он походу сверяет ключ с сервером. Это грозит сложностями?
>>849534Изменил нужные мне байты в отладчике. Через отладчик программа работает. Как сохранить этот измененный файл?Точнее дописал пару инструкций в блоке выравнивания. Надо сохранить программу и изменить точку входа. Как сохранить программу?Правой кнопкой мыши по кодуcopy to executableall modificationsвылезет окошко в котором нужно нажать правую кнопку мышиsave to fileимя файлаокмало ли, я долго не понимал, как редактировать там.
>>849537Хз есть только один способ узнать наверняка. Попробуй просто перепрыгнуть момент регистрации, вполне возможно что интересуется она в сети только в момент введения кода, а потом работай в ней без интернета,запрети ей выход в сеть. Если не получится, то в той статье вроде бы были примеры обхода интернет активации.
>>849537Даа, смотри, это раные варианты развития событий при регистрации, то есть перепрыгнув на suceeded ты 90 процентов, что всё это дело по бороде пустил.
>>849546https://hpc.name/thread/30531/p1.htmlТут показано как свой код вставлять, мало ли.
http://daxa.com.ua/article/num1/Во, бля! Твой случай же!
>>849549Да я нашёл строчку где он отсылает код по адресу. https://api.presonus.com/authorize/Попробую обойти, но думаю не сработает.
>>849559Так там должен быть условный переход один хуй, что бы не происходило. Меняешь его на безусловный и дело в шляпе.
>>849561Типа je(jump if equal),jne (jump if not equal) и тд. Уже после получения ответа должна быть проверка ну бля if else если по человечески, вот тебе эту строчку je|jne че там будет надо на jmp заменить. Тогда тывведёшь любой код и его прога сожрёт. Либо попробуй ещё до отсылки где нажатие на кнопку идёт переход сделать, чтобы вообще до интернета не доходило исполнение.
>>849564Да, тупо замени команду, которая при нажатии на кнопку исполняется на команду jmp и адрес suceed registration.
>>849559Забей, тебя не туда уносит куда-то. Ты нашёл адрес входа в процедуру проверки регистрации. Ты нашёл адрес вывода сообщения об успешной регистрации, то есть процедура проверки к этому моменту отработала. Всё, что тебе нужно сделать, это перепрыгнуть саму процедуру регистрации. Вдаваться в то, как она работает не нужно, потому что она просто не будет исполняться. Тебе нужно найти место обработки нажатия кнопки Activate и прописать туда jmp <адрес сообщения успешной регистрации>. Попробуй так сделать. Что говорит?
>>849572Да я это понял. Сейчас попробую.
>>849572Может не адреса сообщения а адреса функции, которая ниже идёт. По идее должно всё запуститься в отладчике, а как сохранить изменения в статье написаноhttp://daxa.com.ua/article/num1/нужно через хекс эдитор будет замутить ну ты разберёшься, ситуация один в один твоя, только он сделал так, чтобы любой код принимало, тоже можешь покопаться там и найти эту проверку, но можно просто перепрыгнуть исполнение и ок.
>>849580адрес через notion.<address> писать надо, как я понял. Бля, надо графы делать, а я с тобой тут залипаю:)
>>849593>notion.<address>Видимо, смещение учитывается относительно точки входа. МБ в настройках выставлено или хз.
Бля, и не уходи далеко. Скрины покидай, держи в курсе того, что делаешь. Было бы ок скрин того места, когда на кнопку жмёшь.
>>849598Сори я отходил по делам. Вот короче точка входа в окно авторизации. Тут он останавливает. Сейчас попробую перепрыгнуть.
>>849633Мне кажется можно вместо je notion.7FF64AB07FFD поставить jmp notion.7FFC67451224
>>849640Хотя, конечно, это грязно прыгать на сообщение, лол. Там ещё наверняка что-то в регистрах осталось и тд. Лучше как тот чувак описал сделай, найди ключевую проверку и замени на безусловный переход je на jmp. Где-то там, после того как с интернета взял ключ и сверился с твоим должна быть проверка. Он ещё вводил неверный ключ и по нему потом искал в олли.
>>849646Всё, я спать.
>>849652Давай. Спокойной ночи. Буду выкладывать отчёт сюда. Если чтою.
Нашёл функцию вывода диалогового окна.
>>849669Короче пока заебался с поиском функций API.Как в статье говорят. Продолжу наверное завтра.
>>849677Бля, короче минус ночь, но заебашил тебе. Пришлось винду ставить и качать твою хуйню. Последняя версия. Скачай демо и замени екзешник.Лови на рыгхосте. Я, блядь, это сделал. Ебать я хацкер нахуй. Это второй опыт мой такой, лел. Да, ты правильно нашёл функцию, в ней вложенная есть, в ней ещё три вложены уже в user32.dll и там можно было джмп сделать и всё резко работало, но юзер длл то в систем 32, так что нихуя не вышло так, в итоге тупо выдрал последнюю вложенную, nopами заменил, вроде ниче не пострадало, только в менюшке окно регистрация не работает ну help software activation, если тебе критично, то мб можно как-то получше сделать,а я уже всё типа.http://rgho.st/62SpDNrWPЛови, короче. Отпишись, мало ли я хуйню сделал, но вроде то, что нужно, получилось вроде. Ебучий Таненбаум, всего одна книга и можно к любой хуйне приступать, даже если никогда не занимался ничем таким. Ладно, пойду питон надрачивать, питон сам себя не изучит. Бля, это ж так подумать, это ж любую прогу так ломануть можно! ЕБАААТЬ НИХУЯ СЕБЕ ООО
>>849790Ты ничего не взломал, а просто изменил ход выполнения программы, ковыряясь на пару абстракций ниже исходного кода. В этом нет ничего крутого, ты сделал самую обычную вещь, но я в тринадцать лет тоже был очень горд собой, когда написал кейген для TurboLaunch, например.
>>849790Ну да. Диалога о регистрации нету. В хелпе есть пункт регистрации, конечно это обход. Поэтому я считаю, что программа не полная. Она полюбас будет ссылаться на это. Но пока я не проверил это. Надо будет поработать и посмотреть что скажет.В любом случае, спасибо за то что потратил ночь на это. Но я наверное продолжу копать и посмотрю, можно ли сделать просто кейген.Что бы программа реально считала себя полноценной.
>>849842Хз, ну сам смотри там.>>849791Бебебе. Ничего не хочу слышать. Я ХАЦКЕР, понятненько?
>>849842Вообще, конечно, хуета получилась. Вечная демоверсия по сути, проверяться нигде не будет и функционал такой же, как в полной, но всё равно уёбищно. Ну разбирайся, пили.
>>849877Я сейчас как раз дочитываю книжку о ЭВМ. Кстати, а ты не знаешь как находят к примеру, уязвимости в веб? Например всё тот же Нотион 6, у него есть саундбанки, но получить их можно только оплатив, но ведь есть же некий алгоритм который выдаём ссылку на скачивание, после оплаты, или вовсе прямой адрес. Можно ли подобное что-то намутить?
>>849919https://stepik.org/course/%D0%90%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7-%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%B2%D0%B5%D0%B1-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D0%B2-127/Хз, позавчера вот на такое наткнулся.
>>849919А вообще я твёрдо уверен, что можно намутить всё при должном терпении, внимательности и уровне знаний.
>>849950Но я никогда таким не занимался, потому ничего конкретного не подскажу. Я вообще за системный подход: сначала необходимо разобраться в теоретической части, освоить матетематику, научиться писать качественный код на разных языках(от nasm до lisp), поработать с базами данных, с ОС, прежде, чем лезть в крякинг и всё такое прочее, много времени можно сэкономить, ночь, например. Ну, а так, я думаю в сети дохуя инфы по этой теме. Гугли как обезопасить свой сайт от взлома и тд, наверняка есть целые ресурсы, посвященные информационной безопасности, вот этому всему, там для всяких веб-девелоперов доступным языком показывают распространённые ошибки, которые они могут допускать. Ну и потом с этим списком ошибок пытаешься атаковать интересующий тебя сайт. Люди таковы, что часто пренебрегают правилами написания кода или вообще могут не знать о них, что-нибудь да не учли, что-нибудь да выстрелит. А дальше, как разберусь в одном, изучал бы по цепочке, пока не нашёл бы способ, но это уже гораздо больше времени займёт. В общем, я бы вот так действовал, хз.
>>849961Ну и анонимность, конечно. Прогу ты скачал и ковыряй себе до старости, а тут тебя за соседский вайфай посадить могут. Нужно уметь прятаться. Не просто тор+впн, а fucking real anonymous А судя по тому, что мы на мейлаче с тобой об этом разговариваем, это всё не про нас пока что, надыбаем уязвимостей, проведем аудит и через 10 минут пативен приедет. Так что я бы на твоём месте набрался мозгов, почитал бы статеек, как протоколы работают и тд, потом других статеек по безопасности, всё это осмыслил, представил много раз, затем про анонимность в сети почитал бы, запарился, тысячу раз всё перепроверил и только потом переходил бы к практике к проверке одной какой-нибудь штуки на одном конкретном сайте. А лучше вообще туда не лез бы.
>>849968А лучше сайт поднял бы и на нём тестил. Вот это тема, да. Я так и поступлю.
Такой мини отчёт. 1 - Я сделал почти такой же обход как у тебя. Сам. Могу гордится собой. Лол. 2 - Кажется нашёл ячейку по которой он сверяет ключ. Теперь надо правильно это реализовать для создания кейгена.
>>850063По идее если ты нашёл адрес условия этого, то там ты можешь поменять на jmp вместо je и посмотреть, что будет. По идее, если ты всё правильно нашёл, то будет какое то окошко и надпись Регистрация успешно завершена! или типа того. Всё это дело должно находиться где то внутри твоей той функции, точнее на уровне между ней и ещё одной , внутренней, ты сразу поймёшь, о чём я. Флаг переключения на саму программу на третьем бьрейкпоинте в юзер32 длл, вчера вот его и нашёл. Но ясное дело, что юзер32 длл это виндовская библиотека. Там просто идёт сверкая короче лол сидел залипал потом смотрю, что меняется чутка код , если я ввожу, ну не код а комментарии дебагера, ну и стал смотреть какие ззначения меняются при вводе, нашёл то место, в eax помещается то, что ввёл ты, и сверяется с r15. Вот по идее и нужно проследить(это уже на уровнях повыше этого, в районе от твоей функции, что на скрине указал, до функции которая идёт в юзер32) какая функция трогает r15 'уже догадался вчера, что она будет лежать не в этом файле, а в libcurl.dll,, в папке попали, его нужно модифицировать, а не екзешник, в нём по названию понятно что идёт сверка с интернетом, и где-то в той библиотеке смотри, что меняет регистр r15, ну бля, я сам ведь нуб, мб я ине прав Твоя цель по идее добиться того, чтобы при вводе любой хуеты, короче просто при нажатии на кнопку выскакивала надпись регистрация успешна или как там, ну та, которую ты скидывал. И да, я не так и не попробовал сделать то, что тогда тебе говорил. Прыгнуть сразу на адрес этого сообщения(я его не нашёл просто, лол, не разобрался как искать там), вместо цепочки функций проверки и тд прыгнуть на регистрация завершена. В изменённом файле там на этом месте nopы стоят, увидишь сразу.
>>850087Но это всё равно будет грязно, не лучше, чем я вчера сделал. Даже просто отключить лучше, тогда понятно, что функция просто нигде не вызывается, а тут на полпути перепрыгивать это залупа какая-то. А ещё мне интересно, можно ли дебажить в обратную сторону, не в курсе? Ну типа попасть на адрес и посмотреть откуда он вызывается. Короче как f8 только наоборот. Вчера нихуя не разобрался.
>>850091В общем, тебе не адрес сравнения нужно искатья его вчера нашёл, а от адреса сравнения пройти в место, где эталонный ключ берётся из Интернета и туда прописать какое-то число, например, 0. Но думаю, там ещё куча всякого разного, типа то конечное значение, которое отправляется в r15 в место сравнения в user32.dll до этого ещё сто раз было поменяно и нужно проследить все эти изменения. А хотя, может и нет. Ключ и ключ, считался и хранится.
>>850104Короче я к тому, что там ещё долго сидеть, залипать, если всё красивенько хочешь сделать.
>>850091>можно ли дебажить в обратную сторонуБля, не, это я чёт погнал, лол.
>>850087Я там нашёл огромную хуиту где он производит коннект к интернету. И судя по логам, он чекает профиль на самом сайт или типо того. Твой пол, страну и прочую хуету. Пока не совсем понимаю зачем это ему. Но именно это происходит во время коннекта. Каких либо указаний на ключи не увидел. Возможно просто не уследил. Вообще, попробую потом весь этот кусок аннулировать. Что бы вообще её не происходило и посмотреть что будет.
>>850126Ну ладно. По сути аннулировал. Он просто сразу её пропустил. Так что, вроде это коннект уже и не так важен.
>>850063Такой мини пруф что не пиздобол.
>>850142Ага, вот это место сверки типа. Там je было ж, да?
>>850142Погоди, это точно оно? Там пик месадж было, да, где-то тут, но там точно было mov ...raxcmp r15,raxje user32.....
>>850149Выше нет ничего похожего?
>>850147Да там кажется je было. Ну короче он просто по кругу крутил окно. Я сделал как советовал jmp и запахало. >>850149Точно не помню. Надо опять смотреть. Я пока буду делать по красивому. Поищу что можно сделать. Если конечно там реал нету авторизации по инету. Но это глупо как-то. Если прогу можно так легко обойти, а они там авторизацию по инету делают.
>>850154Лол, это циклы,чувак. И у меня тоже цикл там был, наебались короче. У тебя такм while eax==0 у меня другая хуета,только допёр, лол.
>>850174Короче, мы просто добились того, что окно не открывается. Через 30 дней регистрацию потребует, ахахха.
>>850202А если попробовать прыгнуть на адрес, где Activation succeed, то аварийно завершается0xc0000005 access violation. Точно ничем не запаковано? У меня тогда похожая хуета была.
>>850203Блядь, ору, реверсинженеры уровня /pr/
>>850202Не факт. Там даже нету никаких особо ущемленний, даже в демо. Менял время, работает. На суицес ничего не делал. Это тупо. Нашёл там много вкусного.
>>850203А, бля, там можно указать игнор исключений.
>>850207> суицес??
>>850207А, понял.>>850207>Нашёл там много вкусногоНапример?
>>850209>А если попробовать прыгнуть на адрес, где Activation succeedЭтот суицес относится собственно к коннекту. На программу даже никак не влияет.По крайней мере я не заметил ничего за ним.
>>850212Непонятно, а что вообще тогда должно выводиться при успешной регистрации? Я пробовал туда прыгнуть, меня не пустило. "Активация успешна" . А функция, которая после сообщения идёт? Что она вызывает?А насчёт демо не демо с другой стороны оно ведь каждый раз спрашивает при включении и функции не урезаны, мб после 30 дней окошко просто закрывалось бы, так что вырезав его целиком и проверка убралась.
>>850205Да похуй. Детишки играются, весело. Ты тоже таким был.
>>850218Да хуй знает. Опыта у нас мало наверное. Я вот сам пытаюсь найти окно о успешной регистрации. В любом случае, это прикольно. Порадовало меня копание в этом коде.
>>848451 (OP)Анончик, как запилить архит трейджа? Не хочу потерять
>>850297В архиваче. Можно засейвить тред или как страницу. Ну или добавь в закладки.
Гугле журнал хакер за 2007 год, июнь - август если мне память не изменяет. На давность не смотри, многие вещи что тогда были актуальны что сейчас.
>>850462Ебать ты слоупок. Мы тут уже всё сделали.
Минутка мини инфы. Что удалось надыбать исходя из моего уровня. 54.225.74.201 - айпи по которому он конектится. То что он множество раз ссылается обратно на авторизацию, даже если скипать. Множество говнокода. И параметры, которые активируются после определённого условия. Ну это я так понял. А так хуй знает.Продолжу интересоваться.
>>850521Давай-давай, у меня времени нет этим заниматься, поудалял и прогу и дебаггер и винду, но за твоими успехами слежу с интересом. Будет круто, если осилишь кейген, не меняя ничего в самой программе, real hakka.
>>850554Блядь, 12 часов прошло. Ну и жесть. Всего на минуту решил посмотреть поставить. Ёбаный наркотик. Короче, нашёл функцию, в которой проверка ключа, там внутри целый узор из jne je и тд, меняя их получал разные сообщения об ошибках типа Неверный ключ, Вы используете ключ от старой версии, Сервер не отвечает и тд, но на регистрацию выйти так и не вышло. Но нашёл функцию, которая отвечает за регистрацию, надо узнать, где она вызывается, но там вызов типа call dword[addr+значение] не константа короче, потому поиск не находит нихуя. Короче нашёл начало где искать и конец. Буду завтра все вложенные функции смотреть, одна из них должна вызывать регистрационную. Лол 12 часов. Если бы дождь не отвлёк хуй знает сколько просидел бы. А там прикольно, со временем начинаешь осваиваться и ползать по пространству кода, ret, nop вставляешь где надо, прыгаешь возвращаешься угараешь. Ебать меня плавит.
>>850878И самый огонь в том, что там всё логикой пронизано, если присмотреться. Условия расположены так, что на первом уровне самые распространённые, затем исключения, затем исключения из исключений и тд. То есть если ключ подходит, то быстрее всего программа отработает, этим как маяком можно пользоваться. Хуй знает, уже крыша потекла походу. А у меня шиза спящая, мне опасно вообще такими делами заниматься, сам с собой начинаю спорить, уговаривать себя и тд, лол. Ну вот надо было этот тред встретить, ну йобана.
>>850521Забавный факт: читающему со стороны может показаться, что мы один анон. Даже пишешь похоже. Бля, а это не я часом тред создал? Вот что ты наделал, нотион, блядь.
>>850881Или я. Хотя это совсем не важно. В общем, вот. Пойду посплю чутка и поищу вызовы, как минимум удалось локализовать проблему, точно известна функция, в которой обрабатывается ключ по нажатию на кнопку Activate.
>>850882Ну и ещё нашёл место, где формируется запрос к ним на сайт, а затем обрабатывается ответ. Там тоже флажок, сменил и регистрация пройдена. Осталось только добраться до вызова той функции, там дохуя всяких развилок есть, куча каких то констант, вычислений, типа mov eax,37 и куча переходов, подозреваю, что там проверяется подходит ли ключ под шаблон ключей или типа того, и только потом оправляется/сверяется с сервером, типа мало ключ валидный, но уже использовался, нужно каждую развилку такую пройти, проверить куда ведёт. В результате получится последовательность изменений в условиях, грубо говоря там-то равно, там не равно, которая обеспечит дохождение любого введённого ключа до сверки с их сайтом. И вот тогда произойдёт вызов той функции, про которую говорил. А там я уже всё знаю, изменить флажок после запроса на противоположный и регистрация пройдена. Сука, ладно бы не получалось, а тут получается и забить никак из-за этого. Учёбу сегодня проебал. И завтра проебу походу.
>>850878>но там вызов типа call dword[addr+значение]Это похоже на вызов виртуальной функции в C++.
>>850883>нашёл место, где формируется запрос к ним на сайтТы выше писал, что используется библиотека curl >>850087. Тебе надо взять эту библиотеку (она opensource) и модифицировать её таким образом, чтобы запрос к сайту не уходил в интернет, а самому сформировать правильный ответ. Какой именно - придётся подебажить. Кейген в данном случае не создать - нет проверки правильности ключа в программе, проверка происходит на сервере.
>>850891>модифицировать её таким образом, чтобы запрос к сайту не уходил в интернет>изменить флажок после запроса на противоположный и регистрация пройденаЯ нашёл то место, говорю же. Всё, что осталось, это правильно пройти развилки от нажатия Activate до вызова этой функции. Там есть проверка ключа всё равно, проверяется подходит ли под шаблон и если ок, то идёт запрос. Вот нужно сделать так, чтобы выполнена была проверка под шаблон.
>>850983Вечером зайду или завтра. Нельзя к дебагеру прикасаться, пока по учёбе не сделаю всё, слишком пропадаю в нём.
>>850983>правильно пройти развилкиИмеется ввиду, что запрос сформирован там прямо видно, ссылка идёт на их api, указываются параметры, затем всё это дело сливают и получается новая ссылка с параметрами уже готовая и его передают curl, она обрабатывает и дальше идёт je, то есть сравнение и если всё ок то дальше идут проверки, опять вызовы curl, но там я от вывода сообщения об успешной регистрации до того места исследовал и знаю где какое условие ставить, чтобы выполнение дошло до сообщения об успешной активации. Казалось бы всё ясно, но чтобы посмотреть как эта функция работает, мне пришлось её вызвать посреди другого кода, так что программа падает при попытке отрисовать это дело, хотя по всем пунктам ок. Вот и нужно не самому вызывать её, а найти место где-то в лабиринте проверок условий где она вызывается. Тогда задача решена. Собственно, условий там не так много, но когда я копался и получал на выходе разные сообщения об ошибках я жал всегда f8, а там куча функций, а в них ещё функции а в них условия и где-то в дебрях этих функций вызывается искомая. Из возможных конфигураций нашёл такую, что выводитcя типа This code is already registered. Думаю, что это и есть верная конфигурация, как минимум ключ отправлялся на проверку(не хранятся же в коде все зареганные ключи), где-то внутри функций этих должен быть вызов моей сладенькой. Но сук, я опять полчаса просидел. Нахуй, закрываю пока матан с графами не сделаю.
>>851006Изначально выводилось Please check your license code, it`s invalid или вроде того, один je на jne заменил и уже вот так. Короче круг поиска сужается.
>>851008>Please check your license code
>>850983Нет же. Тебе нужно подменить ответ от сервера.Есть ещё один вариант - прокси-сервер. Если открытым текстом шлют запросы, то задача упрощается. Там ведь есть настройки для выхода в интернет? Твой мини-прокси будет отслеживать URL и решать, передавать дальше управление или выдавать фейковый ответ. Но в любом случае, нужно знать, какой параметр за что отвечает и что ожидает программа получить от запроса.
>>851013А почему мой вариант не прокатит? Проще ведь изменить проверку где-то внутри функций, чтобы она не говорила, что такой ключ уже зареган.
>>851013Но я понял, спасибо. Сейчас всё закрою и как сделаю вернусь. Ещё вот мысль появилась где искать. Там с определённого момента всё заполняется текстом >This license code is already registered, ну точнее не им, а тем, что лежит в rdx, нужно посмотреть предыдущую функцию выходит.
>>851013>ещё один вариант - прокси-сервер. Если открытым текстом шлют запросы, то задача упрощается. Там ведь есть настройки для выхода в интернет? Твой мини-прокси будет отслеживать URL и решать, передавать дальше управление или выдавать фейковый ответО, бля, я понял! Охуенно! Но всё же попробую поковырять сами условия, мне по идее не важно, что ответит сервер, если на его ответ поменять реакцию. И я знаю, где записана эта реакция, я не знаю, где вызывается функция отправки на сервер, но если я найду место вызова, то дальше я знаю, как проставить je jne, чтобы исполнение дошло до строки "Thank you, your program is now activated!", а затем всё это дело с кучей других параметро запишется в rbx, вернётся управление в место на скринах и оттуда запустится уже с этими параметрами user32, то есть увижу другое окошко, с сообщением об успешной регистрации. Такой пока план. Всё, в пизду, закрываю всё пока что.
>>851016>всё это делоНу в смысле строка в rbx, а другие параметры куда-то ещё.
>>850891> модифицировать её таким образом, чтобы запрос к сайту не уходил в интернетКрутое решение, если не получится сделать, как планирую, то сделаю так.
>>850891>>851013Спасибо!
>>851014А ты уверен, что это единственное место, где ключ проверяется? Может быть, по пути к этой функции результат был записан в несколько сотен мест? Ну не будет у тебя запроса на регистрацию, а программа как работала в демо режиме, так и работает в нём.
>>851021Не уверен, но очень надеюсь, по крайней мере очень похоже на это, место, где формируется запрос вроде как одно.>https://api.presonus.com/registration/app/А нет, три.
>>851027И это только где запрос формируется. Ну да, тогда нужно подменить ответ.
Ебать пацаны, это ОП. Ни хилый такой у вас ажиотаж тут случился. Я рад что вызвал у вас интерес к этому. Сегодня ночью меня осенило, наверное копание в этом коде, дают особые сбои в мозге. Прям аж сны снятся уже, где я двагаюсь во сне, по строкам jmp от одного сектора к другому. Типо хочу взять стакан и такой код появляется, где я джампаю к следующему циклу. Ебать я походу тоже уже поехал, как анон выше говорил. Но суть вот в чём, когда я наебнул код программы, она сказала что нету соединения с интернетом, и нету вариантов активировать оффлайн, следовательно, как анон выше говорил, ключ они сверяют на серваке. Может по хешу. А может уже сразу берут из твоего профиля. Там у них на сайте, ты активируешь ключ, по особо графе. Может идёт привязка по маку, или железу. Типо Айлок. Но инфа сомнительная. Одно не понятно, если всю их систему можно наебнуть одним лишь джампом, то нахуй такой гимор? Если тред утонет пацаны, создам новый, или создам когда хоть как-то продвинусь.
>>851150>если всю их систему можно наебнуть одним лишь джампом, то нахуй такой гиморМожно ли? Тебе же написал уже, что там может быть сотня мест, куда заносится результат. Внешне программа может работать нормально, а в действительности будет демо-версия.
>>851150>дают особые сбои в мозге. Прям аж сны снятся уже, где я двагаюсь во сне, по строкам jmp от одного сектора к другому. ДДАА ПО КАЙФУ Нас тут двое с тобой если чё. Я всё это время тот>>848986 анон. Но тут к нам подтянулся труЪ-специалист похоже.>>851187Ты не ему писал. Нас двое тут. Ты прав, да. Как с учёбой разгребусь сделаю как ты сказал. Ещё вопрос такой: >https://api.presonus.com/registration/app/?license_number=AAAAAAAAAAAAAAAAAAAA&email=a%40mail.ru¬ify=YES&first_name=&last_name=&organization=&address1=&address2=&city=&state=&zip=&country=&age=&sex=&interest=&interest_specify=&hear_about=&hear_about_specify=&product=Notion&edition=&version=6.0&build=409&platform=Windows%206.1&platform_version=&activate_software=Вот такой запрос подаётся curl`у. Когда я пробую его подать, мне выдаёт The URI you submitted has disallowed characters. На самом деле там две части:https://api.presonus.com/registration/app/ и остальная отдельно в libcurl подаются, но я почитал документацию по идее там между ними как раз должен быть вопрос, гет-запрос, почему не выходит, что может быть?Абу заебал шатать у нас утт важные дела!
>>851187Да в чём тогда проблема, даже если внешне она как демо, даже с джампом, но по функционалу даже не урезается. Время отматываю, нормально работает. Стеснений не испытываю. Странно короче это.
>>851203<body> <div id="container"> <h1>404 Page Not Found</h1> <p>The page you requested was not found.</p> </div></body></html>
>>851203У curl много возможностей. Можно URL одной строкой передать, можно массивом параметров ключ-значение. Может быть, он ожидает, что ты параметры ему передашь, а ты ему полный запрос. Или на недопустимые символы ругается не curl? Или мне чего-то непонятно. Название функций, к которым обращается программа с curl, должны быть известны. Посмотри, что от тебя ожидают.>httpsПрокси отпадает. Только mitm-прокси, только хардкор.Как эту программу скачать (если что, конечно же, потом как-нибудь, мне проект надо закончить же)? Тыкал-тыкал в эту Download, ничего не вылезает и не скачивается.>>851204>Странно короче это.Некоторые производители (крупного) ПО забивают на мега-защиту своих программ. Простейшая проверка, jz на jnz и программа не требует регистрации. Всё равно, если будешь подобную программу использовать в коммерческих целях, сразу же всплывёт, что нет лицензии.
>>851207Как можно использовать программу в коммерческих целях? Это же нотный редактор.
>>851244Ну ёлки-палки. Ну будь поумнее кочана капусты, ну что ты в самом-то деле.
>>851254Охуенный ебать ответ. Если ты хотел просто пооскорбляться, то пошёл ты нахуй, сын шалавы.
Посоны, я очень хочу вкотиться, пока учу сишку по Прате. У меня вопрос насчет ассемблера, кому не трудно, удовлетворите любопытство.Вот имеется много ассемблерных языков, FAST NASM MASM32. Синтаксис у всех разный, или же их в природе только два - AT&T и Intel?. Нужно ли знать их все? Конвертируются ли они друг в друга? Есть к примеру какойнибудь троянчик,неважно ведь на чем он написан, все равно же по сути после дизасемблирования он будет в каком-то из этих двух синтаксисов?
>>851429Погугли "See MIPS Run", "Alpha Instruction Set", "SPARC Instruction Set" и т.д. Всё это разные Озсемблёры.
>>851429Синтаксисы в деталях отличаются. Где какие скобочки ставить, и ставить ли, где dword ptr писать, директивы для макропроцессора и ассемблера (не инструкции) у всех свои, опять же. А после дизассемблирования - ну вот в какой синтаксис дизассемблер отформатирует код, в таком оно и будет.А >>851565 тебе про ассемблеры для разных архитектур рассказывает.
>>851591Тоесть, чтобы ок читать дизассемблированный код, из иды к примеру, мне надо знать масм. Ну, грубо говоря
>>851429Смотри, у тебя проц, например, ч64. У него есть некий набор команд и регистров, вот с ним ты и можешь работать. А различия будут, например такие:mov eax,ebx (Intel)movl %ebx,%eax (AT&T)Но по сути это одна команда. Мне удобнее синтаксис intel.
>>851207Чувак, а я забухал и ни к учёбе ни к этому не приступал, лол. Друзья пришли, вытащили и понеслось. Там сначала надо зарегаться у них: регаешься и сразу появляется кнопочка скачать демоверсию.
>>851207>можно массивом параметров ключ-значениеЯ и так и так пробовал. Да не, это эквивалентно же. Тем более в коде строкой. Там после этого сразу вызывается curl easy четатам curl perform и curl getinfo, гет запрос короче, и вроде как ниче там нету. между, строка так и передается. Кстати, сначала идёт коннект, а затем только окно регистрации. Может, там какое то соединение устанавливается, типа токен одноразовый или хз и без него запрос никак не отправить.
>>851654Хотя, мб надо посмотреть, что там в setopt указывается.
>>851207> параметры ему передашьcurl https://api.presonus.com/registration/app/ -d"license_number=AAAAAAAAAAAAAAAAAAAA&email=a%40mail.ru¬ify=YES&first_name=&last_name=&organization=&address1=&address2=&city=&state=&zip=&country=&age=&sex=&interest=&interest_specify=&hear_about=&hear_about_specify=&product=Notion&edition=&version=6.0&build=409&platform=Windows%206.1&platform_version=&activate_software="<!DOCTYPE html><html lang="en"><head><title>404 Page Not Found</title><style type="text/css">::selection{ background-color: #E13300; color: white; }::moz-selection{ background-color: #E13300; color: white; }::webkit-selection{ background-color: #E13300; color: white; }body { background-color: #fff; margin: 40px; font: 13px/20px normal Helvetica, Arial, sans-serif; color: #4F5155;}a { color: #003399; background-color: transparent; font-weight: normal;}h1 { color: #444; background-color: transparent; border-bottom: 1px solid #D0D0D0; font-size: 19px; font-weight: normal; margin: 0 0 14px 0; padding: 14px 15px 10px 15px;}code { font-family: Consolas, Monaco, Courier New, Courier, monospace; font-size: 12px; background-color: #f9f9f9; border: 1px solid #D0D0D0; color: #002166; display: block; margin: 14px 0 14px 0; padding: 12px 10px 12px 10px;}#container { margin: 10px; border: 1px solid #D0D0D0; -webkit-box-shadow: 0 0 8px #D0D0D0;}p { margin: 12px 15px 12px 15px;}</style></head><body> <div id="container"> <h1>404 Page Not Found</h1> <p>The page you requested was not found.</p> </div></body></html>Ну вот, смотри.
>>851599Да абсолютно похуй, что знать. Различия минимальны. Зная один синтаксис и прочитав за 15 минут про другой, можно спокойно писать уже.
Поддаётся потихоньку. Тот участок кода, на который в прошлый раз думал оказывается неактивный и сайттот,мб с прошлый версий осталось. Сейчас вот прошла проверка на зареганный аккаунт, осталось на код проверить.
>>852013А вот запрос:http://register.notionmusic.com/authorize/check_email_code.php?license_number=AAAAAAAAAAAAAAAAAAAA&email=a%40mail.ru¬ify=YES&first_name=&last_name=&organization=&address1=&address2=&city=&state=&zip=&country=&age=&sex=&interest=&interest_specify=&hear_about=&hear_about_specify=&product=Notion&edition=&version=6.0&build=409&platform=Windows%206.1&platform_version=&activate_software=
>>8520141403218E0:"AVAILABLE"И вроде как запрос должен вот это вернуть.
>>852015Вызов curl вроде один там,нашёл переключатель,который реагирует на инвалид код. Пробелупиздапоходу.Надеюсь чтоненужнобудет черезпрокси мутить.
>>851654>curl easycurl_easy_init - создание контекста>curl performcurl_easy_perform - создание запроса, отправка запроса и получение результата>curl getinfocurl_easy_getinfo - extract information from a curl handleТам ещё должны быть вызовы curl_easy_setopt. Ими устанавливаются параметры: URL, таймаут, заголовок и прочее.>>851665Вероятно, сервер требует Referrer, User-Agent, ещё какие-нибудь хитрые поля. Ты голый запрос отправляешь, сервер тебя не узнаёт как программу и выдаёт '404 Page Not Found'. У меня mitm-прокси самодельный сломался. Но можно попробовать Fiddler или что-то подобное. И увидишь, какой заголовок программа отправляет.
>>852019Да, всёэто нашёл. get_info INVALID_CODE возвращает, нужно,чтобы он был AVAILABLE. Те посты устарели, см>>852017>>852014>>852015>>852013Видимо, тот участок кода простоот старых версийостался, атавизм короче. Попробуй пройди по новой ссылке, тебе всё выдаст.Осталось только подменить выдачу на AVAILABLE, пока пытаюсь все копии подменить, либо Короче, онивсессылаютсяна одинадрес:lea rcx, [rsp + 0x68]Ноя хз, не шарю, как подменить его на lea rdx, [0x140a318e0]Это адрес константы.В данный моментделаю следующееlea rсx, [0x140a318e0] в каждом месте,где используется. Я просто хз, какпопасть в [rsp+68], как этопонимать? В rsp хранится000000000030BC10Это какой-то относительный адрес или что? Я не понимаю.
>>852029> адрес константыAVAILABLE
>>852029И да, в коде только в одном месте запрос делает.Всё,что нужно,это подменить INVALID_CODE на AVAILABLE и всё заработает.
>>852029Блядь,я тупой.000000000030BC10+68 и есть INVALID_CODE,сукаа.Надо теперь в rsp записать AVAILABLE и вычесть 68 и всё заработает!
>>852035Бля, походу не.
>>8520355F44494C41564E49_DILAVNIА не, лол, я прав был. Только наоборотзаписыватеся,но этонеудивительно.
>>852040_INVALID
>>852040rcx:"AVAILABLCODE"Кек, ну яужеблизко, гдето втораячасть потерялась.
>>852029>[rsp+68], как этопониматьrsp - это указатель на вершину стека. В стеке хранятся временные переменные функции.
>>852042rcx:"AVAILABLE"НАААЙС
В дампе менял значение, полученное по запросу(INVALID_CODE) на AVAILABLE,там два раза запрос отсылается надва разных адреса.Вот что получилось. Но регистрациятакинепройдена, как и говорил анон.Видимо, придётся через проксисерверделать, хотястранно, ведьмодменил всезапросы, почему не вышло хз.Кажется, что где-то в мелочи наебался но уже спать рубитт,только поломаю всё.
>>852060Вот бля, выяснилось, что перед отправкой ключ сначала проверяется на валидность checksum и тд. То есть теперь нужно написать что-то вроде кейгена, ввести подходящий ключ, после того, как он пройдёт все проверки пойдут запросы на сервер и тогда уже подменять ответы в дампе. Пиздец какой.Анон,который писал кейген, есть какая-то инфа или я хз.
>>852663А хотя норм,разобрался.
Ну,лол, вроде всё. Причём ничего не менял в коде,тупо в регистрах значения менял. Правда при перезаходе сбрасывается естественно, так что осталось захардкодить это дело и нормас.
Это ОП. Обезьяна забанила, не мог писать. >>853761Так в чём там суть то была? Сервер или код?
>>854383Сначала код,затем сервер.При каждом включении проверяется код, причём это происходит ещё до появления окна регистрации.Предыдущий введённый код запоминается в проге.
>>855063И как? В итоге ты взломал её? Какие там вообще происходят отличия от демо?
>>855080Нет, пока учёбой занимаюсь. После нажатия ок один хуй демо запускается, не там искали, проверка идёт ещё до появления окошка с регистрацией. Нашёл там пару мест, потом запарюсь, сейчас пока нет времени.
>>855097Но всё это дико интересно, особенно порадовало просветление с изменением значений регистров вместо кода. Взлом без взлома,лол, то есть код не меняется, но окошко активации выскакивает, типа как у Брюса Ли стань водой, не ломать сам замок, а типа как вода проникнуть, затем стать льдом и провернуть ключ получившийся. Вот только каждый раз же не будешь прогу с дебагером запускатьт, всё же нужно хардкодить. В одном месте в eax ставишь 1 и все проверки, связанные с криптографией проходятся, там типа функции отработали и после этого какие-то значения в регистрах остаются, от них и зависит какие условия пройдут а какие нет. Или в том месте, где запрос. Функция отработала,запрос отправила и ответ INVALID_CODE, только записан наизнанку типа EDOC_DILVANI и в HEX.Ты берёшь, записываешь AVAILABLE(ELBALIAVA) в HEX в эти места в памяти и все проверки проходятся и типа активейшн саксесс.А наоборот потому,что там типа стек же, по одной букве заталкивается, вот и получается слово наизнанку.Я больше изучаю как че работает,чем ломаю уже. Внутри окна активации ничего нет,просто если всё ок, то код записывается в память. А при следующем включении этот код перемалывается в кашу числовую, идут сравнения и если всё хуёво, то опять окно активации вылазит, так что вся суть ещё до этого окошка, там и буду копать.Есть стойкое ощущение, что в итоге приду к самому началу, только если я там функцию тупо nopами заменил,то сейчас тупо по проверкам она не отработает да и всё,вся активация. То есть 70 процентов,что на месте топтание, изначально ок всё сделал, но надо ж ведь проверить, убедиться! Да и потом, такой-то опыт путешествия внутрь кода! И понял многое, пока ебался со всем этим, будто гуляешь по тропинкам, ы. Кароч охуенное занятие, вот.
>>855098>Взлом без взлома,лол
>>855099И бля, походу такое только на языке ассемблера возможно.
>>857859Ну, похоже получилось. В два этапа: сначала ключ проверяется, затем через интернет рега идёт, в одном месте jmp поставил и там, где интернет соединение в памяти подменил ответ на запрос, помимо этого ещё какие-то аддоны поставил, лал,expansion sounds. Повезло, нашёл место где проверяется хэш. Теперь думаю замутить кейген, лол. Почитал, там вроде не сильно трудно. Но это потом уже . Если надо могу екзешник скинуть, но у тебя по идее не пройдёт интернет активацию,надо один хуй запрос подменять. Либо внутрь вписать, но там вписываешь и всё по пизде идёт я хз как.
>>857931http://rgho.st/89wXyPlVy
ОП, ты не зная асм начал шерстить? Или ты не ОП? Расскажи за требования к области, что нужно учить первым делом?
>>857956Я не ОП..>>848986
>>857931Что в итоге дало то? Намути кейген. Буду признателен. Если конечно там всё реал робит и функционирует. Можешь даже сразу на рутрекер закинуть, пацаны тебя там на руках носить будут за такое.
>>858214В итоге когда в менюшке нажимаешь Software Activation вылазит это окошко, типа всё ок, ваш ключ, ваш емаил, установленные дополнения. Если вы купили дополнения, которых нет в списке, то жмякайте кнопку, они появятся.Потом, статью уже нашёл, и место, где MD5 и всё такое тоже давно ещё нашёл, потом займусь, учёба пока что, да и сил это отнимает. Как я и говорит, нужно быть ноулайфером-аутистом. Посмотри, там СУТКИ под отладкой. Чуть больше 24 часов потратил в общей сложности.
>>858302https://habrahabr.ru/post/135861/
>>858214Нужно будет помимо кейгена ещё захардкодить ответ сервера, всё забываю. А то я подставлял в регистр прямо во время работы программы.Типа к дампу переходишь и вот на это две строчки заменяешь.4c42414c494156410000000000000045В переводе ELBALIAVA(AVAILABLE)
>>858305Вот сюда.>rsp - это указатель на вершину стека. В стеке хранятся временные переменные функции.
>>858302Не понял. Он тебе сам с сервера все дополнения что ли ещё скачивает?
>>858310Ну да, скачал какие-то платные.>Notion,Progression, Notion 2, Metronome
>>858313Я правда хзчто это, Expansion sounds.
>>858313Не скачивает, а доступ открывает по идее. Там ключи разные есть, как я понял, можно помимо проги самой ещё что-то купить. Или нет. Хуй знает, не запаривался.
>>858314>Expansion sounds.http://support.presonus.com/hc/en-us/articles/210048923-Downloading-and-Installing-Purchased-Expansion-Sounds-for-Notion-and-ProgressionА, короче надо скачать и поставить, а без реги они не установятся. Или хуй знает. Но без этого вот такое окошко было>>857859
>>858318Ну да,типа если вы к упили аддоны, которых нет в списке, кликните и на сервер запрос идёт, если ок, то они потом появляются.
>>858321Не. Они не появятся просто так. Они весят по 6гб. Их надо качать с сервера. А там они по ссылке после покупки. Так что ты там с сервером сделал? Поменял запрос на свой? Или просто прыгнул*
>>858324Поменял ответ на AVAILABLE. То есть так их не скачать? Ну бля, тогда нужно где-то взять сами файлы, смысл в том, что если их скачать, они встанут. А если без этого сделать, то даже если ты их установишь,они не встанут., как я понял.
>>858324Наверное, просто не нужно было нажимать кнопку с аддонами. Там идёт проверка, какие аддоны зарегистрированы на твоём ключе, как я понял.
>>858327Там функция отработала, запрос проходит и возвращается INVALID_CODEhttp://register.notionmusic.com/authorize/check_email_code.php?license_number=AAAAAAAAAAAAAAAAAAAA&email=a%40mail.ru¬ify=YES&first_name=&last_name=&organization=&address1=&address2=&city=&state=&zip=&country=&age=&sex=&interest=&interest_specify=&hear_about=&hear_about_specify=&product=Notion&edition=&version=6.0&build=409&platform=Windows%206.1&platform_versionпопробуй сам, я подменил ответ на AVAILABLE
>>858330Типа к дампу переходишь и вот на это две строчки заменяешь.4c42414c494156410000000000000045В переводе ELBALIAVA(AVAILABLE)
>>8583315F44494C41564E49_DILAVNIИ там ещё вторая строка былEDOC
>>858324Прыгнул я где-то внутри функции проверки MD5, вернее не прыгнул, а значение в регистре 1 заменил на 0, никаких условий не менял.
>>858327Не. Встанут в любом случае. Там проверки особо и нету на это. Тут вообще какая-то ебанутая защита и не понятно что она даёт. Вроде по функционалу она не ограничивает даже.
>>858334https://habrahabr.ru/post/135861/тут типа того первая часть статьиА вторая уже кейгена написание.
>>858335В смысле? Ты их скачать можешь без регистрации?
>>858338И смс, лол.
>>858338Ну хуй знает, во всяком случае сейчас похоже, что активировано всё. По крайней мере проверка вылезла только в самом начале, типа всё, саксесс, а затем не вылазит больше, а когда в менюшке активейшн нажимаешь вылазит, что всё зарегано, ваш ключ, емейл, ауторизед аддонс,и кнопка, типа если в списке нет аддонов, которые вы купили,то жмякайте. обновим инфу по данному ключу.Во всяком случае я так понял.
Охуенно парни, читал как детективмимопрограммист
>>858602Жиза
>>848451 (OP)учи плюсыб йоба
Годный тред.
хуясе тут наукая понял что нихуя не знаю