<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3577655</guid>
        <pubDate>Thu, 26 Feb 2015 15:43:25 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3577655</link>
        <description><![CDATA[progman: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3577541'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Kray74 &#064; <time class="tag-quote__quoted-time" datetime="2015-02-26T13:23:44+03:00">26.02.15, 10:23</time></span><div class='quote '>Антивирусы как к такой защите относятся?</div></div><br>
по разному. Иногда приходится ручками в исключения добавлять.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3577541'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Kray74 &#064; <time class="tag-quote__quoted-time" datetime="2015-02-26T10:23:44+00:00">26.02.15, 10:23</time></span><div class='quote '>Включая системные?</div></div><br>
вот за них не уверен. Надо маны читать.<br>
<br>
Я лично вмпрот уже 5 лет использую для защиты своих проектов.<br>
Лично знаю топовых ребят с краклаба - в общем в СНГ всего 4 человека есть которые могут снять правильно навешенную защиту вмпрот с мутацией, обфускацией, виртуализацией, защитой памяти и прочими плюшками<br>
и цена снятия от 15 тысяч]]></description>
        <author>progman</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3577541</guid>
        <pubDate>Thu, 26 Feb 2015 10:23:44 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3577541</link>
        <description><![CDATA[Kray74: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3577439'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>progman &#064; <time class="tag-quote__quoted-time" datetime="2015-02-26T00:40:57+00:00">26.02.15, 00:40</time></span><div class='quote '>вмпрот позволяет интегрировать все длл внутри програмного пакета - даже если длл изначально с динамической линковкой.</div></div><br>
Включая системные?<br>
<br>
Антивирусы как к такой защите относятся?]]></description>
        <author>Kray74</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3577439</guid>
        <pubDate>Thu, 26 Feb 2015 00:40:57 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3577439</link>
        <description><![CDATA[progman: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3576233'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>neokoder &#064; <time class="tag-quote__quoted-time" datetime="2015-02-22T13:30:34+00:00">22.02.15, 13:30</time></span><div class='quote '>Защитить то программу сможет, а вот предотвратить инъекцию никаким образом не сможет. Если надо сломать прогу то для этого не DLL-инъекции вообще используются. В общем это уже другая тема.<br>
И кстати данные в памяти всё равно в какой-то момент будут расшифрованы, так что вопрос цены и времени.<br>
Сообщение отредактировано: neokoder - 22 февраля, 13:35</div></div><br>
вмпрот позволяет интегрировать все длл внутри програмного пакета - даже если длл изначально с динамической линковкой.<br>
и контролирует как то целостность памяти процесса.<br>
<br>
там дохране чего напихано всякого.<br>
потому и цена взлома от 15 килобаксов]]></description>
        <author>progman</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3576233</guid>
        <pubDate>Sun, 22 Feb 2015 13:30:34 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3576233</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3576163'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>progman &#064; <time class="tag-quote__quoted-time" datetime="2015-02-22T08:16:37+00:00">22.02.15, 08:16</time></span><div class='quote '>VMProt купить и упаковать-пошифровать свое творение этим протектором.<br>
Он же от длл инъекций защитит.</div></div><br>
Защитить то программу сможет, а вот предотвратить инъекцию никаким образом не сможет. Если надо сломать прогу то для этого не DLL-инъекции вообще используются. В общем это уже другая тема.<br>
И кстати данные в памяти всё равно в какой-то момент будут расшифрованы, так что вопрос цены и времени.]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3576163</guid>
        <pubDate>Sun, 22 Feb 2015 08:16:37 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3576163</link>
        <description><![CDATA[progman: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3404967'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ViH &#064; <time class="tag-quote__quoted-time" datetime="2014-01-25T15:23:29+00:00">25.01.14, 15:23</time></span><div class='quote '>Недавно обнаружил, что к моей программе выпущен кряк. Работает он так - просто просят скопировать в папку с моей программой специальный файл msimg32.dll, который видимо специальным образом модифицирован.<br>
<br>
Когда моя программа устанавливается, там в папке с исполняемым файлом вообще нет никаких dll. Моя программа, видимо, обычно берет этот файл из папки Windows. Насколько я знаю, .dll файлы сначала ищутся в папке программы (где исполняемый файл) – если такового нет, то в папке Windows... – это я и не предусмотрел.<br>
<br>
<br>
Подскажите пожалуйста, как можно защититься от подобных подложек?<br>
<br>
Была идея проверять, есть ли в папке с программой есть какие-нибудь dll файлы, то сразу завершать работу программы с сообщением об ошибке. Но может быть есть какие-нибудь другие варианты?<br>
<br>
<br>
p.s. Программа написана на VC MFC.</div></div><br>
VMProt купить и упаковать-пошифровать свое творение этим протектором.<br>
Он же от длл инъекций защитит.<br>
<br>
Слом вмпрота стоит от 15 килобаксов.]]></description>
        <author>progman</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3576008</guid>
        <pubDate>Sat, 21 Feb 2015 13:52:39 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3576008</link>
        <description><![CDATA[Qraizer: Надёжным является получение необходимых прав по запросу, не надёжным – незаметно.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3575949</guid>
        <pubDate>Sat, 21 Feb 2015 08:41:23 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3575949</link>
        <description><![CDATA[neokoder: Не ну самом деле опираться только на то что требуются права админа чтобы записать в каталог с приложением это ж очень недальновидно со стороны микрософтов и это мягко говоря )).<br>
<br>
А по поводу админских прав читаем <strong class='tag-b'>очередной</strong> пассаж от микрософт<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>Microsoft</span><div class='quote '>This security update resolves a vulnerability in Microsoft Windows that could allow an attacker to take advantage of the lack of impersonation-level security checks to elevate privileges during process creation. An authenticated attacker who successfully exploited this vulnerability could obtain administrator credentials and use them to elevate privileges. An attacker could then do the following:<br>
<br>
    Install programs<br>
    View, change, or delete data<br>
    Create new accounts that have full administrative rights </div></div><br>
<br>
И после этого они же и надеются что отсутствие адиниских прав это очень надежно&#33;   :)  :D]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3575947</guid>
        <pubDate>Sat, 21 Feb 2015 08:36:29 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3575947</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3575931'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2015-02-21T07:10:16+00:00">21.02.15, 07:10</time></span><div class='quote '>:facepalm:</div></div><br>
Как тебя понимать? :)]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3575931</guid>
        <pubDate>Sat, 21 Feb 2015 07:10:16 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3575931</link>
        <description><![CDATA[Qraizer: :facepalm:]]></description>
        <author>Qraizer</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3575744</guid>
        <pubDate>Fri, 20 Feb 2015 18:28:13 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3575744</link>
        <description><![CDATA[neokoder: На самом деле всё ещё хуже...  :(  у микрософтов <br>
Сам kernel32.dll грузит системные либы из папки приложения. Это вообще кто у них придумал вот интересно?<br>
Сделать delay-loading на kernel32.dll нельзя, отсюда любое приложение не защищено.<br>
Можно только пост-приорно проверить своё приложение уже после загрузки на наличие подключенных вредоносных DLL-ок, выгрузить их и поудалять, загрузить правильные или хотя бы не давать работать приложению. Но это полумеры, поскольку если DLL-ка грузанулась она уже и дел может натворить&#33;<br>
<br>
Опираться только на то, что доступ к папке приложения будет закрыт правами админа, это слишком недальновидно со стороны микрософтов. <br>
Штука в том, что можно загрузить комп с диска или флешки(ну мало кто ставит пароль в BIOS) линуксовского LIVE CD и спокойненько и быстренько скопировать DLL в нужную папку. Не надо иметь доступ в систему чтобы поставить хуки или как-то там ещё заморачиваться другими способами. Просто файлик скопировал и всё. А вот далее лежит себе какая-то DLL-ка в папке приложения и кто на неё обращать внимание будет? Правильно никто. А она может всё что угодно, к примеру мониторить всю память любого процесса и передавать данные по сети куда угодно. Все фаэрволы будут молчать&#33; К примеру в папку к любому браузеру или почтовой программе закинул и все разрешения на исходящие на 80,443,53 или почтовые порты уже есть&#33; А если приложение при запуске попросит права администратора так вообще пи....&#33;<br>
<br>
Ведь просто же исправить: разрешить загрузку системных либ только из системных папок, собственно там где они только и могут находиться.<br>
<br>
Вот вам реальный пример как просто можно хакнуть любую программу:<br>
<span class="b-attach" data-size="48464" data-hits="142" data-attach-id="43733" data-attach-post-id="3575744">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3575744&amp;attach_id=43733' title='Скачать файл' target='_blank'>version.7z</a> (, : 142)
		</span><br>
<br>
И все эти бла-бла-бла о том что дескать нет админских прав записать что-то в папку приложения это вообще херня. Всё можно, и это не сложно.<br>
Вон скайп вообще обновляется скачивая обновления в темповую директорию юзера, если там будет лежать соответсвующая DLL, пи.... юзеру. Скайп запросит админские права, ну а далее с админскими правами...  :victory:]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408718</guid>
        <pubDate>Fri, 31 Jan 2014 18:52:01 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408718</link>
        <description><![CDATA[reinterpret_alexey: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3408699'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Славян &#064; <time class="tag-quote__quoted-time" datetime="2014-01-31T18:20:29+00:00">31.01.14, 18:20</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3408660'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-31T16:13:46+00:00">31.01.14, 16:13</time></span><div class='quote '>Программа должна устанавливаться в Program Files.</div></div>Так - вы навязываете автору, куда ему устанавливать программу. Не следует.</div></div><br>
Ничего не навязываю. Просто это никаким боком не задевает вопрос безопасности. Если пользователь имеет доступ к директории, в которую установлена программа, какой смысл думать о каких-то DLL? Он может просто изменить саму программу. Это не вопрос секурити и это НЕ БАГ. Ни программы, ни системы. Вся эта тема с именами DLL, с поиском DLL и KnownDlls называется DLL HIJACKING. Иногда это действительно баг, я давал ссылку (СOM hijacking). В данном случае нет никакой проблемы. Решать же нечего. Рассуждать можно, я всегда за:)]]></description>
        <author>reinterpret_alexey</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408699</guid>
        <pubDate>Fri, 31 Jan 2014 18:20:29 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408699</link>
        <description><![CDATA[Славян: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3408660'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-31T16:13:46+00:00">31.01.14, 16:13</time></span><div class='quote '>Программа должна устанавливаться в Program Files.</div></div>Так - вы навязываете автору, куда ему устанавливать программу. Не следует.]]></description>
        <author>Славян</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408660</guid>
        <pubDate>Fri, 31 Jan 2014 16:13:46 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408660</link>
        <description><![CDATA[reinterpret_alexey: Программа должна устанавливаться в Program Files. В Program Files писать может только админ. Тот, у кого есть права админа может сделать все, что угодно. В чем вопрос?]]></description>
        <author>reinterpret_alexey</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408654</guid>
        <pubDate>Fri, 31 Jan 2014 15:58:47 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408654</link>
        <description><![CDATA[neokoder: Так в итоге получается <em class='tag-i'>&quot;У-у, как все запущено&quot;</em> если и можно сказать то только про микрософтов :) ну по данному конкретному вопросу точно<br>
Если дело обстоит так как говорит топик стартер и он непосредственно эту DLL не юзает, то user32.dll или какая-то другая  системная либа не может правильно загрузить свою msimg32 по правильному пути а грузит из папки приложения&#33; <br>
Неважно как они реализуют Deload Load, в любом случае такие либы как msimg32, которые являются системными но почему-то странным образом их нет в KnownDLLS должны грузится по правильному пути всеми системными DLL, а не из папки приложения. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2014-01-31T16:06:03+00:00">31.01.14, 16:06</time></span></span><br>
Кстати через манифест и side-by-side component нельзя жестко задать путь к таким либам. В элементе манифеста <strong class='tag-b'>file</strong> <em class='tag-i'>hash</em> параметр не обязательный и видимо система его вообще игнорит, а полный путь к DLL задать нельзя. Так что либа всё равно будет грузиться из папки приложения, если она там есть.]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408357</guid>
        <pubDate>Fri, 31 Jan 2014 08:21:16 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408357</link>
        <description><![CDATA[leo: У-у, как все запущено - msimg32 сидит в delay load импорте многих сис.dll, в частности IE-библиотек, и даже (о, боже&#33;) в user32 (используется ф-я AlphaBlend).<br><br>Поэтому, если msimg32 действительно загружается с задержкой через delay import, то решение проблемы может оказаться простым &quot;до безобразия&quot; - просто на старте проверяем загрузку msimg32 по GetModuleHandle, и если получаем NULL, то просто грузим ее сами (&#33;) через LoadLibrary из сис.директории. Ну а если она уже подцепилась (что мало вероятно при delay load), то проверяем ее путь и если он не соответствует system32, то (тихо-мирно без лишнего шума) отказываемся работать или еще лучше впадаем в обморок&#092;конвульсии и начинаем глючить :)]]></description>
        <author>leo</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408025</guid>
        <pubDate>Thu, 30 Jan 2014 13:28:57 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408025</link>
        <description><![CDATA[Filka: <strong class='tag-b'>ViH</strong><br>
<a class='tag-url' href='http://www.dependencywalker.com/' target='_blank'>http://www.dependencywalker.com/</a>]]></description>
        <author>Filka</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408006</guid>
        <pubDate>Thu, 30 Jan 2014 13:07:18 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3408006</link>
        <description><![CDATA[ViH: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3407202'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-29T12:47:10+00:00">29.01.14, 12:47</time></span><div class='quote '><strong class='tag-b'>ViH</strong><br>
Какая у тебя Visual Studio? 6.0?<br>
msimg32.dll вообще не должна использоваться. Она у тебя используется потому что где-то есть код, вызывающий<br>
<span class='tag-size' data-value='11' style='font-size:11pt;'><span class="tag-color tag-color-named" data-value="red" style="color: red">одну из устаревших функций (нужны для 9x)</span></span> - AlphaBlend, GradientFill, TransparentBlt, vSetDdrawflag.<br>
Их нужно заменить на <strong class='tag-b'>Gdi</strong>AlphaBlend, <strong class='tag-b'>Gdi</strong>GradientFill, <strong class='tag-b'>Gdi</strong>TransparentBlt, <strong class='tag-b'>Gdi</strong>vSetDdrawflag,<br>
т.е. в название добавить <strong class='tag-b'>Gdi</strong>. Если msimg32.lib есть в настройках проекта (linker options), то нахрен выкинуть и заменить на gdi32.lib.</div></div><br>
VS 2013 Ultimate, ни одна из этих функций в программе не используется. <br>
<br>
Проблема в том, что я не знаю, откуда подгружается эта msimg32.dll<br>
<br>
В коде через LoadLibrary у меня подгружаются только:<br>
UxTheme.dll<br>
wtsapi32.dll<br>
psapi.dll<br>
kernel32.dll<br>
<br>
В AdditionalDependencies только Psapi.lib <br>
(там нет msimg32.lib и gdi32.lib)]]></description>
        <author>ViH</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407766</guid>
        <pubDate>Thu, 30 Jan 2014 09:49:04 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407766</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3407498'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>leo &#064; <time class="tag-quote__quoted-time" datetime="2014-01-29T22:33:27+00:00">29.01.14, 22:33</time></span><div class='quote '>Дело не в мало или много, а в том, что эти dll могут юзаться &quot;без твоего ведома&quot; либами типа MFC и т.п., в которые со своим LoadLibrary просто так не влезешь.<br>
Хотя VC, вроде как, позволяет задавать delay load dll и свой хук на их загрузку. Но все равно это морока - перед каждым билдом проверять, не появилось ли &quot;что-то но-овенькое&quot;, чтобы добавить его в delaylod </div></div><br>
<br>
Я это понимаю, поэтому и говорил выше если ты читал, что все подмены системных DLL из knownDLLs это в принципе не забота создателей программы, и тем более то что загружают системные либы типа MFC. Но те, которые грузит само приложение непосредственно и они почему то странным образом отсутствуют в knownDLLs и поэтому могут грузиться из папки приложения при Load-Time Dynamic Linking надо бы или подгружать вручную или хотя бы контролировать путь их загрузки, пусть и уже после загрузки, всегда можно завершить приложение если она загрузилась не оттуда откуда надо.<br>
<br>
Ну вот у чела конкретная проблема и её вполне можно решить одним из путей.<br>
<br>
Кстати, <strong class='tag-b'>leo</strong>, знаешь или нет можно использовать манифест и side-by-side components чтобы жестко задать путь к таким DLL?]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407498</guid>
        <pubDate>Wed, 29 Jan 2014 22:33:27 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407498</link>
        <description><![CDATA[leo: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3407395'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>neokoder &#064; <time class="tag-quote__quoted-time" datetime="2014-01-29T18:18:46+00:00">29.01.14, 18:18</time></span><div class='quote '>leo, ну неужели ваши приложения используют очень много системных DLL не из списка KnownDlls? Не думаю что их так много что сложно будет их пересадить на run-time linking.</div></div><br>
Дело не в мало или много, а в том, что эти dll могут юзаться &quot;без твоего ведома&quot; либами типа MFC и т.п., в которые со своим LoadLibrary просто так не влезешь.<br>
Хотя VC, вроде как, позволяет задавать delay load dll и свой хук на их загрузку. Но все равно это морока - перед каждым билдом проверять, не появилось ли &quot;что-то но-овенькое&quot;, чтобы добавить его в delaylod]]></description>
        <author>leo</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407395</guid>
        <pubDate>Wed, 29 Jan 2014 18:18:46 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407395</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3407377'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>leo &#064; <time class="tag-quote__quoted-time" datetime="2014-01-29T17:35:26+00:00">29.01.14, 17:35</time></span><div class='quote '>Ну что вы привязались к этой несчастной msimg32.dll? Наверняка, злоумышленники выбрали ее для кряка только благодаря малому размеру. Решите проблему с ее загрузкой - просто выберут другую из десятка прочей &quot;всякой всячины&quot;. Прикажите штудировать весь импорт и пресаживать все не KnownDll на LoadLibrary?<br>
</div></div><br>
<strong class='tag-b'>leo</strong>, ну неужели ваши приложения используют <strong class='tag-b'>очень</strong> много системных DLL не из списка KnownDlls? Не думаю что их так много что сложно будет их пересадить на run-time linking. И достаточно будет только для первого уровеня из dependencies приложения, а то что они там уже вызывают это уже не дело приложения. Ну реально думаю это сделать, почему нет.<br>
<br>
А что ещё можно сделать?]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407377</guid>
        <pubDate>Wed, 29 Jan 2014 17:35:26 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407377</link>
        <description><![CDATA[leo: Ну что вы привязались к этой несчастной msimg32.dll? Наверняка, злоумышленники выбрали ее для кряка только благодаря малому размеру. Решите проблему с ее загрузкой - просто выберут другую из десятка прочей &quot;всякой всячины&quot;. Прикажите штудировать весь импорт и пресаживать все не KnownDll на LoadLibrary?]]></description>
        <author>leo</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407202</guid>
        <pubDate>Wed, 29 Jan 2014 12:47:10 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407202</link>
        <description><![CDATA[reinterpret_alexey: <strong class='tag-b'>ViH</strong><br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Похоже, это то, что нужно. Но у меня msimg32.dll не загружается явно через LoadLibrary. </div></div><br>
<br>
Какая у тебя Visual Studio? 6.0?<br>
msimg32.dll вообще не должна использоваться. Она у тебя используется потому что где-то есть код, вызывающий<br>
<span class='tag-size' data-value='11' style='font-size:11pt;'><span class="tag-color tag-color-named" data-value="red" style="color: red">одну из устаревших функций (нужны для 9x)</span></span> - AlphaBlend, GradientFill, TransparentBlt, vSetDdrawflag.<br>
Их нужно заменить на <strong class='tag-b'>Gdi</strong>AlphaBlend, <strong class='tag-b'>Gdi</strong>GradientFill, <strong class='tag-b'>Gdi</strong>TransparentBlt, <strong class='tag-b'>Gdi</strong>vSetDdrawflag,<br>
т.е. в название добавить <strong class='tag-b'>Gdi</strong>. Если msimg32.lib есть в настройках проекта (linker options), то нахрен выкинуть и заменить на gdi32.lib.]]></description>
        <author>reinterpret_alexey</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407180</guid>
        <pubDate>Wed, 29 Jan 2014 12:16:33 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407180</link>
        <description><![CDATA[neokoder: <strong class='tag-b'>ViH</strong> почитай, чтобы разобраться:<br>
<a class='tag-url' href='http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586%28v=vs.85%29.aspx' target='_blank'>Dynamic-Link Library Search Order</a><br>
<a class='tag-url' href='http://msdn.microsoft.com/en-us/library/windows/desktop/ff919712%28v=vs.85%29.aspx' target='_blank'>Dynamic-Link Library Security</a><br>
<br>
Можно ещё использовать манифест и side-by-side components, я честно говоря не знаю можно ли таким образом жестко задать путь к msimg32.dll, не пробовал.]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407148</guid>
        <pubDate>Wed, 29 Jan 2014 11:49:03 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407148</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3407124'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ViH &#064; <time class="tag-quote__quoted-time" datetime="2014-01-29T11:20:19+00:00">29.01.14, 11:20</time></span><div class='quote '>Но у меня msimg32.dll не загружается явно через LoadLibrary. </div></div><br>
Сделай чтобы загружалось <a class='tag-url' href='http://msdn.microsoft.com/en-us/library/windows/desktop/ms686944%28v=vs.85%29.aspx' target='_blank'>Run-Time Dynamic Linking</a><br>
Просто укажи путь к этой библитеке в LoadLibrary и не нужны никакие SetDllDirectory.<br>
Если очень важна безопаснсоть или для твоего случая - когда кто-то там играется с подменой, то в принципе для всех системных DLL которые не перечислены здесь: <em class='tag-i'>HKEY_LOCAL_MACHINE&#092;SYSTEM&#092;CurrentControlSet&#092;Control&#092;Session Manager&#092;KnownDLLs</em> и используется твоей программой надо бы использовать Run-Time Dynamic Linking c явным указанием пути в LoadLibrary.<br>
<br>
И ещё не забудь, что библиотека msimg32.dll может находиться в 2-х папках:<br>
c:&#092;Windows&#092;SysWOW64&#092;msimg32.dll<br>
c:&#092;Windows&#092;System32&#092;msimg32.dll<br>
<br>
в зависимости от разрядности твоего приложения.]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407134</guid>
        <pubDate>Wed, 29 Jan 2014 11:33:39 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407134</link>
        <description><![CDATA[Dem_max: Стандартная DLL хранится тут c:&#092;Windows&#092;System32&#092;msimg32.dll и при попытке ее подменить Windows сразу заблокирует это действие.<br><br>Подгружай эту DLL из системной папки динамически и вызывай динамически необходимые тебе функции их в этой DLL всего 5, в чем проблема то ??? В лени ???]]></description>
        <author>Dem_max</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407124</guid>
        <pubDate>Wed, 29 Jan 2014 11:20:19 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3407124</link>
        <description><![CDATA[ViH: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406127'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T00:41:46+00:00">28.01.14, 00:41</time></span><div class='quote '><br>
Решение в твоем случае - указать явно системную директорию, в которой лежит msimg32.dll:<br>
1) GetSystemDirectory(sysdir)<br>
2) SetDllDirectory(sysdir)<br>
<br>
или LoadLibrary(PathCombine(sysdir, &#39;msimg32.dll&#39;))<br>
</div></div><br>
<br>
Похоже, это то, что нужно. Но у меня msimg32.dll не загружается явно через LoadLibrary. <br>
<br>
Т.о. нужно через SetDllDirectory, но где этот код вставлять в MFC приложении (Dialog Based)? Получается, что dll подхватывается раньше. Вставляю в начало метода CMyApp:InitInstance() { ...  }, но это уже поздно.]]></description>
        <author>ViH</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406735</guid>
        <pubDate>Tue, 28 Jan 2014 18:03:15 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406735</link>
        <description><![CDATA[Qraizer: Просто оффтопят, <strong class='tag-b'>neokoder</strong>, не паникуй.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406698</guid>
        <pubDate>Tue, 28 Jan 2014 16:17:33 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406698</link>
        <description><![CDATA[neokoder: Какие, мля, обсуфукации :) хренофукации  :D  когда речь идёт о подмене DLL&#33; Вот чудак&#33;]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406693</guid>
        <pubDate>Tue, 28 Jan 2014 16:09:55 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406693</link>
        <description><![CDATA[reinterpret_alexey: <strong class='tag-b'>shm</strong><br>
<br>
Попробуй. У меня не получилось :) Прямой линк<br>
<a class='tag-url' href='http://download.tuxfamily.org/overclokblog/Obfuscation%20of%20steel%3a%20meet%20my%20Kryptonite/binaries/kryptonite-crackme.Win7.x64.7z' target='_blank'>http://download.tuxfamily.org/overclokblog...kme.Win7.x64.7z</a><br>
<br>
Там же висит статья о том, как, из чего и чем они её скомпилировали<br>
<a class='tag-url' href='http://0vercl0k.tuxfamily.org/bl0g/?p=260' target='_blank'>http://0vercl0k.tuxfamily.org/bl0g/?p=260</a>]]></description>
        <author>reinterpret_alexey</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406692</guid>
        <pubDate>Tue, 28 Jan 2014 16:06:11 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406692</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406682'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>UncleBob &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T15:45:55+00:00">28.01.14, 15:45</time></span><div class='quote '>а как это вяжется с разными версиями DLL для разных систем?</div></div><br>
Я об этом говорил выше почитай.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406683'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T15:46:10+00:00">28.01.14, 15:46</time></span><div class='quote '>Ты читаешь клинический бред) Какой ты хочешь получить ответ?) </div></div><br>
Слышь, придурок, больше не пиши на мой счет ничего ладно. Не зли, не хочу злиться :)  Ты глупый бестолковый рассуждатель, теоретик&#33;  :D]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406690</guid>
        <pubDate>Tue, 28 Jan 2014 16:03:08 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406690</link>
        <description><![CDATA[shm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406689'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T15:56:57+00:00">28.01.14, 15:56</time></span><div class='quote '>Ну посмотри демку</div></div><br>
Домой приду - посмотрю.]]></description>
        <author>shm</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406689</guid>
        <pubDate>Tue, 28 Jan 2014 15:56:57 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406689</link>
        <description><![CDATA[reinterpret_alexey: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Иии?</div></div><br>
<br>
Ну посмотри демку. Ты можешь покрыть весь код приложения таким обфускатором и сделать так, чтобы он работал только при правильном вводе серийника.<br>
Пока серийник не уплывет к отакуюсчим - не думаю, что кто-либо поломает такое. А к случае с уплыванием - надо раздавать именные лицензии как делает<br>
IDA&amp;HexRays)<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Иии? Ты думаешь это сильно усложнит отладку? </div></div><br>
<br>
Это сделает её практически невозможной. Даже автоматизированными средствами, т.к. не понятно, что именно искать. Символьные формулы<br>
тоже не составишь - ни один smt сольвер их не решит: слишком много кода, не понятно, какой код выполняется, а какой нет.<br>
Какой мусорный, а какой нет. В то и идеяя запутывания control-flow.]]></description>
        <author>reinterpret_alexey</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406686</guid>
        <pubDate>Tue, 28 Jan 2014 15:50:06 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406686</link>
        <description><![CDATA[shm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406683'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T15:46:10+00:00">28.01.14, 15:46</time></span><div class='quote '>Он замусоривает и запутывает код</div></div><br>
Иии? Ты думаешь это сильно усложнит отладку?]]></description>
        <author>shm</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406683</guid>
        <pubDate>Tue, 28 Jan 2014 15:46:10 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406683</link>
        <description><![CDATA[reinterpret_alexey: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Современные компиляторы с включенной оптимизацией и так являются хорошими обфускаторами.<br>
</div></div><br>
<br>
Не, тут о настоящих обфускаторах идет речь. Он замусоривает и запутывает код. И поток управления и поток данных.<br>
Необратимо. Obfuscator-LLVM это, так сказать, последняя академическая разработка.<br>
У них есть демка - kryptonite: <a class='tag-url' href='http://0vercl0k.tuxfamily.org/bl0g/?p=260' target='_blank'>http://0vercl0k.tuxfamily.org/bl0g/?p=260</a><br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>а как это вяжется с разными версиями DLL для разных систем? </div></div><br>
<br>
Ты читаешь клинический бред) Какой ты хочешь получить ответ?)]]></description>
        <author>reinterpret_alexey</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406682</guid>
        <pubDate>Tue, 28 Jan 2014 15:45:55 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406682</link>
        <description><![CDATA[UncleBob: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406586'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>neokoder &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T13:37:34+00:00">28.01.14, 13:37</time></span><div class='quote '>Если хеш будет в основной программе и она будет с цифровой подписью</div></div><br>
а как это вяжется с разными версиями DLL для разных систем?  :blink:]]></description>
        <author>UncleBob</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406680</guid>
        <pubDate>Tue, 28 Jan 2014 15:40:53 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406680</link>
        <description><![CDATA[shm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406678'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Filka &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T15:31:33+00:00">28.01.14, 15:31</time></span><div class='quote '>Распакуй</div></div><br>
<a class='tag-url' href='https://github.com/EVBExtractor/evb-extractor' target='_blank'>все уже давно распаковано</a> (не подойдет - в сети куча других) :whistle:]]></description>
        <author>shm</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406678</guid>
        <pubDate>Tue, 28 Jan 2014 15:31:33 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406678</link>
        <description><![CDATA[Filka: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406674'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>shm &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T15:23:41+00:00">28.01.14, 15:23</time></span><div class='quote '>Это вроде обычный упаковщик. :whistle: </div></div><br>
Распакуй :)]]></description>
        <author>Filka</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406674</guid>
        <pubDate>Tue, 28 Jan 2014 15:23:41 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406674</link>
        <description><![CDATA[shm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406659'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T14:48:03+00:00">28.01.14, 14:48</time></span><div class='quote '>А если юзать Obfuscator-LLVM ?</div></div><br>
Современные компиляторы с включенной оптимизацией и так являются хорошими обфускаторами. Но как видишь это никого не остановило. Есть куда более действенные методы защиты от отладки. Но все это лишь упирается во время взлома: 10 мин, день, неделя. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2014-01-28T15:30:54+00:00">28.01.14, 15:30</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406672'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Filka &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T15:22:30+00:00">28.01.14, 15:22</time></span><div class='quote '> потом понадобится Enigma Virtual Box</div></div><br>
Это вроде обычный упаковщик. :whistle:]]></description>
        <author>shm</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406672</guid>
        <pubDate>Tue, 28 Jan 2014 15:22:30 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406672</link>
        <description><![CDATA[Filka: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Попытаться удалять DLL? Сразу найдет неугодный вызов DeleteFile или что-нить аналогичного.</div></div><br>
Можно написать лаунчер для своей программы...<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Launcher</div><div class="body">На Delphi :) , но смысл, думаю, понятен:<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">program Launcher;</div><div class="code_line">&nbsp;</div><div class="code_line">uses</div><div class="code_line">&nbsp;&nbsp;Windows, SysUtils;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;procedure DetectAndRemoveDLL;</div><div class="code_line">&nbsp;&nbsp;var</div><div class="code_line">&nbsp;&nbsp; &nbsp;SR: TSearchRec;</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;if FindFirst(&#39;*.dll&#39;, faAnyFile - faDirectory, SR) = 0 then</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;repeat</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (SR.Attr and faReadOnly) &#60;&#62; 0 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FileSetAttr(SR.Name, SR.Attr and not faReadOnly);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;DeleteFile(SR.Name);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;until FindNext(SR) &#60;&#62; 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;FindClose(SR);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;procedure Exec(const S: string);</div><div class="code_line">&nbsp;&nbsp;const</div><div class="code_line">&nbsp;&nbsp; &nbsp;Flag = CREATE_DEFAULT_ERROR_MODE;</div><div class="code_line">&nbsp;&nbsp;var</div><div class="code_line">&nbsp;&nbsp; &nbsp;SI: TStartupInfo;</div><div class="code_line">&nbsp;&nbsp; &nbsp;PI: TProcessInformation;</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;FillChar(SI, SizeOf(TStartupInfo), 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp;SI.cb := SizeOf(TStartupInfo);</div><div class="code_line">&nbsp;&nbsp; &nbsp;CreateProcess(nil, PChar(S), nil, nil, False, Flag, nil, nil, SI, PI);</div><div class="code_line">&nbsp;&nbsp; &nbsp;CloseHandle(PI.hProcess);</div><div class="code_line">&nbsp;&nbsp; &nbsp;CloseHandle(PI.hThread);</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;DetectAndRemoveDLL;</div><div class="code_line">&nbsp;&nbsp;Exec(&#39;MainProg.exe&#39;);</div><div class="code_line">end.</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>Или что-то типа того...</div></div><br>
А потом понадобится <a class='tag-url' href='http://enigmaprotector.com/ru/aboutvb.html' target='_blank'>Enigma Virtual Box</a><div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><img class='tag-img' src='http://img.bigstream.ru/i/152757.png' alt='user posted image'></div></div><br>
Что усложнит взлом...]]></description>
        <author>Filka</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406659</guid>
        <pubDate>Tue, 28 Jan 2014 14:48:03 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406659</link>
        <description><![CDATA[reinterpret_alexey: <strong class='tag-b'>shm</strong><br>
<br>
А если юзать Obfuscator-LLVM ? <a class='tag-url' href='http://crypto.junod.info/2013/12/24/about-obfuscator-llvm-dual-use-tools-and-academic-ethics/' target='_blank'>http://crypto.junod.info/2013/12/24/about-...cademic-ethics/</a>]]></description>
        <author>reinterpret_alexey</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406639</guid>
        <pubDate>Tue, 28 Jan 2014 14:26:02 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406639</link>
        <description><![CDATA[shm: Имхо, идеальной защиты не сделать. Если есть необходимость, то можно периодически выискивать кряки и править код, чтобы они перестали работать наипростейшим образом. Заморачивается не стоит. Ну допустим заменим статическое взывание на динамическое, этот кулкацкер скачает новую версию, быстро посечет, что DLL подцепляется динамически (через отладчик) и элементарно заменит параметр в LoadLibrary на нужный себе. Правда будет уже распространять исполняемый файл + DLL. Попытаться удалять DLL? Сразу найдет неугодный вызов DeleteFile или что-нить аналогичного.]]></description>
        <author>shm</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406612</guid>
        <pubDate>Tue, 28 Jan 2014 14:05:01 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406612</link>
        <description><![CDATA[neokoder: Ну чего то автор топика пропал совсем. Молчит... А мы тут разболтались :)<br>
<strong class='tag-b'>ViH</strong>, ау ты где? :) Ну нашёл что-нибудь здесь для решения или хотя бы снижения градуса своей проблемы?]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406603</guid>
        <pubDate>Tue, 28 Jan 2014 13:54:31 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406603</link>
        <description><![CDATA[neokoder: Ты вообще хоть одно мало мальское <span class='tag-u'>практическое</span> решение автору топика подсказал? Кроме теоретической болтовни от тебя ничего не слышно :)<br>
<br>
Тут дело ширше обстоит, а не <em class='tag-i'>&quot;понимание DLL hijacking)&quot;</em><br>
Чисто практически, вот есть программа у клиента. Если у аттакера есть доступ к компьютеру локально и он более мене квалифицированный - НИЧЁ не спасёт&#33; Если не очень квалифициованный, то о чём я говорил поможет решить проблему.<br>
Вопрос в необходимости таких мер. Поскольку ни одно известное коммерческое приложение так не озадачивается точно, проблемы локальной безопасности целиком лежат на клиенте. Это невозможно универсально предусмотреть.<br>
<br>
И вот если такие меры необходимы, то что я предложил как раз <strong class='tag-b'>добавит дополнительных трудностей</strong>(а по-другому мыслить в данной теме нельзя, только это и можно сделать) потенциальному аттакеру, а дальше всё уже зависит от его квалификации.<br>
<br>
Ещё разок напомню:<br>
1)  Run-Time Dynamic Linking c msimg32.dll<br>
2)  Проверка хеша msimg32.dll забитого в подписанное цифровой подписью главное приложение.<br>
3)  Никаких своих DLL-ок, только статическая линковка]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406594</guid>
        <pubDate>Tue, 28 Jan 2014 13:44:28 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406594</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406589'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T13:38:18+00:00">28.01.14, 13:38</time></span><div class='quote '>В конкретно этом случае нужно просто заменить AlphaBlend на GdiAlphaBlend, а msimg32.lib заменится на gdi32.lib,<br>
соответственно, msimg32.dll заменится на gdi32.dll. А gdi32.dll уже есть в KnownDlls)</div></div><br>
И чё дальше то?  :)]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406589</guid>
        <pubDate>Tue, 28 Jan 2014 13:38:18 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406589</link>
        <description><![CDATA[reinterpret_alexey: <strong class='tag-b'>neokoder</strong><br>
<br>
И опять мимо  :lol:<br>
<br>
В конкретно этом случае нужно просто заменить AlphaBlend на GdiAlphaBlend, а msimg32.lib заменится на gdi32.lib,<br>
соответственно, msimg32.dll заменится на gdi32.dll. А gdi32.dll уже есть в KnownDlls)<br>
<br>
Поэтому я и говорю: решением проблемы должно стать понимание DLL hijacking)<br>
<br>
Ох, neokoder, помню я был таким же. Влезал в дискуссию только для того, чтобы показать какие-то знания. Даже если<br>
по теме сказать было нечего. Да я и до сих пор такой же остался, че тут) Поэтому я ну ооочень хорошо это в<br>
других замечаю :lol: Не будем же этого стыдицо)]]></description>
        <author>reinterpret_alexey</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406586</guid>
        <pubDate>Tue, 28 Jan 2014 13:37:34 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406586</link>
        <description><![CDATA[neokoder: Надо же, когда писал своё сообщение ещё твоего не видел :) Одновременно мы почти...<br>
<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406560'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T13:15:05+00:00">28.01.14, 13:15</time></span><div class='quote '>А хеш-суммы считать от системных DLL - это вообще бред: если у атакующего есть возможность перезаписать<br>
системную DLL, он может сделать и всё остальное.</div></div><br>
<br>
Что сделать? Если хеш будет в основной программе и она будет с цифровой подписью. Ну так не разбирая варианты подмены системных корневых сертификатов и прочее. Вариант простой, где аттакер это скажем такой обычный товарщ, который может смастерить подменную DLL-ку и объяснить куда файлик надо положить. <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406560'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T13:15:05+00:00">28.01.14, 13:15</time></span><div class='quote '><br>
Защит от чего? От порядка директорий, в которых ищется DLL? <br>
</div></div><br>
От подмены DLL приложения.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406560'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T13:15:05+00:00">28.01.14, 13:15</time></span><div class='quote '><br>
Если DLL твоя, то она должна лежать в папке с программой.<br>
</div></div><br>
Ну так кто спорит то. Вот от подмены своих DLL с помощью цифровых подписей или хешей и цифр. подп. и шла речь.<br>
<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406560'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T13:15:05+00:00">28.01.14, 13:15</time></span><div class='quote '><br>
Если DLL чужая - ты должен знать к ней путь. Если ты грузишь DLL по пути, по которому её нет и кто-то может положить -<br>
то это уязвимость, надо перестать так делать, а не &quot;защиты&quot; писать.<br>
</div></div><br>
Ну то что ты предложил <strong class='tag-b'>100%</strong> не будет работать для системных билиотек  :) Сам же пишешь если их подменить, то без раницы по какому пути они загружаются.]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406573</guid>
        <pubDate>Tue, 28 Jan 2014 13:26:37 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406573</link>
        <description><![CDATA[neokoder: <strong class='tag-b'>ViH</strong><br>
<br>
Т.к. <em class='tag-i'>msimg32.dll</em> системная библиотека но её нет в списке KnownDLLs (почему то&#33;) и поэтому она будет грузиться из папки где запущено ваше приложение, вам чисто для решения вашей проблемы:<br>
<br>
Ипользуйте Run-Time Dynamic Linking, там видимо используете одну из 3-х функций из этой библиотеки - AlphaBlend, TransparenrtBlt или GradientFill, так что мароки не особо много.<br>
Но если и в системном каталоге могут подменить DLL, то тут уже конечно могут всё что угодно и защититься сложно. Но один из вариантов я обозначил - забить хеш <em class='tag-i'>msimg32.dll</em> в свою программу и проверять его. Если у вас программа будет с цифровой подписью, то для аттакера это уже очень сложная проблема будет, при условии сохранности подписи конечно.<br>
<br>
И чтобы не было потенциальных проблем уже с вашими DLL - линкуйтесь статически, без DLL.]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406560</guid>
        <pubDate>Tue, 28 Jan 2014 13:15:05 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406560</link>
        <description><![CDATA[reinterpret_alexey: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Ты то видимо до загрузки системных библиотек собрался пути их поиска указывать? Гений&#33;</div></div><br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Именно в ту. Ты никакими стандартными способами не сможешь контролировать загрузку системных DLL.</div></div><br>
<br>
О господи. Какие ещё системные DLL, какие ещё цифровые подписи и хеш-суммы? msimg32.dll есть в любой винде,<br>
но она не перечислена в KnownDlls, поэтому системной её не назовешь. Контролировать её загрузку как раз<br>
можно, если положить DLL с таким именем в папку рядом с приложением, которое её загружает без указания пути. Это и есть<br>
DLL hijacking, это и есть то, о чем спрашивает <strong class='tag-b'>ViH</strong>. Нужно пути к DLL правильно указывать:<br>
C:&#092;windows&#092;system32&#092;msimg32.dll<br>
А хеш-суммы считать от системных DLL - это вообще бред: если у атакующего есть возможность перезаписать<br>
системную DLL, он может сделать и всё остальное.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Даже в этом случае тоже можно грохнуть чужие dll.<br>
Программа может создать .bat - файл и рестартовать<br>
с его помощью. Этот батник и зачистит папку от плохих модулей<br>
перед запуском.</div></div><br>
<br>
Гонка вооружений&#33; DLL, заинжектившись на первом этапе в программу перехватит функции<br>
записи в файл и при записи bat-файла добавит туда само-восстановление.<br>
Кстати, .bat-файл для перезаписи вовсе не нужен. Для этого нужно выполнить<br>
ping -n 1 -w 2000 1.2.3.4&amp;&amp;del /q /f program.exe<br>
(ping организует задержку 2000 мсек, за это время программа успевает сделать ExitProcess) <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2014-01-28T13:17:03+00:00">28.01.14, 13:17</time></span></span><br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>И вот от этого кроме статичной линковки или цифровых подписей программы и DLL-ок(ну или хешей DLL-ок забитых в программу с цифровой подписью) НЕТ других защит.<br>
Хотя, конечно, при желании всё можно сделать. Но от &quot;дурака&quot; :) защита будет работать точно. </div></div><br>
<br>
Защит от <strong class='tag-b'>чего</strong>? От порядка директорий, в которых ищется DLL? Если DLL твоя, то она <strong class='tag-b'>должна</strong> лежать в папке с программой.<br>
Если DLL <strong class='tag-b'>чужая</strong> - ты должен знать к ней <strong class='tag-b'>путь</strong>. Если ты грузишь DLL по пути, по которому её нет и кто-то может положить -<br>
то это уязвимость, надо перестать так делать, а не &quot;защиты&quot; писать.]]></description>
        <author>reinterpret_alexey</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406463</guid>
        <pubDate>Tue, 28 Jan 2014 11:20:48 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406463</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406460'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>UncleBob &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T11:19:35+00:00">28.01.14, 11:19</time></span><div class='quote '>У тебя один quote лишний </div></div><br>
Точно. Исправил  :) <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2014-01-28T11:37:47+00:00">28.01.14, 11:37</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406127'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T00:41:46+00:00">28.01.14, 00:41</time></span><div class='quote '>Несистемная же DLL, при неуказании пути к ней - ищется, да, сначала в папке с программой, а только потом в других дирах.</div></div><br>
И вот от этого кроме статичной линковки или цифровых подписей программы и DLL-ок(ну или хешей DLL-ок забитых в программу с цифровой подписью) НЕТ других защит.<br>
Хотя, конечно, при желании всё можно сделать. Но от &quot;дурака&quot; :) защита будет работать точно.]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406460</guid>
        <pubDate>Tue, 28 Jan 2014 11:19:35 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406460</link>
        <description><![CDATA[UncleBob: У тебя один [/quote] лишний]]></description>
        <author>UncleBob</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406453</guid>
        <pubDate>Tue, 28 Jan 2014 11:11:10 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406453</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406127'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T00:41:46+00:00">28.01.14, 00:41</time></span><div class='quote '><br>
Решение в твоем случае - указать явно системную директорию, в которой лежит msimg32.dll:<br>
1) GetSystemDirectory(sysdir)<br>
2) SetDllDirectory(sysdir)<br>
<br>
или LoadLibrary(PathCombine(sysdir, &#39;msimg32.dll&#39;))<br>
</div></div><br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406127'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T00:41:46+00:00">28.01.14, 00:41</time></span><div class='quote '><br>
Сначала загрузите вредоносную DLL, а потом проверьте путь. Это что-то из серии про &quot;- Как проверить, существует ли таблица MySQL? - Очень просто: if (DROP TABLE ... &#33;= 0) таблица существовала&quot;<br>
</div></div><br>
<br>
Сам написал и потом своё же зачеркнул :)<br>
Ты то видимо до загрузки системных библиотек собрался пути их поиска указывать? Гений&#33;  :lool: <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406127'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T00:41:46+00:00">28.01.14, 00:41</time></span><div class='quote '><br>
Чет вас не в ту степь понесло :D <br>
</div></div><br>
<br>
Именно в ту. Ты никакими стандартными способами не сможешь контролировать загрузку <span class='tag-u'>системных</span> DLL. Только сделать то что я сказал. Всё же лучше чем ничего, проверил - если что-то не так завершил программу. А если предполагать, что в подмененной DLL каким то образом во время загрузки можно &quot;отключить&quot;, предотвратить пост-проверку откуда чего загружено. Ну так от этого защита только - контроль за тем чтобы все системные библиотеки были в порядке. Другого в принципе ничего не придумаешь. И это уже не задача программера.<br>
<br>
А что касается своих библитек тут ещё всё проще - делать статику и все дела. Но если очень надо DLL, то подписывать их и подписывать свою программу и далее по тому же принципу что я говорил для системных библиотек. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2014-01-28T11:12:32+00:00">28.01.14, 11:12</time></span></span><br>
А где цитаты? :) Что за глюк?]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406371</guid>
        <pubDate>Tue, 28 Jan 2014 09:47:16 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406371</link>
        <description><![CDATA[cppasm: Какая гонка вооружений?<br>Автор даже не удосужился посмотреть что dll-ка подгружаемая делает.<br>Она в любом случае в памяти что-то патчит, а раз не запатчили сам файл значит он протом каким-то накрыт.<br>Короче говоря автор топика не особо представляет что из себя представляет защита и как её поломали, так что dll можно удалять сколько влезет, только будут другие решения типа инлайн патча и всё.]]></description>
        <author>cppasm</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406356</guid>
        <pubDate>Tue, 28 Jan 2014 09:33:52 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406356</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406297'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>UncleBob &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T08:32:20+00:00">28.01.14, 08:32</time></span><div class='quote '>Есть мнение, что в случае защиты от описанного хака любым приведенным выше способом, выйдет другой кряк  :whistle:</div></div><br>
Если втянулся в гонку вооружений - это надолго. Возможно, навсегда.<br>
Можно использовать её с целью роста собственного уровня знаний и интеллекта.]]></description>
        <author>ЫукпШ</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406342</guid>
        <pubDate>Tue, 28 Jan 2014 09:16:59 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406342</link>
        <description><![CDATA[Absolute_30h: 1.Написать самому вирус под видом кряка. <br>2. Вирус пускай спамит мыло ФСБ  угрозами о теракте.  <br>3. Разложить на каждом углу. <br>4. Дожидаться очной ставки с любителями халявного софта.]]></description>
        <author>Absolute_30h</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406297</guid>
        <pubDate>Tue, 28 Jan 2014 08:32:20 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406297</link>
        <description><![CDATA[UncleBob: Есть мнение, что в случае защиты от описанного хака любым приведенным выше способом, выйдет другой кряк  :whistle:]]></description>
        <author>UncleBob</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406252</guid>
        <pubDate>Tue, 28 Jan 2014 07:45:49 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406252</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3406127'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>reinterpret_alexey &#064; <time class="tag-quote__quoted-time" datetime="2014-01-28T00:41:46+00:00">28.01.14, 00:41</time></span><div class='quote '><div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>В самом начале своей программы проверяйте путь загруженных DLL через GetModuleHandle+GetModuleFileName. </div></div><br>
<br>
:D<br>
Сначала загрузите вредоносную DLL, а потом проверьте путь. Это что-то из серии про &quot;- Как проверить, <strong class='tag-b'>существует</strong> ли таблица MySQL? - Очень просто: if (DROP TABLE ... &#33;= 0) таблица <strong class='tag-b'>существовала</strong>&quot;</div></div><br>
Даже в этом случае тоже можно грохнуть чужие dll.<br>
Программа может создать .bat - файл и рестартовать<br>
с его помощью. Этот батник и зачистит папку от плохих модулей<br>
перед запуском.]]></description>
        <author>ЫукпШ</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406197</guid>
        <pubDate>Tue, 28 Jan 2014 06:37:38 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406197</link>
        <description><![CDATA[reinterpret_alexey: Эх, Бублик, Бублик.. Подвел черту, так сказать:)]]></description>
        <author>reinterpret_alexey</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406193</guid>
        <pubDate>Tue, 28 Jan 2014 06:28:53 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406193</link>
        <description><![CDATA[Бублик: А можно вместе с программой распространять файл: <strong class='tag-b'>хакер, пожалуйста, не взламывай мою программу</strong>&#33; Вот&#33;&#33;&#33;  :)   :offtop:]]></description>
        <author>Бублик</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406127</guid>
        <pubDate>Tue, 28 Jan 2014 00:41:46 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3406127</link>
        <description><![CDATA[reinterpret_alexey: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Насколько я знаю, .dll файлы сначала ищутся в папке программы (где исполняемый файл) – если такового нет, то в папке Windows... – это я и не предусмотрел.</div></div><br>
<br>
Это называется DLL Hijacking. Атака стара как мир.<br>
<a class='tag-url' href='http://stackoverflow.com/questions/3623490/what-is-dll-hijacking' target='_blank'>http://stackoverflow.com/questions/3623490...s-dll-hijacking</a><br>
<a class='tag-url' href='http://www.exploit-db.com/dll-hijacking-vulnerable-applications/' target='_blank'>http://www.exploit-db.com/dll-hijacking-vu...e-applications/</a><br>
<br>
Системные DLL вроде kernel32 описаны в секции KnownDlls (<a class='tag-url' href='http://blogs.msdn.com/b/larryosterman/archive/2004/07/19/187752.aspx' target='_blank'>http://blogs.msdn.com/b/larryosterman/arch.../19/187752.aspx</a>)<br>
и потому ищутся всегда сначала в системных директориях, а потом уже где-то ещё.<br>
Несистемная же DLL, при неуказании пути к ней - ищется, да, сначала в папке с программой, а только потом в других дирах.<br>
<br>
Ещё один яркий пример такого - sysprep.exe на win7, заморочка для обхода UAC.<br>
<br>
Ещё будет интересно узнать про две других атаки COM Planting и Binary Planting:<br>
<a class='tag-url' href='http://nobunkum.ru/analytics/en-com-hijacking' target='_blank'>http://nobunkum.ru/analytics/en-com-hijacking</a><br>
<br>
Решение в твоем случае - указать явно системную директорию, в которой лежит msimg32.dll:<br>
1) GetSystemDirectory(sysdir)<br>
2) SetDllDirectory(sysdir)<br>
<br>
или LoadLibrary(PathCombine(sysdir, &#39;msimg32.dll&#39;))<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Подскажите пожалуйста, как можно защититься от подобных подложек?</div></div><br>
<br>
Понять идею, способы защиты становятся очевидны.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>В самом начале своей программы проверяйте путь загруженных DLL через GetModuleHandle+GetModuleFileName. </div></div><br>
<br>
:D<br>
Сначала загрузите вредоносную DLL, а потом проверьте путь. Это что-то из серии про &quot;- Как проверить, <strong class='tag-b'>существует</strong> ли таблица MySQL? - Очень просто: if (DROP TABLE ... &#33;= 0) таблица <strong class='tag-b'>существовала</strong>&quot;<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Некоторые системные DLLки имеют цифровые подписи, можно их проверять дополнительно. Если очень важна безопасность а цифровых подписей нет на проверяемых DLL-ках, то можно выяснять хэши системных библиотек на системе где установлена ваша программа и проверять хеши. Здесь конечно надо мониторить обновления винды, но оно не так часто происходит для основных системных библиотек.</div></div><br>
<br>
Чет вас не в ту степь понесло :D]]></description>
        <author>reinterpret_alexey</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405457</guid>
        <pubDate>Sun, 26 Jan 2014 16:52:17 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405457</link>
        <description><![CDATA[Славян: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3405347'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Eric&#045;S &#064; <time class="tag-quote__quoted-time" datetime="2014-01-26T14:32:01+00:00">26.01.14, 14:32</time></span><div class='quote '>Какая же это freeware? Если там так или иначе просят деньги?</div></div>Откройте википедию и прочитайте:<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>вики</span><div class='quote '><strong class='tag-b'>freeware</strong> - ПО, лицензионное соглашение коего не требует каких-либо выплат правообладателю.</div></div>Танки он, <strong class='tag-b'>ViH</strong>, продаёт за деньги, но не требует, а говорит: &quot;хотите мощный танк - платите, нет - играйте обычным&quot;. Нет никаких требований. Все чётко, агу?]]></description>
        <author>Славян</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405347</guid>
        <pubDate>Sun, 26 Jan 2014 14:32:01 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405347</link>
        <description><![CDATA[Eric-S: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3405011'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Славян &#064; <time class="tag-quote__quoted-time" datetime="2014-01-25T17:16:17+00:00">25.01.14, 17:16</time></span><div class='quote '>вот выпустил он такую freeware-программу, а в ней - покупка &quot;танка&quot; идёт за деньги. Что, и к ней кряк не станут писать? Да ещё как напишут&#33; Будьте уверены.</div></div><br>
Какая же это freeware? Если там так или иначе просят деньги?<br>
<br>
Абсолютная защита от взлома бывает. Это сделать так, чтоб никому, даже в голову, не пришло взламывать код.<br>
Если тулза простая то freeware, без денег, вообще.<br>
Если тулза для эксклюзивного использования, только для себя и больше никому&#33;<br>
Если тулза плохая или имеет привосходящие бесплатные аналоги.<br>
Если исходный код открыт.<br>
<br>
А вообще, некоторые программы, взламывать уж очень хочется. В основном, если они кривые, а разработчик не желает исправлять. Или же если разработчик упёр чужую идею, забыв сказать спасибо.<br>
<br>
Но это всё психология.]]></description>
        <author>Eric-S</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405308</guid>
        <pubDate>Sun, 26 Jan 2014 12:38:28 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405308</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3404967'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ViH &#064; <time class="tag-quote__quoted-time" datetime="2014-01-25T15:23:29+00:00">25.01.14, 15:23</time></span><div class='quote '>Подскажите пожалуйста, как можно защититься от подобных подложек?</div></div><br>
<br>
В самом начале своей программы проверяйте путь загруженных DLL через GetModuleHandle+GetModuleFileName. <br>
Некоторые системные DLLки имеют цифровые подписи, можно их проверять дополнительно. Если очень важна безопасность а цифровых подписей нет на проверяемых DLL-ках, то можно выяснять хэши системных библиотек на системе где установлена ваша программа и проверять хеши. Здесь конечно надо мониторить обновления винды, но оно не так часто происходит для основных системных библиотек.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3405006'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Eric&#045;S &#064; <time class="tag-quote__quoted-time" datetime="2014-01-25T17:05:38+00:00">25.01.14, 17:05</time></span><div class='quote '>А может сделать проще, и для защиты не юзать чужих библиотек, а сделать например всё в своём коде? Хотя, верно, вы бирёте через неё, привязки к машине.</div></div><br>
Слинковаться статически с системными библиотеками не получится.]]></description>
        <author>neokoder</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405192</guid>
        <pubDate>Sun, 26 Jan 2014 06:32:49 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405192</link>
        <description><![CDATA[Filka: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Запихай эту DLL в ресурсы или в конец EXE, при запуске программы распаковывай эту DLL из ресурсов или из конца EXE, лучше хранить в EXE.</div></div><a class='tag-url' href='http://www.joachim-bauch.de/tutorials/loading-a-dll-from-memory/' target='_blank'>MemoryModule</a>?]]></description>
        <author>Filka</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405191</guid>
        <pubDate>Sun, 26 Jan 2014 06:28:29 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405191</link>
        <description><![CDATA[Dem_max: Запихай эту DLL в ресурсы или в конец EXE, при запуске программы распаковывай эту DLL из ресурсов или из конца EXE, лучше хранить в EXE.<br>Распаковывай куда нить в TEMP под непонятным именем, и загружай ее оттуда. Когда запихиваешь в ресурсы или EXE то кодируй ее.]]></description>
        <author>Dem_max</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405187</guid>
        <pubDate>Sun, 26 Jan 2014 05:17:52 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405187</link>
        <description><![CDATA[Filka: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3404967'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ViH &#064; <time class="tag-quote__quoted-time" datetime="2014-01-25T15:23:29+00:00">25.01.14, 15:23</time></span><div class='quote '>то сразу завершать работу программы с сообщением об ошибке</div></div>Вообще не надо ничего показывать...<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3404967'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ViH &#064; <time class="tag-quote__quoted-time" datetime="2014-01-25T15:23:29+00:00">25.01.14, 15:23</time></span><div class='quote '>Была идея проверять, есть ли в папке с программой есть какие-нибудь dll файлы, то сразу завершать работу программы с сообщением об ошибке.</div></div>А если удалять найденные dll?]]></description>
        <author>Filka</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405183</guid>
        <pubDate>Sun, 26 Jan 2014 03:17:38 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405183</link>
        <description><![CDATA[Бублик: <strong class='tag-b'>ViH</strong><br>
ВЗЛОМАТЬ МОЖНО ЛЮБУЮ ПРОГУ&#33;&#33;&#33;]]></description>
        <author>Бублик</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405011</guid>
        <pubDate>Sat, 25 Jan 2014 17:16:17 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405011</link>
        <description><![CDATA[Славян: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3404967'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ViH &#064; <time class="tag-quote__quoted-time" datetime="2014-01-25T15:23:29+00:00">25.01.14, 15:23</time></span><div class='quote '>Подскажите пожалуйста, как можно защититься от подобных подложек?</div></div>В общем случае - нельзя. Ваша программа всё равно использует KERNEL32.DLL или т.п. <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>Справка по MS VC пишет</span><div class='quote '><br>
<strong class='tag-b'> Примечание по безопасности </strong><br>
Если код запускается под управлением операционных систем Windows NT 4, Windows 2000 или Windows XP (предшествующих пакету обновления SP1), необходимо указывать полный путь для всех библиотек DLL. В этих операционных системах при загрузке файлов в первую очередь поиск идет в текущем каталоге. Если не указать полный путь к файлу, возможно загрузка другого файла.</div></div>Т.о. запустится из вашего каталога, если что. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2014-01-25T17:20:33+00:00">25.01.14, 17:20</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=386220&view=findpost&p=3405006'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Eric&#045;S &#064; <time class="tag-quote__quoted-time" datetime="2014-01-25T17:05:38+00:00">25.01.14, 17:05</time></span><div class='quote '>Или вот ещё, просто потрясный способ от взлома&#33; Не встречал ещё ни одного взломщика этой защиты. Выпустите прогу под свободной лицензией freeware или что-то вроде. Гарантирую, что крякеры даже и не подумают писать взломщика.</div></div>И что? - вот выпустил он такую freeware-программу, а в ней - покупка &quot;танка&quot; идёт за деньги. Что, и к ней кряк не станут писать? Да ещё как напишут&#33; Будьте уверены.]]></description>
        <author>Славян</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405006</guid>
        <pubDate>Sat, 25 Jan 2014 17:05:38 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3405006</link>
        <description><![CDATA[Eric-S: А может сделать проще, и для защиты не юзать чужих библиотек, а сделать например всё в своём коде? Хотя, верно, вы берёте через неё, привязки к машине.<br><br>Или вот ещё, просто потрясный способ от взлома&#33; Не встречал ещё ни одного взломщика этой защиты. Выпустите прогу под свободной лицензией freeware или что-то вроде. Гарантирую, что крякеры даже и не подумают писать взломщика. *типа шутка*]]></description>
        <author>Eric-S</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3404967</guid>
        <pubDate>Sat, 25 Jan 2014 15:23:29 +0000</pubDate>
        <title>Обнаружил взлом своей программы копированием файла msimg32.dll</title>
        <link>https://forum.sources.ru/index.php?showtopic=386220&amp;view=findpost&amp;p=3404967</link>
        <description><![CDATA[ViH: Недавно обнаружил, что к моей программе выпущен кряк. Работает он так - просто просят скопировать в папку с моей программой специальный файл msimg32.dll, который видимо специальным образом модифицирован.<br><br>Когда моя программа устанавливается, там в папке с исполняемым файлом вообще нет никаких dll. Моя программа, видимо, обычно берет этот файл из папки Windows. Насколько я знаю, .dll файлы сначала ищутся в папке программы (где исполняемый файл) – если такового нет, то в папке Windows... – это я и не предусмотрел.<br><br><br>Подскажите пожалуйста, как можно защититься от подобных подложек?<br><br>Была идея проверять, есть ли в папке с программой есть какие-нибудь dll файлы, то сразу завершать работу программы с сообщением об ошибке. Но может быть есть какие-нибудь другие варианты?<br><br><br>p.s. Программа написана на VC MFC.]]></description>
        <author>ViH</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      </channel>
      </rss>
	