x64dbg / titanengine Goto Github PK
View Code? Open in Web Editor NEWTitanEngine Community Edition. Debug engine used by x64dbg.
Home Page: https://x64dbg.com
License: GNU Lesser General Public License v3.0
TitanEngine Community Edition. Debug engine used by x64dbg.
Home Page: https://x64dbg.com
License: GNU Lesser General Public License v3.0
This is a bugfixed & enhanced version of TitanEngine v2.0.3 The following things have been fixed/added (list might be incomplete): - fixed memory breakpoints in general - fixed harware breakpoints in general - only report exceptions that are unhandled by the debugger - working on x64 (previously there was a structure alignment problem) - some code commenting - fixed DumpProcessExW (found/fix provided by Aguila) - added a callback on the system breakpoint - added memory breakpoints on execute - added QWORD hardware breakpoints - smaller and faster DLL loaders - supports multiple calling conventions (including the callbacks) - MinGW import libraries - fixed exception handling - Importer functions use Scyllas business logic now, much more accurate - updated distorm lib to v3, was v1 - countless code improvements NOTE: LUA, Python, MASM and Delphi might not work correctly Mainly because their headers havent been adjusted to these changes. However this is easy. Compare with C/C++ headers, fix it up and send us. If you are good with these kinda codes, please help review, do pull-requests, and criticize what you think can be be improved ! You can discuss with us here http://forum.tuts4you.com/forum/138-titanengine-community-edition/
I'd like to spend some time to improve the library loader in x64dbg, to call exports and such like olly allows. When i was browsing the source i noticed that the dll name is communicated by a 'weird' usage of file mappings between titan engine and the loader exe. It creates a file mapping in titan engine side
and writes dll name, then opens this mapping on the loader side . Why not just pass the arguments via command line?Additionally since i will be spending time on a new loader, are there any specific desires about how this should be implemented or features to be added?
When loading a new executable file for debugging, MapFileEx() is used to map it to memory after opening a handle to the file. The resulting handle is not closed afterwards and left open during further execution.
TitanEngine/TitanEngine/TitanEngine.Static.cpp
Lines 13 to 16 in 7976be4
This enables an anti-debugging technique where the process can attempt to open its own executable file for exclusive access, but will fail receiving an INVALID_HANDLE_VALUE instead of a valid handle.
My suggestion would be to close the handle before returning. But since I am not familiar with the code base, I decided to open an issue first.
It would be nice if x64dbg could be used in Windows on ARM machines natively. This can be approached in two phases:
that's my wrapper for TitanEngine in C#
https://github.com/AhmedZero/TitanEngine.NET
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.