1
0
Fork 0

PROJECT: updated help

This commit is contained in:
Mr. eXoDia 2014-07-28 01:15:40 +02:00
parent b64245837d
commit acedd499c2
7 changed files with 586 additions and 480 deletions

View File

@ -123,5 +123,13 @@ precautions here, there <STRONG>will</STRONG> be a recursive call if you fail
to take countermeasures.<BR>struct
<STRONG>PLUG_CB_WINEVENT<BR></STRONG>{<BR>&nbsp;&nbsp;&nbsp; <STRONG>MSG*</STRONG>
message;<BR>&nbsp;&nbsp;&nbsp; <STRONG>long*</STRONG>
result;<BR>&nbsp;&nbsp;&nbsp; <STRONG>bool</STRONG>
retval;<BR>};</P></body>
result;<BR>&nbsp;&nbsp;&nbsp; <STRONG>bool</STRONG> retval; //only set this to true, never to
false<BR>};</P>
<P>//Called before TranslateMessage and DispatchMessage
Windows functions (PreTranslateMessage). Avoid calling user32 functions without
precautions here, there <STRONG>will</STRONG> be a
recursive call if you fail to take countermeasures. This function is global, so it also captures hotkeys
(see Qt documentation).<BR>struct
<STRONG>PLUG_CB_WINEVENTGLOBAL<BR></STRONG>{<BR>&nbsp;&nbsp;&nbsp; <STRONG>MSG*</STRONG>
message;<BR>&nbsp;&nbsp;&nbsp; <STRONG>bool</STRONG> retval; //only set this to true, never to
false<BR>};</P></body></HTML>

View File

@ -15,22 +15,26 @@ html,body {
</head>
<body>
<P><STRONG>The basics</STRONG><BR>This page covers the
basic principles of plugin development for x64_dbg.</P>
<P><STRONG>Exports</STRONG><BR>A plugin has at least one
export. This export must be called <U>pluginit</U>. See the PLUG_INITSTRUCT and
the plugin headers for
more information. The other valid exports are:</P>
<P><U>plugstop</U>: called when the plugin is about to be
unloaded. Remove all registered commands and
callbacks here. Also clean up plugin data.</P>
<P><U>plugsetup</U>: Called when the plugin initialization
was successful, here you
can register menus and other GUI-related things.</P>
<P><U>CB*</U>: Instead of calling _plugin_registercallback,
you can create a CDECL export which has the name of the callback. For example
when you create an export called "CBMENUENTRY", this will be registered as your
callback for the event CB_MENUENTRY. Notice that you should <STRONG>not</STRONG>
use an underscore in the export name.</P></body>
<body>
<P><STRONG>The basics</STRONG><BR>This page covers the
basic principles of plugin development for x64_dbg.</P>
<P><STRONG>Exports</STRONG><BR>A plugin has at least one
export. This export must be called <U>pluginit</U>. See the PLUG_INITSTRUCT and
the plugin headers for
more information. The other valid exports are:</P>
<P><U>plugstop</U>: called when the plugin is about to be
unloaded. Remove all registered commands and
callbacks here. Also clean up plugin data.</P>
<P><U>plugsetup</U>: Called when the plugin initialization
was successful, here you
can register menus and other GUI-related things.</P>
<P><U>CB*</U>: Instead of calling _plugin_registercallback,
you can create a CDECL export which has the name of the callback. For example
when you create an export called "CBMENUENTRY", this will be registered as your
callback for the event CB_MENUENTRY. Notice that you should <STRONG>not</STRONG>
use an underscore in the export name.</P>
<P><U>CBALLEVENTS</U>: An export with the name "CBALLEVENTS"
will get every event registered to it. This is done
prior to registering optional other export names.</P></BODY></HTML>

View File

@ -12,73 +12,75 @@ html,body {
}
</style>
</head>
</head>
<body>
<P><STRONG>_plugin_registercallback<BR></STRONG>This
function registers an event callback for a plugin. Every plugin can have it's
own callbacks for every event. It is not possible to have multiple callbacks on
the same event.</P>
<P><STRONG>void
_plugin_registercallback(</STRONG><BR><STRONG>int</STRONG>
pluginHandle, //plugin handle<BR><STRONG>CBTYPE</STRONG> cbType, //event
type<BR><STRONG>CBPLUGIN</STRONG> cbPlugin //callback
function<BR><STRONG>)</STRONG>;
</P>
<P><STRONG>Parameters</STRONG>
</P>
<P><U>pluginHandle</U>: Handle of the calling plugin.
</P>
<P><U>cbType</U>: The event type. This can be any of the
following values:<BR>&nbsp;&nbsp;&nbsp;
CB_INITDEBUG, //callbackInfo:
PLUG_CB_INITDEBUG*<BR>&nbsp;&nbsp;&nbsp; CB_STOPDEBUG, //callbackInfo:
PLUG_CB_STOPDEBUG*<BR>&nbsp;&nbsp;&nbsp; CB_CREATEPROCESS, //callbackInfo:
PLUG_CB_CREATEPROCESS*<BR>&nbsp;&nbsp;&nbsp; CB_EXITPROCESS, //callbackInfo:
PLUG_CB_EXITPROCESS*<BR>&nbsp;&nbsp;&nbsp; CB_CREATETHREAD, //callbackInfo:
PLUG_CB_CREATETHREAD*<BR>&nbsp;&nbsp;&nbsp;
CB_EXITTHREAD, //callbackInfo:
PLUG_CB_EXITTHREAD*<BR>&nbsp;&nbsp;&nbsp; CB_SYSTEMBREAKPOINT, //callbackInfo:
PLUG_CB_SYSTEMBREAKPOINT*<BR>&nbsp;&nbsp;&nbsp; CB_LOADDLL, //callbackInfo:
PLUG_CB_LOADDLL*<BR>&nbsp;&nbsp;&nbsp;
CB_UNLOADDLL, //callbackInfo:
PLUG_CB_UNLOADDLL*<BR>&nbsp;&nbsp;&nbsp; CB_OUTPUTDEBUGSTRING, //callbackInfo:
PLUG_CB_OUTPUTDEBUGSTRING*<BR>&nbsp;&nbsp;&nbsp;
CB_EXCEPTION, //callbackInfo:
PLUG_CB_EXCEPTION*<BR>&nbsp;&nbsp;&nbsp; CB_BREAKPOINT, //callbackInfo:
PLUG_CB_BREAKPOINT*<BR>&nbsp;&nbsp;&nbsp; CB_PAUSEDEBUG, //callbackInfo:
PLUG_CB_PAUSEDEBUG*<BR>&nbsp;&nbsp;&nbsp;
CB_RESUMEDEBUG, //callbackInfo:
PLUG_CB_RESUMEDEBUG*<BR>&nbsp;&nbsp;&nbsp; CB_STEPPED,
//callbackInfo: PLUG_CB_STEPPED* <BR>&nbsp;&nbsp;&nbsp; CB_ATTACH,
//callbackInfo: PLUG_CB_ATTACHED*<BR>&nbsp;&nbsp;&nbsp; CB_DETACH, //callbackInfo:
PLUG_CB_DETACHED*<BR>&nbsp;&nbsp;&nbsp; CB_DEBUGEVENT, //callbackInfo:
PLUG_CB_DEBUGEVENT*<BR>&nbsp;&nbsp;&nbsp; CB_MENUENTRY, //callbackInfo:
PLUG_CB_MENUENTRY*<BR>&nbsp;&nbsp;&nbsp; CB_WINEVENT //callbackInfo:
PLUG_CB_WINEVENT*
</P>
<P><U>cbPlugin</U>: Callback with the following
typdef:<BR>&nbsp;&nbsp;&nbsp; <STRONG>void
CBPLUGIN(</STRONG><BR>&nbsp;&nbsp;&nbsp; <STRONG>CBTYPE</STRONG> bType //event
type (useful when you use the same function for multiple
events<BR>&nbsp;&nbsp;&nbsp; <STRONG>void* </STRONG>callbackInfo //pointer to a
structure of information (see above)<BR>&nbsp;&nbsp;&nbsp;
<STRONG>);</STRONG>
</P>
<P><STRONG>Return Values</STRONG><BR>This function does not
return a value.
</P></head>
<body>
<P><STRONG>_plugin_registercallback<BR></STRONG>This
function registers an event callback for a plugin. Every plugin can have it's
own callbacks for every event. It is not possible to have multiple callbacks on
the same event.</P>
<P><STRONG>void
_plugin_registercallback(</STRONG><BR><STRONG>int</STRONG>
pluginHandle, //plugin handle<BR><STRONG>CBTYPE</STRONG> cbType, //event
type<BR><STRONG>CBPLUGIN</STRONG> cbPlugin //callback
function<BR><STRONG>)</STRONG>;
</P>
<P><STRONG>Parameters</STRONG>
</P>
<P><U>pluginHandle</U>: Handle of the calling plugin.
</P>
<P><U>cbType</U>: The event type. This can be any of the
following values:<BR>&nbsp;&nbsp;&nbsp;
CB_INITDEBUG, //callbackInfo:
PLUG_CB_INITDEBUG*<BR>&nbsp;&nbsp;&nbsp; CB_STOPDEBUG, //callbackInfo:
PLUG_CB_STOPDEBUG*<BR>&nbsp;&nbsp;&nbsp; CB_CREATEPROCESS, //callbackInfo:
PLUG_CB_CREATEPROCESS*<BR>&nbsp;&nbsp;&nbsp; CB_EXITPROCESS, //callbackInfo:
PLUG_CB_EXITPROCESS*<BR>&nbsp;&nbsp;&nbsp; CB_CREATETHREAD, //callbackInfo:
PLUG_CB_CREATETHREAD*<BR>&nbsp;&nbsp;&nbsp;
CB_EXITTHREAD, //callbackInfo:
PLUG_CB_EXITTHREAD*<BR>&nbsp;&nbsp;&nbsp; CB_SYSTEMBREAKPOINT, //callbackInfo:
PLUG_CB_SYSTEMBREAKPOINT*<BR>&nbsp;&nbsp;&nbsp; CB_LOADDLL, //callbackInfo:
PLUG_CB_LOADDLL*<BR>&nbsp;&nbsp;&nbsp;
CB_UNLOADDLL, //callbackInfo:
PLUG_CB_UNLOADDLL*<BR>&nbsp;&nbsp;&nbsp; CB_OUTPUTDEBUGSTRING, //callbackInfo:
PLUG_CB_OUTPUTDEBUGSTRING*<BR>&nbsp;&nbsp;&nbsp;
CB_EXCEPTION, //callbackInfo:
PLUG_CB_EXCEPTION*<BR>&nbsp;&nbsp;&nbsp; CB_BREAKPOINT, //callbackInfo:
PLUG_CB_BREAKPOINT*<BR>&nbsp;&nbsp;&nbsp; CB_PAUSEDEBUG, //callbackInfo:
PLUG_CB_PAUSEDEBUG*<BR>&nbsp;&nbsp;&nbsp;
CB_RESUMEDEBUG, //callbackInfo:
PLUG_CB_RESUMEDEBUG*<BR>&nbsp;&nbsp;&nbsp; CB_STEPPED,
//callbackInfo: PLUG_CB_STEPPED* <BR>&nbsp;&nbsp;&nbsp; CB_ATTACH,
//callbackInfo: PLUG_CB_ATTACHED*<BR>&nbsp;&nbsp;&nbsp; CB_DETACH, //callbackInfo:
PLUG_CB_DETACHED*<BR>&nbsp;&nbsp;&nbsp; CB_DEBUGEVENT, //callbackInfo:
PLUG_CB_DEBUGEVENT*<BR>&nbsp;&nbsp;&nbsp; CB_MENUENTRY, //callbackInfo:
PLUG_CB_MENUENTRY*<BR>&nbsp;&nbsp;&nbsp;
CB_WINEVENT //callbackInfo: PLUG_CB_WINEVENT* <BR>&nbsp;&nbsp;&nbsp; CB_WINEVENTGLOBAL //callbackInfo:
PLUG_CB_WINEVENTGLOBAL*
</P>
<P><U>cbPlugin</U>: Callback with the following
typdef:<BR>&nbsp;&nbsp;&nbsp; <STRONG>void
CBPLUGIN(</STRONG><BR>&nbsp;&nbsp;&nbsp; <STRONG>CBTYPE</STRONG> bType //event
type (useful when you use the same function for multiple
events<BR>&nbsp;&nbsp;&nbsp; <STRONG>void* </STRONG>callbackInfo //pointer to a
structure of information (see above)<BR>&nbsp;&nbsp;&nbsp;
<STRONG>);</STRONG>
</P>
<P><STRONG>Return Values</STRONG><BR>This function does not
return a value.
</P></BODY></HTML>

View File

@ -12,52 +12,53 @@ html,body {
}
</style>
</head>
</head>
<body>
<P><STRONG>_plugin_unregistercallback<BR></STRONG>This plugin unregisters a previously
set callback. It is only possible to remove callbacks that were previously set using
_plugin_registercallback.</P>
<P><STRONG>bool _plugin_unregistercallback(</STRONG> <BR><STRONG>int</STRONG> pluginHandle,
//plugin
handle<BR><STRONG>CBTYPE</STRONG> cbType //callback type to
remove<BR><STRONG>);</STRONG>
</P>
<P><STRONG>Parameters</STRONG>
</P>
<P><U>pluginHandle</U>: Handle of the
calling plugin.
</P>
<P><U>cbType</U>: The event type. This
can be any of the following values:<BR>
&nbsp;&nbsp;&nbsp; CB_INITDEBUG,
<BR> &nbsp;&nbsp;&nbsp;
CB_STOPDEBUG,<BR>
&nbsp;&nbsp;&nbsp; CB_CREATEPROCESS, <BR> &nbsp;&nbsp;&nbsp;
CB_EXITPROCESS,<BR>
&nbsp;&nbsp;&nbsp;
CB_CREATETHREAD,<BR>
&nbsp;&nbsp;&nbsp; CB_EXITTHREAD,<BR> &nbsp;&nbsp;&nbsp;
CB_SYSTEMBREAKPOINT,<BR>
&nbsp;&nbsp;&nbsp; CB_LOADDLL,<BR>
&nbsp;&nbsp;&nbsp; CB_UNLOADDLL,
<BR> &nbsp;&nbsp;&nbsp;
CB_OUTPUTDEBUGSTRING,<BR>
&nbsp;&nbsp;&nbsp; CB_EXCEPTION,
<BR> &nbsp;&nbsp;&nbsp;
CB_BREAKPOINT,<BR>
&nbsp;&nbsp;&nbsp; CB_PAUSEDEBUG,
<BR>
&nbsp;&nbsp;&nbsp; CB_RESUMEDEBUG,<BR>&nbsp;&nbsp;&nbsp; CB_STEPPED,<BR>&nbsp;&nbsp;&nbsp;
CB_ATTACH,<BR>&nbsp;&nbsp;&nbsp; CB_DETACH,<BR>&nbsp;&nbsp;&nbsp;
CB_DEBUGEVENT,<BR>&nbsp;&nbsp;&nbsp; CB_MENUENTRY,<BR> &nbsp;&nbsp;&nbsp;
CB_WINEVENT&nbsp;
</P>
<P><STRONG>Return Values<BR></STRONG>This function returns
true when the callback was removed without problems.
</P></head>
<body>
<P><STRONG>_plugin_unregistercallback<BR></STRONG>This plugin unregisters a previously
set callback. It is only possible to remove callbacks that were previously set using
_plugin_registercallback.</P>
<P><STRONG>bool _plugin_unregistercallback(</STRONG> <BR><STRONG>int</STRONG> pluginHandle,
//plugin
handle<BR><STRONG>CBTYPE</STRONG> cbType //callback type to
remove<BR><STRONG>);</STRONG>
</P>
<P><STRONG>Parameters</STRONG>
</P>
<P><U>pluginHandle</U>: Handle of the
calling plugin.
</P>
<P><U>cbType</U>: The event type. This
can be any of the following values:<BR>
&nbsp;&nbsp;&nbsp; CB_INITDEBUG,
<BR> &nbsp;&nbsp;&nbsp;
CB_STOPDEBUG,<BR>
&nbsp;&nbsp;&nbsp; CB_CREATEPROCESS, <BR> &nbsp;&nbsp;&nbsp;
CB_EXITPROCESS,<BR>
&nbsp;&nbsp;&nbsp;
CB_CREATETHREAD,<BR>
&nbsp;&nbsp;&nbsp; CB_EXITTHREAD,<BR> &nbsp;&nbsp;&nbsp;
CB_SYSTEMBREAKPOINT,<BR>
&nbsp;&nbsp;&nbsp; CB_LOADDLL,<BR>
&nbsp;&nbsp;&nbsp; CB_UNLOADDLL,
<BR> &nbsp;&nbsp;&nbsp;
CB_OUTPUTDEBUGSTRING,<BR>
&nbsp;&nbsp;&nbsp; CB_EXCEPTION,
<BR> &nbsp;&nbsp;&nbsp;
CB_BREAKPOINT,<BR>
&nbsp;&nbsp;&nbsp; CB_PAUSEDEBUG,
<BR>
&nbsp;&nbsp;&nbsp; CB_RESUMEDEBUG,<BR>&nbsp;&nbsp;&nbsp; CB_STEPPED,<BR>&nbsp;&nbsp;&nbsp;
CB_ATTACH,<BR>&nbsp;&nbsp;&nbsp; CB_DETACH,<BR>&nbsp;&nbsp;&nbsp;
CB_DEBUGEVENT,<BR>&nbsp;&nbsp;&nbsp; CB_MENUENTRY,<BR>&nbsp;&nbsp;&nbsp; CB_WINEVENT,<BR> &nbsp;&nbsp;&nbsp;
CB_WINEVENTGLOBAL&nbsp;
</P>
<P><STRONG>Return Values<BR></STRONG>This function returns
true when the callback was removed without problems.
</P></BODY></HTML>

38
help/sleep.htm Normal file
View File

@ -0,0 +1,38 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>sleep</title>
<meta name="GENERATOR" content="WinCHM">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
html,body {
/* Default Font */
font-family: Courier New;
font-size: 11pt;
}
</style>
</head>
<body>
<P><STRONG>sleep</STRONG><BR>Sleep for a specified number
of milliseconds.</P>
<P class=rvps3><SPAN class=rvts11><U>arguments</U> <BR></SPAN>
<SPAN
class=rvts9>
</SPAN>
<SPAN class=rvts9>
[arg1]: Number of milliseconds to sleep, 100
(decimal)&nbsp;milliseconds will be taken when nothing is specified <STRONG>Keep
in mind that default input is in HEX</STRONG>.
</SPAN></P>
<P class=rvps3>
<SPAN class=rvts11 >
<U >
result
<BR></U></SPAN>
<SPAN
class=rvts9>This command does not set any
result variables.</SPAN></P></body>

View File

@ -0,0 +1,33 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>switchthread/threadswitch</title>
<meta name="GENERATOR" content="WinCHM">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
html,body {
/* Default Font */
font-family: Courier New;
font-size: 11pt;
}
</style>
</head>
<body>
<P><STRONG>switchthread[,threadswitch]<BR></STRONG>Switch
the internal current thread to another thread (resulting in&nbsp;different
callstack + different registers displayed).</P>
<P class=rvps3><SPAN class=rvts11><U>arguments</U>&nbsp;<BR></SPAN><SPAN
class=rvts9>[arg1]:&nbsp;ThreadId to switch to (see the
Threads tab). When not specified, the main thread is used.&nbsp;</SPAN></P>
<P class=rvps3>
<SPAN class=rvts11>
<U>result
<BR ></U>
</SPAN>
<SPAN class=rvts9 >
This command does not set any result
variables.</SPAN>
</P></body>

File diff suppressed because it is too large Load Diff