<?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=200132&amp;view=findpost&amp;p=1832528</guid>
        <pubDate>Fri, 11 Jan 2008 18:44:35 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1832528</link>
        <description><![CDATA[AlexJ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=200132&view=findpost&p=1817886'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Zyaba &#064; <time class="tag-quote__quoted-time" datetime="2007-12-26T16:15:46+03:00">26.12.07, 13:15</time></span><div class='quote '>Вообще возможно использовать файл одновременно и как ехе и как длл? в смысле не в ущерб ни одному и ни другому.</div></div><br>
Без проблем. Если функция в экзешнике объявлена на экспорт, то можно загрузить экзешник по LoadLibrary и вызывать ее как обычную из ДЛЛ. Проблема только в том что такой фокус прокатит только в случае если в функции делается чистая математика без использования обращения к статическим данным(адресам). Хотя при желании можно решить и эту проблему, если в экспортируемой функции прописать код возвращающий адреса на внутренние данные(строки, константы...) а потом уже обращаться к этим данным, или наоборот скармливать функции адреса на данные из вызвавшего процесса. Нормальная ДЛЛ при загрузке автоматически инициализирует область данных, имеет свое собственное пространство для глобальных, статических переменных, в случае же с экспортируемой функцией из ехе этого нет, Вы получаете просто точку входа в исполняемый код который должен сам позаботится о адресации к не инициализируемым автоматически на загрузке данным.]]></description>
        <author>AlexJ</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1818980</guid>
        <pubDate>Thu, 27 Dec 2007 11:36:34 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1818980</link>
        <description><![CDATA[Zyaba: Всем спасибо, проблему решил релоком всех адресов в загруженном файле. В си++ 6 секция релоков к ехе добавляется по опции линкера /FIXED:NO]]></description>
        <author>Zyaba</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1818898</guid>
        <pubDate>Thu, 27 Dec 2007 10:42:36 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1818898</link>
        <description><![CDATA[dumbo: <strong class='tag-b'>Zyaba</strong>, <a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=212154' target='_blank'>LoadLibrary для exe</a>]]></description>
        <author>dumbo</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1818532</guid>
        <pubDate>Thu, 27 Dec 2007 05:21:08 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1818532</link>
        <description><![CDATA[ProgramMan: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>А как поведет себя файл с точки зрения нормального ехе при замене этого поля? Вообще возможно использовать файл одновременно и как ехе и как длл? в смысле не в ущерб ни одному и ни другому.</div></div><br>
Да можно, всё будет ок. (ntoskrnl.exe например)<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Столкнулся с похожей задачей, делаю ехе с релоками, подгружаю как длл, определяю нормально адрес функции, но в самой функции адреса не поправленные, без смещений, получаю ошибку при выполнении.</div></div><br>
Проверь верность релоков. Грузишь LoadLibrary?]]></description>
        <author>ProgramMan</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1817886</guid>
        <pubDate>Wed, 26 Dec 2007 13:15:46 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1817886</link>
        <description><![CDATA[Zyaba: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=200132&view=findpost&p=1798504'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Throne &#064; <time class="tag-quote__quoted-time" datetime="2007-12-11T00:21:48+00:00">11.12.07, 00:21</time></span><div class='quote '>Что бы ЕХЕ превратить в ДЛЛ - единственное, что надо сделать - заменить в<br>
FileHeader поле Characteristics на соответствуещее длл. И добавить релоки, но тут уже смотря что нужно будет делать и какой EXE-файл...</div></div><br>
А как поведет себя файл с точки зрения нормального ехе при замене этого поля? Вообще возможно использовать файл одновременно и как ехе и как длл? в смысле не в ущерб ни одному и ни другому.<br>
Столкнулся с похожей задачей, делаю ехе с релоками, подгружаю как длл, определяю нормально адрес функции, но в самой функции адреса не поправленные, без смещений, получаю ошибку при выполнении.]]></description>
        <author>Zyaba</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1798522</guid>
        <pubDate>Tue, 11 Dec 2007 04:33:50 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1798522</link>
        <description><![CDATA[ProgramMan: Throne, релоков то нет ) читай выше<br>
<br>
<em class='tag-i'><span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='8' style='font-size:8pt;'>Это сообщение отправлено Нотифером</span></span></em>]]></description>
        <author>ProgramMan</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1798504</guid>
        <pubDate>Tue, 11 Dec 2007 00:21:48 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1798504</link>
        <description><![CDATA[Throne: Что бы ЕХЕ превратить в ДЛЛ - единственное, что надо сделать - заменить в<br>FileHeader поле Characteristics на соответствуещее длл. И добавить релоки, но тут уже смотря что нужно будет делать и какой EXE-файл...]]></description>
        <author>Throne</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1796607</guid>
        <pubDate>Sun, 09 Dec 2007 12:11:18 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1796607</link>
        <description><![CDATA[l1l1l1: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=200132&view=findpost&p=1796502'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ProgramMan &#064; <time class="tag-quote__quoted-time" datetime="2007-12-09T10:35:52+00:00">09.12.07, 10:35</time></span><div class='quote '>Пишем простейший загрузчик PE файлов</div></div><br>
видимо это именно то, что мне нужно.<br>
постараюсь разобраться.<br>
большое спасибо&#33;]]></description>
        <author>l1l1l1</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1796502</guid>
        <pubDate>Sun, 09 Dec 2007 10:35:52 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1796502</link>
        <description><![CDATA[ProgramMan: Смотри например тут<br>
<a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=148144' target='_blank'>Пишем простейший загрузчик PE файлов</a><br>
<br>
<em class='tag-i'><span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='8' style='font-size:8pt;'>Это сообщение отправлено Нотифером</span></span></em>]]></description>
        <author>ProgramMan</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1795611</guid>
        <pubDate>Sat, 08 Dec 2007 01:41:40 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1795611</link>
        <description><![CDATA[l1l1l1: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=200132&view=findpost&p=1683030'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ProgramMan &#064; <time class="tag-quote__quoted-time" datetime="2007-09-01T09:18:17+00:00">01.09.07, 09:18</time></span><div class='quote '>... оставить место под тот ехе файл в своём адресном пространстве, догрузить его, заполная таблицу импорта, и выполнять любые функции из него:)</div></div><br>
нельзя ли чуть подробнее описать, как это все сделать?<br>
хотя бы какие функции ипользуются?<br>
<br>
заранее спасибо.<br>
l1l1l1]]></description>
        <author>l1l1l1</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1683030</guid>
        <pubDate>Sat, 01 Sep 2007 09:18:17 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1683030</link>
        <description><![CDATA[ProgramMan: RA9YTJ, возможно<br>можно ещё оставить место под тот ехе файл в своём адресном пространстве, догрузить его, заполная таблицу импорта, и выполнять любые функции из него:)]]></description>
        <author>ProgramMan</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1682808</guid>
        <pubDate>Fri, 31 Aug 2007 16:19:39 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1682808</link>
        <description><![CDATA[inviZ: Были бы были релоки, тогда было бы все неплохо, не надо было бы ничего и преобразовывать, работал бы как с DLL - загружаешь с помошью LoadLibrary, находишь адреса функций с помощью GetProcAddress. Этим двум функциям не важно, exe или dll является исполняемый модуль (разве что в случае exe не вызывается DllMain, т.к. его там нет). Ну или импорт бы использовал...<br><br>А т.к. их нет - в таком случае или выдирай код дизассемблером, или еще что-нибудь придумай. <br>Но только ИМХО извращение какое-то - забивание нопами и sleep. Куда проще просто заморозить основной поток. <br><br>А потом что-нибудь придумать несложно - можешь выделить область памяти в этом процессе с помощью VirtualAllocEx, внедрить туда свой код и необходимые структуры данных (если функция принимает какие-либо указатели на структуры данных) с помощью WriteProcessMemory. Создать замороженный поток с помощью CreateRemoteThread, использовать GetThreadContext, SetThreadContext и WriteProcessMemory для записи аргументов функции и адреса возврата (внедренный код) в стек потока и установки правильных значений регистров (при этом eip установить на начало вызываемой функции). Сделать поток активным. После того, как функция отработает, выполняется ret на твой внедренный код, который в свою очередь сохраняет возвращенные данные (например, значение регистра eax) и убивает поток. При этом в основной программе используется WaitForSingleObject для синхронизации. После этого ты считываешь данные, возвращенные функцией и сохраненные твоим кодом, из адресного пространства этого процесса с помощью ReadProcessMemory. Если необходимо, используешь VirtualFreeEx чтобы очистить память в другом процессе и т.п.<br>Ну или можно не внедрять код, а создать процесс с флагом DEBUG_PROCESS, записать в стек потока заведомо неверный адрес возврата, к примеру, нулевой, и отловить при возврате из функции исключение. Может быть, это и проще будет.<br>Возможностей хватает, в принципе, было бы желание...]]></description>
        <author>inviZ</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1681668</guid>
        <pubDate>Fri, 31 Aug 2007 01:07:15 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1681668</link>
        <description><![CDATA[RA9YTJ: Еще вопрос:<br>Если в этом ехе исполняемый цикл забить нопами и вписать например бесконечный цикл с sleep()с огромным числом. Запустить его, а другой программой находить в этом процессе  функции по адресу и запускать их. Так возможно?]]></description>
        <author>RA9YTJ</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1679632</guid>
        <pubDate>Wed, 29 Aug 2007 13:04:32 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1679632</link>
        <description><![CDATA[ProgramMan: RA9YTJ, прочитай пожалуйста для начала описание PE формата, и некоторые вопросы отпадут сами.<br>Дока вроде где то валялась на исходниках, или вот ссылка с васма <br>http://www.wasm.ru/docs/2/pe_docs.zip]]></description>
        <author>ProgramMan</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1677451</guid>
        <pubDate>Tue, 28 Aug 2007 01:46:32 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1677451</link>
        <description><![CDATA[RA9YTJ: Файл Example1.exe состоит из 4 секций:<br>.text addr 0401000 похоже сами коды функций и основной цикл<br>.rdata addr 0580000 там есть немного строк с сообщениями об ошибках и какие-то данные<br>.data addr 05b2000 тоже есть текст и какие-то данные много нулей<br>.rsrc adrr a0c0000 ресурсы (эконки)<br>какая из них является секцией реалоков?(а что это такое?)<br>ИДА диссамблирует только начальную малую часть и к концу часть, видимо из-за простого примера большая часть функций не вызываются.]]></description>
        <author>RA9YTJ</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1676556</guid>
        <pubDate>Mon, 27 Aug 2007 10:08:24 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1676556</link>
        <description><![CDATA[ProgramMan: <strong class='tag-b'>RA9YTJ</strong>,секция релоков есть?<br>
Прогони через ИДА например, выдили все функции, всего сокрее они будут находится в одном блоке, потом можешь попробовать собрать из них дллку]]></description>
        <author>ProgramMan</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1673713</guid>
        <pubDate>Fri, 24 Aug 2007 01:26:23 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1673713</link>
        <description><![CDATA[RA9YTJ: Вобщем так: есть несколько демо написанное на DarkGDK, многие из них имеют одинаковую длину, и внутреннее сходство, по описанию это GDK используется с MSVC и .NET. Вот и думаю, можно ли выудить из exe эту библиотеку, ведь exe выдает все команды на экспорт. Насколько  мне известно dll и exe не сильно отличаются. Пример как пишется:<br>
<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">#include &quot;DarkGDK.h&quot;</div><div class="code_line">void DarkGDK ( void )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;// set sync on and sync rate to 60 frames per second</div><div class="code_line">&nbsp;&nbsp; &nbsp;dbSyncOn &nbsp; ( );</div><div class="code_line">&nbsp;&nbsp; &nbsp;dbSyncRate ( 60 );</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;// make a cube</div><div class="code_line">&nbsp;&nbsp; &nbsp;dbMakeObjectCube ( 1, 10 );</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;// loop until the escape key is pressed</div><div class="code_line">&nbsp;&nbsp; &nbsp;while ( !dbEscapeKey ( ) )</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// update screen</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;dbSync ( );</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
все эти функции идут на экспорт( только без приставок db).<br>
Знаком с асмом а вот в структуре РЕ плохо разбираюсь.]]></description>
        <author>RA9YTJ</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1673410</guid>
        <pubDate>Thu, 23 Aug 2007 14:43:17 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1673410</link>
        <description><![CDATA[ProgramMan: А с какой целью?<br>если ехе на .нет то проблематично преобразовать его в длл, если обычный(не байткод), то необходимо чтобы у него были релоки]]></description>
        <author>ProgramMan</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1672363</guid>
        <pubDate>Thu, 23 Aug 2007 06:00:38 +0000</pubDate>
        <title>exe и dll отличие</title>
        <link>https://forum.sources.ru/index.php?showtopic=200132&amp;view=findpost&amp;p=1672363</link>
        <description><![CDATA[RA9YTJ: Имеется ехе, который (по данным программы PE Explorer) может экспортировать функции в формате: (пример) Undecorated C++ Function:<br>void __cdecl AlwaysActiveOn(void). Возможно ли превратить этот EXE в DLL? что нужно для этого и как блокировать выполнение его.<br>По моим догадкам эта программа содержит в себе библиотеку и написана скорее всего на .net]]></description>
        <author>RA9YTJ</author>
        <category>Assembler</category>
      </item>
	
      </channel>
      </rss>
	