<?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=423925&amp;view=findpost&amp;p=3853925</guid>
        <pubDate>Sat, 06 Nov 2021 01:24:22 +0000</pubDate>
        <title>Как передать управление зная только адрес в памяти?</title>
        <link>https://forum.sources.ru/index.php?showtopic=423925&amp;view=findpost&amp;p=3853925</link>
        <description><![CDATA[cutecode: Спасибо]]></description>
        <author>cutecode</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=423925&amp;view=findpost&amp;p=3853858</guid>
        <pubDate>Thu, 04 Nov 2021 17:40:55 +0000</pubDate>
        <title>Как передать управление зная только адрес в памяти?</title>
        <link>https://forum.sources.ru/index.php?showtopic=423925&amp;view=findpost&amp;p=3853858</link>
        <description><![CDATA[Qraizer: Это то же самое. Автор по-видимому пытается вызвать DllMain, я взял её реальный прототип из MSDN. Префикс WINAPI и имена typedef важны для предоставления компилятору соглашений о вызовах, кои у 32- и 64-бит слегка отличаются.]]></description>
        <author>Qraizer</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=423925&amp;view=findpost&amp;p=3853820</guid>
        <pubDate>Wed, 03 Nov 2021 15:24:03 +0000</pubDate>
        <title>Как передать управление зная только адрес в памяти?</title>
        <link>https://forum.sources.ru/index.php?showtopic=423925&amp;view=findpost&amp;p=3853820</link>
        <description><![CDATA[DrUnkard: Я делаю так, но это не под Windows. Может сгодидзе?  :D <br>
<br>
<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">typedef &nbsp;void(*pFunction)(void);</div><div class="code_line">pFunction JumpToApplication;</div><div class="code_line">unsigned int JumpAddress;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">main()</div><div class="code_line">{</div><div class="code_line">JumpAddress = *(unsigned int*)(ADDR_FUNCT); // Адрес куда прыгать</div><div class="code_line">JumpToApplication = (pFunction)JumpAddress;</div><div class="code_line">&nbsp;</div><div class="code_line">JumpToApplication(); // Ушли на адрес</div><div class="code_line">&nbsp;</div><div class="code_line">return 0;</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>DrUnkard</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=423925&amp;view=findpost&amp;p=3853817</guid>
        <pubDate>Wed, 03 Nov 2021 15:01:54 +0000</pubDate>
        <title>Как передать управление зная только адрес в памяти?</title>
        <link>https://forum.sources.ru/index.php?showtopic=423925&amp;view=findpost&amp;p=3853817</link>
        <description><![CDATA[Qraizer: <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">BOOL WINAPI (*rb)(HINSTANCE, DWORD, LPVOID) = PeHeader-&#62;OptionalHeader.AddressOfEntryPoint;</div><div class="code_line">rb(retadr, DLL_PROCESS_ATTACH, NULL);</div></ol></div></div></div></div>Не?]]></description>
        <author>Qraizer</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=423925&amp;view=findpost&amp;p=3853793</guid>
        <pubDate>Wed, 03 Nov 2021 10:04:37 +0000</pubDate>
        <title>Как передать управление зная только адрес в памяти?</title>
        <link>https://forum.sources.ru/index.php?showtopic=423925&amp;view=findpost&amp;p=3853793</link>
        <description><![CDATA[cutecode: есть пример на ассемлере загрузки dll из памяти<br>
<br>
часть кода<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">&nbsp;&nbsp; &nbsp;rb = PeHeader-&#62;OptionalHeader.AddressOfEntryPoint;</div><div class="code_line">&nbsp;&nbsp; &nbsp;__asm</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;mov eax, rb</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;add eax, retadr // EAX = ENTRY POINT</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;push 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;push DLL_PROCESS_ATTACH // ставим флаг что подгрузили DLL</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;push retadr</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;call eax // передадим управление на точку входа в DLL </div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div></ol></div></div></div></div><br>
<br>
Прекрасно работает в 32-битной версии, но 64-битной __asm запрещен.<br>
Можно как то извратиться, и минуя ассемблер, так же передать управление в точку входа?<br>
<br>
СПС]]></description>
        <author>cutecode</author>
        <category>C/C++: Системное программирование и WinAPI</category>
      </item>
	
      </channel>
      </rss>
	