<?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=171135&amp;view=findpost&amp;p=1446235</guid>
        <pubDate>Thu, 08 Feb 2007 13:56:45 +0000</pubDate>
        <title>Загрузка драйвера, без записи в реестр</title>
        <link>https://forum.sources.ru/index.php?showtopic=171135&amp;view=findpost&amp;p=1446235</link>
        <description><![CDATA[ProgramMan: <div class='tag-align-center'><span class='tag-size' data-value='13' style='font-size:13pt;'><span class="tag-color tag-color-named" data-value="blue" style="color: blue"><strong class='tag-b'><br>
Загрузка драйвера, без записи в реестр<br>
</strong></span></span></div> <br>
Как загрузить драйвер?<br>
Многие вспомнят функция для работы с сервисами: <br>
CreateService - создаёт в реестре ключ, с именем сервиса, путём к образу, параметрами загрузки<br>
StartServic - загружает сервис, по ИМЕНИ сервиса(имя образа не принемает)<br>
DeleteService - удаляет из реестра запись о сервисе<br>
Но иногда, бывает необходимо загрузить драйвер, без записси в реестр, тогда можно воспользоватся недокументированным флагом из функции ZwSetSystemInformation, правдо этот способ налогает определённые ограницения на использование драйвером памяти. <br>
<div class='tag-align-center'><span class='tag-size' data-value='11' style='font-size:11pt;'><span class="tag-color tag-color-named" data-value="green" style="color: green"><strong class='tag-b'><br>
Загрузчик<br>
</strong></span></span></div><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 &#39;win32ax.inc&#39;</div><div class="code_line">include &#39;Driver.mac&#39;</div><div class="code_line">SystemLoadImage = 38</div><div class="code_line">.data</div><div class="code_line">GregsImage:</div><div class="code_line">Name: UNICODE &nbsp; &#39;\??\C:\DriverTest.sys&#39;</div><div class="code_line">GregsImage_L =$-GregsImage</div><div class="code_line">.code</div><div class="code_line">start:</div><div class="code_line">invoke &nbsp;ZwSetSystemInformation, SystemLoadImage,GregsImage,8</div><div class="code_line">;ZwSetSystemInformation НОМЕР_ФУНКЦИИ, АДРЕС_ПАКЕТА_С_ДАННЫМИ, ДЛИНА_ПАКЕТА</div><div class="code_line">invoke &nbsp;ExitProcess,0</div><div class="code_line">.end start</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><div class='tag-align-center'><span class='tag-size' data-value='11' style='font-size:11pt;'><span class="tag-color tag-color-named" data-value="green" style="color: green"><strong class='tag-b'><br>
Код драйвера<br>
</strong></span></span></div><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">format PE DLL native 4.0 at 10000h</div><div class="code_line">entry main</div><div class="code_line">include &#39;%include%\win32a.inc&#39;</div><div class="code_line">include &#39;Driver.mac&#39;</div><div class="code_line">section &#39;.text&#39; code readable writeable executable notpageable</div><div class="code_line">MSGs &nbsp; db &#39;Driver load&#39;,0dh,0ah,0</div><div class="code_line">proc main,pDriverObject,pDriverPath</div><div class="code_line">push MSGs</div><div class="code_line">call [DbgPrint]</div><div class="code_line">add esp,4</div><div class="code_line">mov eax,STATUS_DEVICE_CONFIGURATION_ERROR</div><div class="code_line">ret</div><div class="code_line">endp</div><div class="code_line">&nbsp;</div><div class="code_line">;*******************************************IMPORT******************************</div><div class="code_line">section &#39;.idata&#39; import data readable writeable</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;;syslibrary ntoskrnl,&quot;ntoskrnl.exe&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;library ntoskrnl,&quot;ntoskrnl.exe&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;include &#39;ntoskrnl.inc&#39;</div><div class="code_line">mov eax,main</div><div class="code_line">section &#39;.reloc&#39; data fixups readable discardable</div></ol></div></div></div></div>]]></description>
        <author>ProgramMan</author>
        <category>Assembler FAQ</category>
      </item>
	
      </channel>
      </rss>
	