mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
101 lines
4.9 KiB
HTML
101 lines
4.9 KiB
HTML
<html>
|
|
|
|
<head>
|
|
<title>Injection mode</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<meta name="generator" content="HelpNDoc Personal Edition 4.6.2.573">
|
|
<meta name="keywords" content="">
|
|
|
|
<link type="text/css" rel="stylesheet" media="all" href="css/reset.css" />
|
|
<link type="text/css" rel="stylesheet" media="all" href="css/base.css" />
|
|
<link type="text/css" rel="stylesheet" media="all" href="css/hnd.css" />
|
|
<!--[if lte IE 8]>
|
|
<link type="text/css" rel="stylesheet" media="all" href="css/ielte8.css" />
|
|
<![endif]-->
|
|
<style type="text/css">
|
|
#topic_header
|
|
{
|
|
background-color: #EFEFEF;
|
|
}
|
|
</style>
|
|
<script type="text/javascript" src="js/jquery.min.js"></script>
|
|
<script type="text/javascript" src="js/hnd.js"></script>
|
|
<script type="text/javascript">
|
|
$(document).ready(function()
|
|
{
|
|
if (top.frames.length == 0)
|
|
{
|
|
var sTopicUrl = top.location.href.substring(top.location.href.lastIndexOf("/") + 1, top.location.href.length);
|
|
top.location.href = "DxWnd.html?" + sTopicUrl;
|
|
}
|
|
else if (top && top.FrameTOC && top.FrameTOC.SelectTocItem)
|
|
{
|
|
top.FrameTOC.SelectTocItem("Injectionmode");
|
|
}
|
|
});
|
|
</script>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div id="topic_header">
|
|
<div id="topic_header_content">
|
|
<h1 id="topic_header_text">Injection mode</h1>
|
|
|
|
<div id="topic_breadcrumb">
|
|
<a href="Theconfigurationpanel.html">The configuration panel</a> ›› <a href="Hook1.html">Hook</a> ›› </div>
|
|
</div>
|
|
<div id="topic_header_nav">
|
|
<a href="Hook1.html"><img src="img/arrow_up.png" alt="Parent"/></a>
|
|
|
|
<a href="Hook1.html"><img src="img/arrow_left.png" alt="Previous"/></a>
|
|
|
|
<a href="Hookflags.html"><img src="img/arrow_right.png" alt="Next"/></a>
|
|
|
|
</div>
|
|
<div class="clear"></div>
|
|
</div>
|
|
<div id="topic_content">
|
|
|
|
<p></p>
|
|
<div class="rvps2"><table width="100%" border="1" cellpadding="1" cellspacing="2" style="border-color: #000000; border-style: solid; border-spacing: 2px;">
|
|
<tr valign="top">
|
|
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">SetWindowsHook</span></p>
|
|
</td>
|
|
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17"><br/></span></p>
|
|
</td>
|
|
<td width="1251" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">A SetWindowsHook callback handles the injection by intercepting the creation of the first program window. It is the default DxWnd hooking schema, allowing the program to run independently from the DxWnd interface. The drawback is that the window may only be created after some operation that needed to be fixed and DxWnd will be unable to completely intercept the program's execution, resulting in some odd behaviors from the program.</span></p>
|
|
</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Debugger mode</span></p>
|
|
</td>
|
|
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">STARTDEBUG</span></p>
|
|
</td>
|
|
<td width="1251" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">This basic hook technique intercepts the first window creation event. By this point, the program may have taken unwanted actions already, such as changing the video mode, detecting bad conditions, or crashing. Checking this flag injects DxWnd's logic right at the beginning of task execution, allowing DxWnd to intercept all events. The drawback is that this only works when the task is activated from the DxWnd interface (indicated by a yellow icon; see </span><a class="rvts16" href="TheInterface.html">The Interface</a><span class="rvts6">). Another drawback is that the injection process closely resembles the activation of a debugger, which some games will detect and intercept, shutting down the program.</span></p>
|
|
</td>
|
|
</tr>
|
|
<tr valign="top">
|
|
<td width="157" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">Inject suspended process</span></p>
|
|
</td>
|
|
<td width="129" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts17">INJECTSUSPENDED</span></p>
|
|
</td>
|
|
<td width="1251" style="border-color: #000000; border-style: solid; padding: 1px;"><p class="rvps2"><span class="rvts6">This hook technique is similar to the "Debugger mode" above, but does not involve debugging, allowing greater compatibility with some programs that might block that more complex method. This settings works well on Windows XP.</span></p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<p></p>
|
|
</div>
|
|
|
|
<div id="topic_footer">
|
|
|
|
<div id="topic_footer_content">
|
|
Copyright © 2016 by GHO. All Rights Reserved.</div>
|
|
</div>
|
|
</body>
|
|
|
|
</html>
|
|
|