mirror of
https://github.com/x64dbg/x64dbg.git
synced 2024-11-27 06:40:24 +00:00
DBG: added 'push' and 'pop' commands
This commit is contained in:
parent
b3e3a340ca
commit
2d670c14ea
25
help/pop.htm
Normal file
25
help/pop.htm
Normal file
@ -0,0 +1,25 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>pop</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>push<BR></STRONG>Pop a value from the stack.</P>
|
||||
<P class=rvps3>
|
||||
<U>arguments</U><BR>[arg1]: The destination.</P>
|
||||
<P class=rvps3 >
|
||||
|
||||
<U>result</U><BR>This command does not set any
|
||||
result variables.</P></body>
|
||||
</html>
|
26
help/push.htm
Normal file
26
help/push.htm
Normal file
@ -0,0 +1,26 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>push</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>push<BR></STRONG>Push a value on the stack.</P>
|
||||
<P class=rvps3>
|
||||
<U>arguments</U><BR> arg1: The value to push on the stack.
|
||||
</P>
|
||||
<P class=rvps3 >
|
||||
|
||||
<U>result</U><BR>This command does not set any
|
||||
result variables.</P></body>
|
||||
</html>
|
BIN
help/x64_dbg.wcp
BIN
help/x64_dbg.wcp
Binary file not shown.
@ -30,6 +30,7 @@
|
||||
#include "controlflowanalysis.h"
|
||||
#include "analysis_nukem.h"
|
||||
#include "exceptiondirectoryanalysis.h"
|
||||
#include "_scriptapi_stack.h"
|
||||
|
||||
static bool bRefinit = false;
|
||||
|
||||
@ -778,6 +779,40 @@ CMDRESULT cbInstrXor(int argc, char* argv[])
|
||||
return cmddirectexec(dbggetcommandlist(), newcmd);
|
||||
}
|
||||
|
||||
CMDRESULT cbInstrPush(int argc, char* argv[])
|
||||
{
|
||||
if(argc < 2)
|
||||
{
|
||||
dputs("not enough arguments!");
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
duint value;
|
||||
if(!valfromstring(argv[1], &value))
|
||||
{
|
||||
dprintf("invalid argument \"%s\"!\n", argv[1]);
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
Script::Stack::Push(value);
|
||||
uint csp = GetContextDataEx(hActiveThread, UE_CSP);
|
||||
GuiStackDumpAt(csp, csp);
|
||||
GuiUpdateRegisterView();
|
||||
return STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
CMDRESULT cbInstrPop(int argc, char* argv[])
|
||||
{
|
||||
duint value = Script::Stack::Pop();
|
||||
uint csp = GetContextDataEx(hActiveThread, UE_CSP);
|
||||
GuiStackDumpAt(csp, csp);
|
||||
GuiUpdateRegisterView();
|
||||
if(argc > 1)
|
||||
{
|
||||
if(!valtostring(argv[1], value, false))
|
||||
return STATUS_ERROR;
|
||||
}
|
||||
return STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
CMDRESULT cbInstrRefinit(int argc, char* argv[])
|
||||
{
|
||||
GuiReferenceInitialize("Script");
|
||||
|
@ -40,6 +40,8 @@ CMDRESULT cbInstrShr(int argc, char* argv[]);
|
||||
CMDRESULT cbInstrSub(int argc, char* argv[]);
|
||||
CMDRESULT cbInstrTest(int argc, char* argv[]);
|
||||
CMDRESULT cbInstrXor(int argc, char* argv[]);
|
||||
CMDRESULT cbInstrPush(int argc, char* argv[]);
|
||||
CMDRESULT cbInstrPop(int argc, char* argv[]);
|
||||
|
||||
CMDRESULT cbInstrRefinit(int argc, char* argv[]);
|
||||
CMDRESULT cbInstrRefadd(int argc, char* argv[]);
|
||||
|
@ -173,6 +173,8 @@ static void registercommands()
|
||||
dbgcmdnew("sub", cbInstrSub, false);
|
||||
dbgcmdnew("test", cbInstrTest, false);
|
||||
dbgcmdnew("xor", cbInstrXor, false);
|
||||
dbgcmdnew("push", cbInstrPush, true);
|
||||
dbgcmdnew("pop", cbInstrPop, true);
|
||||
|
||||
//script
|
||||
dbgcmdnew("scriptload", cbScriptLoad, false);
|
||||
|
Loading…
Reference in New Issue
Block a user