Skip to content

Commit 803c353

Browse files
authored
Update README.md
1 parent 0641fdc commit 803c353

1 file changed

Lines changed: 13 additions & 77 deletions

File tree

README.md

Lines changed: 13 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ x64dbg has a basic scripting language, but without most control flow or ability
99

1010
The plugin adds three commands:
1111

12-
- chaiLoad <filename>: If given a filename as an argument, it evals the file. Without a filename specified, it opens a file dialog.
12+
- chaiLoad <filename>: If given a filename as an argument, it evals the file. Without a filename specified, it opens a file dialog. After the file is picked, any changes to that file reload the script.
1313
- chaiEval <statement>: Uses the chai engine to evaluate the given statement.
1414
- chaiShowEnv <regex>: Shows all the locals / functions currently defined. The regex is optional, and defaults to showing everything.
15-
16-
The same file can be loaded multiple times; and if there are top level statements then they will be ran. If there are globals set, they will be loaded into the current global scope.
15+
- chaiClearWorkspace: Clears the existing workspace. No longer watchs any loaded files, and the save state for the debugee is cleared.
16+
- chaiRegisterCommand: Registers a chai function as a top level command in the debugger, and possibly a function available for use in expressions if the functions arguments are all numeric.
1717

1818
Given a file:
1919

@@ -43,78 +43,14 @@ Many functions available for plugins to the debugger are exposed to chaiscript.
4343

4444
might be useful at the top of a thiscall invocation as it prints the first argument given, as well as the first 16 bytes of what ecx points to.
4545

46-
Available functions are:
47-
48-
- DbgMemWrite
49-
- DbgMemRead
50-
- DbgMemGetPageSize
51-
- DbgCmdExec
52-
- DbgCmdExecDirect
53-
- DbgIsValidExpression
54-
- DbgIsDebugging
55-
- DbgIsJumpGoingToExecute
56-
- DbgSetLabelAt
57-
- DbgClearLabelRange
58-
- DbgSetCommentAt
59-
- DbgClearCommentRange
60-
- DbgGetBookmarkAt
61-
- DbgSetBookmarkAt
62-
- DbgClearBookmarkRange
63-
- DbgGetBpxTypeAt
64-
- DbgValFromString
65-
- DbgGetRegDump
66-
- DbgValToString
67-
- DbgMemIsValidReadPtr
68-
- DbgGetFunctionTypeAt
69-
- DbgGetLoopTypeAt
70-
- DbgGetBranchDestination
71-
- DbgScriptLoad
72-
- DbgScriptUnload
73-
- DbgScriptRun
74-
- DbgScriptStep
75-
- DbgScriptBpToggle
76-
- DbgScriptBpGet
77-
- DbgScriptCmdExec
78-
- DbgScriptAbort
79-
- DbgScriptGetLineType
80-
- DbgScriptSetIp
81-
- DbgSymbolEnum
82-
- DbgAssembleAt
83-
- DbgModBaseFromName
84-
- DbgSettingsUpdated
85-
- DbgMenuEntryClicked
86-
- DbgFunctionOverlaps
87-
- DbgFunctionAdd
88-
- DbgFunctionDel
89-
- DbgArgumentOverlaps
90-
- DbgArgumentAdd
91-
- DbgArgumentDel
92-
- DbgLoopOverlaps
93-
- DbgLoopAdd
94-
- DbgLoopDel
95-
- DbgXrefAdd
96-
- DbgXrefDelAll
97-
- DbgGetXrefCountAt
98-
- DbgGetXrefTypeAt
99-
- DbgIsRunLocked
100-
- DbgIsBpDisabled
101-
- DbgSetAutoCommentAt
102-
- DbgClearAutoCommentRange
103-
- DbgSetAutoLabelAt
104-
- DbgClearAutoLabelRange
105-
- DbgSetAutoBookmarkAt
106-
- DbgClearAutoBookmarkRange
107-
- DbgSetAutoFunctionAt
108-
- DbgClearAutoFunctionRange
109-
- DbgWinEvent
110-
- DbgWinEventGlobal
111-
- DbgIsRunning
112-
- DbgGetTimeWastedCounter
113-
- DbgGetArgTypeAt
114-
- DbgReleaseEncodeTypeBuffer
115-
- DbgGetEncodeTypeAt
116-
- DbgGetEncodeSizeAt
117-
- DbgSetEncodeType
118-
- DbgDelEncodeTypeRange
119-
- DbgDelEncodeTypeSegment
46+
# Workspace
47+
48+
When you detach from a program, any files you had loaded are saved along with things like breakpoints. All commands specified with chaiRegisterCommand are also saved. When you re-attach, the plugin will load in those settings to return the chai engine to basically the same state as it was left in.
49+
50+
# Building
51+
52+
The easiest way to build is to check out the repo into the x64dbg directory; alongside the pluginsdk and release folder. You'll need to install QT 5.6 with QT creator. Open up the project folder in QT creator and the project should build. If you checked it out somewhere besides in the x64dbg directory; in QT creator go into build settings and add an entry in the CMake configuration called 'X64DBGFOLDER', setting it to the x64dbg path.
53+
54+
If you are interested in running it against a source-built version of x64dbg, point that setting at the root directory for the x64dbg repo and be sure to run 'release.bat' at least once. This sets up the correct directory structure for the necessary headers.
12055

56+
Either way, your build configuration (Debug vs Release vs Profile) MUST match your build configuration for x64dbg. If you are using a released version of x64dbg, that is Release. If you need debug for some reason, you'll need to build x64dbg from source.

0 commit comments

Comments
 (0)