170 похожих чатов

Как защищают ПО на WPF от декомпиляции, допустим как ещё

не узнали исходный код программ: Kaspersky, McAfee и т д?

28 ответов

21 просмотр

Каспер написан на с++. Только gui на шарпе. И gui спокойно декомпилится

Tttttt-tttttt Автор вопроса
Tony Werner
Каспер написан на с++. Только gui на шарпе. И gui ...

допустим gui на c#, но ведь ядро тоже пишется на том же c#, или там какая-то обёртка? Может функционал на c++ написан, которые находятся на серверах, а c# участвует как обёртка этого api? То есть даже этот код пользователи могут узнать у Касперского?

Tttttt-tttttt Автор вопроса
Tttttt tttttt
допустим gui на c#, но ведь ядро тоже пишется на т...

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

Tttttt tttttt
Что-то мне так и не верится, что люди могут запрос...

вот представь, ты делал, делал WinRAR, а потом его взяли и скачали с торрентов, какой тогда вообще смысл?

Tttttt tttttt
допустим gui на c#, но ведь ядро тоже пишется на т...

Никакого ядра на c# не пишется, c++ находится у клиента, а не на серверах. Как там интероп работает написать не могу. Но там есть самописный компилятор c++ в c# на llvm чтоб можно было из шарпов плюсовыц код дергать

Tttttt tttttt
Что-то мне так и не верится, что люди могут запрос...

Многие проги Майков написаны на uwp и c++, так что декомпилить их не так казуально, как шарповые)

Tttttt tttttt
Что-то мне так и не верится, что люди могут запрос...

Нельзя просто взять и декомпилировать. Ты потом будешь вычищать кучу вещей чтобы все работало. Это все будет поделие крайне низкого пошиба. Минимум три месяца будут приводить это все дело в порядок и это при очень дотошном подходе. За это время выходят новые доработки. И техник инкрементальной декомпиляция еще в открытом доступе нет

Andrii Kurdiumov
Нельзя просто взять и декомпилировать. Ты потом бу...

задача декомпиляции обычно в том чтобы найти место где пропатчить пару IL-инструкций

Nikita Tsukanov
задача декомпиляции обычно в том чтобы найти место...

Если конечно там нет проверок подписи на сборках

с плюсами кому сильно надо возьмут идапро и так же залезут

Ну снимишь и ничего не загрузится...

Vladislav K
с плюсами кому сильно надо возьмут идапро и так же...

Ну да, но таких уже сильно меньше. Короче хз, битва жёлтого с коричневым

Tony Werner
Ну снимишь и ничего не загрузится...

чуть больше усилий, но всё загрузица

Vladislav K
с плюсами кому сильно надо возьмут идапро и так же...

такие, кому надо, уже свой антивирус написали

Tony Werner
Ну снимишь и ничего не загрузится...

если разве что каким то образом у тебя только подписанные сборки могут на машине исполнятся. а если все используемые сборки без подписи в full trust то кто помешает.

Tony Werner
Если конечно там нет проверок подписи на сборках

иии, тут мы ищем второе место которое надо пропатчить

Tttttt-tttttt Автор вопроса
Andrii Kurdiumov
Нельзя просто взять и декомпилировать. Ты потом бу...

Но всё же, допустим я написал интерфейс на xaml, написал ядро, которое делает запросы на сервер, сервер же отдаёт данные и отображает в интерфейсе, всё же, этот код, который участвует, как посредник между интерфейсом и серверным api, могут увидеть, верно? В этом случае получается, если я захочу это защитить, то придётся использовать что-то вроде PInvoke, который и будет посредником между c# и c++, и всю логику писать на плюсах, верно?

Tttttt-tttttt Автор вопроса
Tttttt tttttt
Но всё же, допустим я написал интерфейс на xaml, н...

допустим кидаю exe программу и оно запросто декомпилируется(первый скрин), а если посмотреть на чужие программы, то кода там нет(второй скрин), как они этого добиваются?

IL все равно останется

Tttttt tttttt
Но всё же, допустим я написал интерфейс на xaml, н...

Это не рабочий продукт. примерно понять что происходит ты можешь, найти точку где идет проверка на "лицензию" ты можешь. но этот "исходный" код на более менее большом объеме не будет рекомпилироваться обязательно что-то да отвалится при компиляции. починить что отвалится (включая потенциальные логические бомбы) я не думаю что выйдет быстро.

Дмитрий
IL все равно останется

ИСХОДНЫЕ коды не останутся

Tttttt-tttttt Автор вопроса
Tttttt tttttt
screenshot

но всё же, хотелось бы добиться такого результата, как на втором скрине или этого невозможно на c#

Tttttt tttttt
но всё же, хотелось бы добиться такого результата,...

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

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта