в delphi константы могут меняться 😂
Да везде константы могут меняться :)
на то они и константы 😂
Не, если есть доступ к памяти - то константу можно поменять. Еще константа может поменяться по другим причинам - например скорость света/звука уточнялась кучу рез за последние века, а точное значение числа Пи еще досихпор не посчитали 😂
Хочет опять поспорить 🤣
это не спор, это констатация факта 🤷🏻♂️
Факты таковы что в софте константа это набор байт в определенной обрасти памяти которые можно изменить и ничего ты с этим сделать не сможешь :)
ну да, залезть в сегмент кода и править по живому все, что проинлайнилось🤣
Таков путь - это моя работа так то :)
А я не говорил про язык
так вот меняться они могут везде независимо от языка :)
не факт const A = $12345678; const B = 0; function AAA: Int32; begin result := A; end; function BBB: Int32; begin result := B; end; и как поменять область памяти для B при реальном кодегене: function AAA: Int32; var Result: Int32; begin // -- Part #0 -- Line #10 -- 0: ¸xV4. [B8 78 56 34 12 | MOV EAX{@Result},$12345678 // -- Part #1 -- Line #11 -- 5: Ã |C3 | RETN end; function BBB: Int32; var Result: Int32; begin // -- Part #0 -- Line #15 -- 0: 3À [33 C0 | XOR EAX{@Result},EAX // -- Part #1 -- Line #16 -- 2: Ã |C3 | RETN end;
В смысле ты не знаешь и хочешь чтобы я показал как это сделать?
Я изначально писал про совсем другое. const a = 1;
я привел пример когда для нулевой константы не завели истанса даже прицепом к инструкции процессора. а воспользовались ксором
это называется инлайн, есесно их нужно будет править на уровне опкодов
Технически, константа может размещаться по адресу устройства или еще какого регистра или счетчика, которому пофиг, что в него пишут.
Не может, она сначала должна быть туда откудато подгружена
Ну, допустим, подгрузили чего-то. Но прочитано будет другое.
Серег, я тебе как старый прожжонный реверсер ща скажу. Вот смотри есть железка, в неё на заводе зашивают серийный номер и ты его оттуда можешь только прочитать. Это константа. Но обладая моими знаниями можно легко сделать чтобы вместо этой константы возвращалось ЛЮБОЕ другое число, хоть тот-же GetTickCount. Так вот моя работа заключается в том, что никто, даже с такими знаниями как у меня не смог провернуть такой трюк. Не рассказывайте мне что сделать можно, а что нельзя. Все сделать возможно, было бы лишь желание :)
С виртуальной адресацией в userspace такое можно провернуть. В моем случае часть логики (шифрование, фильтрация, валидация данных) выполняется в отдельной сетевой железке. Можно, конечно, ее эмулировать (и я это делаю для отладки), но в продакшене чтобы извлечь данные из чипа надо специальные знания и умения (играться с питанием с астрономической точностью, сверлить дырки в чипе). Ну то есть сломать можно, но сложно. И каждое новое поколение чипов лучше защищено.
Как правило используются другие подходы, смысл ковырять там где защищяют? Ковыряют там где у тебя дыра :)
Я даже больше скажу, там у меня не дыра, а специально оборудованные ворота (отладочные логи, сигнальные файлы и консольные команды), они документированы и удобны. Есть еще официальный документированный API, и SDK. Но хакеры не ищут легких путей, а лезут в шифрованную базу данных, перехватывают обращения к ней.
Как бы сделал я - снял бы трассу с расшифровкой, выделил бы участок где принимается решение что именно нужно расшифровывать и зациклил бы этот участок вытащив через него все данные в нужном мне виде, т.е. я бы сам ни в какую криптографию бы не лез, мне не потребовалось бы изучать аппаратную часть - я бил бы там где у тебя дыра. Твой код сам бы для меня все услужливо сделал. Этот подход не раз применял, и от него достаточно сложно (если вообщзе возможно) защититься.
Грубо говоря, там железка с VPN, а софтина моя только ей управляет и пользуется. Смысла ее ковырять особо и нет, тем более ест готовый SDK.
Ты можешь легко посмотреть исходник любой страницы из интернета. А можешь получить эту страницу без модема или роутера, чисто на эмуляции модема на звуковой карте, как хакеры прошлого века? =)
первое думаю да. со старлинком мало шансов, заткнули дыры. а так то мы спутниковый интернет как-то вполне успешно ловили :) на тарелку. только на прием, понятно
Обсуждают сегодня