На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
Страницы: (5) 1 2 [3] 4 5  все  ( Перейти к последнему сообщению )  
> Обнаружил взлом своей программы копированием файла msimg32.dll , в папку моей программы
    Цитата
    Попытаться удалять DLL? Сразу найдет неугодный вызов DeleteFile или что-нить аналогичного.

    Можно написать лаунчер для своей программы...
    Launcher
    На Delphi :) , но смысл, думаю, понятен:
    ExpandedWrap disabled
      program Launcher;
       
      uses
        Windows, SysUtils;
       
        procedure DetectAndRemoveDLL;
        var
          SR: TSearchRec;
        begin
          if FindFirst('*.dll', faAnyFile - faDirectory, SR) = 0 then
          begin
            repeat
              if (SR.Attr and faReadOnly) <> 0 then
                FileSetAttr(SR.Name, SR.Attr and not faReadOnly);
              DeleteFile(SR.Name);
            until FindNext(SR) <> 0;
            FindClose(SR);
          end;
        end;
       
        procedure Exec(const S: string);
        const
          Flag = CREATE_DEFAULT_ERROR_MODE;
        var
          SI: TStartupInfo;
          PI: TProcessInformation;
        begin
          FillChar(SI, SizeOf(TStartupInfo), 0);
          SI.cb := SizeOf(TStartupInfo);
          CreateProcess(nil, PChar(S), nil, nil, False, Flag, nil, nil, SI, PI);
          CloseHandle(PI.hProcess);
          CloseHandle(PI.hThread);
        end;
       
      begin
        DetectAndRemoveDLL;
        Exec('MainProg.exe');
      end.
    Или что-то типа того...

    А потом понадобится Enigma Virtual Box
    Скрытый текст
    user posted image

    Что усложнит взлом...
      Цитата reinterpret_alexey @
      А если юзать Obfuscator-LLVM ?

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

      Добавлено
      Цитата Filka @
      потом понадобится Enigma Virtual Box

      Это вроде обычный упаковщик. :whistle:
        Цитата shm @
        Это вроде обычный упаковщик. :whistle:

        Распакуй :)
        Сообщение отредактировано: Filka -
          Цитата Filka @
          Распакуй

          все уже давно распаковано (не подойдет - в сети куча других) :whistle:
          Сообщение отредактировано: shm -
            Цитата neokoder @
            Если хеш будет в основной программе и она будет с цифровой подписью

            а как это вяжется с разными версиями DLL для разных систем? :blink:
            Сообщение отредактировано: UncleBob -
              Цитата
              Современные компиляторы с включенной оптимизацией и так являются хорошими обфускаторами.


              Не, тут о настоящих обфускаторах идет речь. Он замусоривает и запутывает код. И поток управления и поток данных.
              Необратимо. Obfuscator-LLVM это, так сказать, последняя академическая разработка.
              У них есть демка - kryptonite: http://0vercl0k.tuxfamily.org/bl0g/?p=260

              Цитата
              а как это вяжется с разными версиями DLL для разных систем?


              Ты читаешь клинический бред) Какой ты хочешь получить ответ?)
              Сообщение отредактировано: reinterpret_alexey -
                Цитата reinterpret_alexey @
                Он замусоривает и запутывает код

                Иии? Ты думаешь это сильно усложнит отладку?
                Сообщение отредактировано: shm -
                  Цитата
                  Иии?


                  Ну посмотри демку. Ты можешь покрыть весь код приложения таким обфускатором и сделать так, чтобы он работал только при правильном вводе серийника.
                  Пока серийник не уплывет к отакуюсчим - не думаю, что кто-либо поломает такое. А к случае с уплыванием - надо раздавать именные лицензии как делает
                  IDA&HexRays)

                  Цитата
                  Иии? Ты думаешь это сильно усложнит отладку?


                  Это сделает её практически невозможной. Даже автоматизированными средствами, т.к. не понятно, что именно искать. Символьные формулы
                  тоже не составишь - ни один smt сольвер их не решит: слишком много кода, не понятно, какой код выполняется, а какой нет.
                  Какой мусорный, а какой нет. В то и идеяя запутывания control-flow.
                  Сообщение отредактировано: reinterpret_alexey -
                    Цитата reinterpret_alexey @
                    Ну посмотри демку

                    Домой приду - посмотрю.
                      Цитата UncleBob @
                      а как это вяжется с разными версиями DLL для разных систем?

                      Я об этом говорил выше почитай.

                      Цитата reinterpret_alexey @
                      Ты читаешь клинический бред) Какой ты хочешь получить ответ?)

                      Слышь, придурок, больше не пиши на мой счет ничего ладно. Не зли, не хочу злиться :) Ты глупый бестолковый рассуждатель, теоретик! :D
                      Сообщение отредактировано: neokoder -
                        shm

                        Попробуй. У меня не получилось :) Прямой линк
                        http://download.tuxfamily.org/overclokblog...kme.Win7.x64.7z

                        Там же висит статья о том, как, из чего и чем они её скомпилировали
                        http://0vercl0k.tuxfamily.org/bl0g/?p=260
                          Какие, мля, обсуфукации :) хренофукации :D когда речь идёт о подмене DLL! Вот чудак!
                            Просто оффтопят, neokoder, не паникуй.
                              Цитата reinterpret_alexey @

                              Решение в твоем случае - указать явно системную директорию, в которой лежит msimg32.dll:
                              1) GetSystemDirectory(sysdir)
                              2) SetDllDirectory(sysdir)

                              или LoadLibrary(PathCombine(sysdir, 'msimg32.dll'))


                              Похоже, это то, что нужно. Но у меня msimg32.dll не загружается явно через LoadLibrary.

                              Т.о. нужно через SetDllDirectory, но где этот код вставлять в MFC приложении (Dialog Based)? Получается, что dll подхватывается раньше. Вставляю в начало метода CMyApp:InitInstance() { ... }, но это уже поздно.
                                Стандартная DLL хранится тут c:\Windows\System32\msimg32.dll и при попытке ее подменить Windows сразу заблокирует это действие.

                                Подгружай эту DLL из системной папки динамически и вызывай динамически необходимые тебе функции их в этой DLL всего 5, в чем проблема то ??? В лени ???
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (5) 1 2 [3] 4 5  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.0978 ]   [ 16 queries used ]   [ Generated: 15.07.26, 12:33 GMT ]