This repository has been archived by the owner on Oct 19, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
63 changed files
with
18,333 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
.hg/ | ||
*.dproj.local | ||
build/ | ||
|
||
# Uncomment these types if you want even more clean repository. But be careful. | ||
# It can make harm to an existing project source. Read explanations below. | ||
# | ||
# Resource files are binaries containing manifest, project icon and version info. | ||
# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. | ||
#*.res | ||
# | ||
# Type library file (binary). In old Delphi versions it should be stored. | ||
# Since Delphi 2009 it is produced from .ridl file and can safely be ignored. | ||
#*.tlb | ||
# | ||
# Diagram Portfolio file. Used by the diagram editor up to Delphi 7. | ||
# Uncomment this if you are not using diagrams or use newer Delphi version. | ||
*.ddp | ||
# | ||
# Visual LiveBindings file. Added in Delphi XE2. | ||
# Uncomment this if you are not using LiveBindings Designer. | ||
*.vlb | ||
# | ||
# Deployment Manager configuration file for your project. Added in Delphi XE2. | ||
# Uncomment this if it is not mobile development and you do not use remote debug feature. | ||
*.deployproj | ||
# | ||
# C++ object files produced when C/C++ Output file generation is configured. | ||
# Uncomment this if you are not using external objects (zlib library for example). | ||
*.obj | ||
# | ||
|
||
# Delphi compiler-generated binaries (safe to delete) | ||
*.exe | ||
*.dll | ||
*.bpl | ||
*.bpi | ||
*.dcp | ||
*.so | ||
*.apk | ||
*.drc | ||
*.map | ||
*.dres | ||
*.rsm | ||
*.tds | ||
*.dcu | ||
*.lib | ||
*.a | ||
*.o | ||
*.ocx | ||
|
||
# Delphi autogenerated files (duplicated info) | ||
*.cfg | ||
*.hpp | ||
*Resource.rc | ||
|
||
# Delphi local files (user-specific info) | ||
*.local | ||
*.identcache | ||
*.projdata | ||
*.tvsconfig | ||
*.dsk | ||
|
||
# Delphi history and backups | ||
__history/ | ||
__recovery/ | ||
*.~* | ||
|
||
# Castalia statistics file (since XE7 Castalia is distributed with Delphi) | ||
*.stat | ||
|
||
# Boss dependency manager vendor folder https://github.com/HashLoad/boss | ||
modules/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# XDK Assist: What is XDK Assist? | ||
|
||
XDK Assist is an application designed to allow you to easily communicate with an (original) Xbox in order to debug running applications. This was once the go-to application for creating trainers for modified Xbox systems. | ||
|
||
The original XDK Assist was originally closed source software. It was a product of me being on the original EvolutionX team and creating custom tools for our work. It eventually evolved into something more robust and I released it to the public as-is. A few updates were released, but the project never had an official homepage or source of truth for downloads. | ||
|
||
# Why release the code so late? | ||
|
||
I recently saw that some people are still using XDK Assist today even though it's been almost two decades since the original Xbox was released. Two decades ago I was a much different developer and wasn't so open to open sourcing my programs. Today, however, I'm all for it. I'm hoping release of this code might benefit the few folks out there who still use it. At a minimum it at least helps to preserve what I consider an important part of the Xbox homebrew scene. | ||
|
||
## Not so fast... | ||
|
||
There are, however, some caveats. I was also a much (much) more junior developer two decades ago and did not use proper source control systems. Shoot, two decades ago I wasn't much of a developer at all. In the codebase you'll find a lack of decent commenting, organization, naming, etc. You'll also find lines of functional code commented out with no explanation as to why. | ||
|
||
This release of the code is also compiled from multiple backups. I've attempted to pull in the latest changes from each backup, but it's entirely possible I've missed something or pulled out a vital component. | ||
|
||
Given the above items it's possible this application actually does not work. I have no way to test that this application still works as expected, since it requires an original Xbox a running debug bios. It will compile and run as expected, but there are things I simply cannot review. For example, `TBreakpoint` is commented out in `XBOXManager.pas` and is present in `Breakpoint.pas`. Was that a refactor in progress? Did I finish? Who knows. | ||
|
||
# Requirements | ||
|
||
* Delphi 2007 <https://www.embarcadero.com> | ||
* Indy 10.1.1 <https://www.indyproject.org> | ||
* TMPHexEditor (bundled: hexcontrol) | ||
* A modded original Xbox with a debug bios loaded (i.e. EvoX) | ||
|
||
I was able to get this to compile again under Delphi 2007 with Indy 10 that ships with Delphi 2007. It also requires installation of a TMPHexEditor component (bundled with) from Markus Stephany (<https://www.stephanys.de>). You can find a newer version of this component, but it is not tested. You may be able to get it to compile with different versions of Delphi or Indy, but those are untested as well. | ||
|
||
# Shoutouts | ||
|
||
It's a bit juvenile but I still want to shout out to several of the folks I spent a lot of time reversing and developing software with. Some good times! I'm missing several folks but it's hard to remember screennames after so long. | ||
|
||
acidflash | ||
dootdoo | ||
Hack0r | ||
kai`ckul | ||
khuong | ||
jokko | ||
Thatguy2001 | ||
Tsongkie | ||
xbox7887 | ||
[Death] | ||
[sheep] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
program XDKAssist; | ||
|
||
uses | ||
Forms, | ||
Dialogs, | ||
SysUtils, | ||
Main in 'src\Main.pas' {frmMain}, | ||
Breakpoint in 'src\Breakpoint.pas', | ||
LogStream in 'src\LogStream.pas', | ||
Tool in 'src\Tool.pas', | ||
Settings in 'src\Settings.pas', | ||
AppGlobal in 'src\AppGlobal.pas', | ||
XBOXManager in 'src\XBOXManager.pas'; | ||
|
||
{$R *.res} | ||
|
||
begin | ||
Application.Initialize; | ||
Application.Title := 'XDK Assist'; | ||
try | ||
Application.CreateForm(TfrmMain, frmMain); | ||
Application.Run; | ||
except | ||
on E: Exception do ShowMessage(E.Message); | ||
end; | ||
end. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||
<PropertyGroup> | ||
<ProjectGuid>{bafd21de-c786-409f-87d5-f9f2162c20e4}</ProjectGuid> | ||
<MainSource>XDKAssist.dpr</MainSource> | ||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | ||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | ||
<DCC_DCCCompiler>DCC32</DCC_DCCCompiler> | ||
<DCC_DependencyCheckOutputName>build\debug\bin\XDKAssist.exe</DCC_DependencyCheckOutputName> | ||
<DCC_EnabledPackages>true</DCC_EnabledPackages> | ||
<DCC_UsePackage>vcl;rtl;vclx;vclactnband;dbrtl;bdertl;dsnap;teeUI;teedb;tee;adortl;IndyCore;IndySystem;IndyProtocols;xmlrtl;inet;IntrawebDB_90_100;Intraweb_90_100;vclie;inetdbbde;inetdbxpress;soaprtl;VclSmp;MPHexEditor_D7;vcldb</DCC_UsePackage> | ||
</PropertyGroup> | ||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | ||
<Version>7.0</Version> | ||
<DCC_DebugInformation>False</DCC_DebugInformation> | ||
<DCC_LocalDebugSymbols>False</DCC_LocalDebugSymbols> | ||
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo> | ||
<DCC_UnitSearchPath>$(BDS)\Lib\Debug\Indy10;$(BDS)\lib\Debug</DCC_UnitSearchPath> | ||
<DCC_ResourcePath>$(BDS)\Lib\Debug\Indy10;$(BDS)\lib\Debug</DCC_ResourcePath> | ||
<DCC_ObjPath>$(BDS)\Lib\Debug\Indy10;$(BDS)\lib\Debug</DCC_ObjPath> | ||
<DCC_IncludePath>$(BDS)\Lib\Debug\Indy10;$(BDS)\lib\Debug</DCC_IncludePath> | ||
<DCC_Define>RELEASE</DCC_Define> | ||
<DCC_ExeOutput>build\release\bin</DCC_ExeOutput> | ||
<DCC_DcuOutput>build\release</DCC_DcuOutput> | ||
<DCC_ObjOutput>build\release</DCC_ObjOutput> | ||
<DCC_HppOutput>build\release</DCC_HppOutput> | ||
<DCC_BplOutput>build\release</DCC_BplOutput> | ||
</PropertyGroup> | ||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | ||
<Version>7.0</Version> | ||
<DCC_SymbolReferenceInfo>2</DCC_SymbolReferenceInfo> | ||
<DCC_UnitSearchPath>$(BDS)\Lib\Debug\Indy10;$(BDS)\lib\Debug</DCC_UnitSearchPath> | ||
<DCC_ResourcePath>$(BDS)\Lib\Debug\Indy10;$(BDS)\lib\Debug</DCC_ResourcePath> | ||
<DCC_ObjPath>$(BDS)\Lib\Debug\Indy10;$(BDS)\lib\Debug</DCC_ObjPath> | ||
<DCC_IncludePath>$(BDS)\Lib\Debug\Indy10;$(BDS)\lib\Debug</DCC_IncludePath> | ||
<DCC_Define>DEBUG</DCC_Define> | ||
<DCC_ExeOutput>build\debug\bin</DCC_ExeOutput> | ||
<DCC_DcuOutput>build\debug</DCC_DcuOutput> | ||
<DCC_ObjOutput>build\debug</DCC_ObjOutput> | ||
<DCC_HppOutput>build\debug</DCC_HppOutput> | ||
<DCC_BplOutput>build\debug</DCC_BplOutput> | ||
</PropertyGroup> | ||
<ProjectExtensions> | ||
<Borland.Personality>Delphi.Personality</Borland.Personality> | ||
<Borland.ProjectType /> | ||
<BorlandProject> | ||
<BorlandProject><Delphi.Personality><Parameters><Parameters Name="UseLauncher">False</Parameters><Parameters Name="LoadAllSymbols">True</Parameters><Parameters Name="LoadUnspecifiedSymbols">False</Parameters></Parameters><VersionInfo><VersionInfo Name="IncludeVerInfo">True</VersionInfo><VersionInfo Name="AutoIncBuild">False</VersionInfo><VersionInfo Name="MajorVer">0</VersionInfo><VersionInfo Name="MinorVer">0</VersionInfo><VersionInfo Name="Release">1</VersionInfo><VersionInfo Name="Build">7</VersionInfo><VersionInfo Name="Debug">False</VersionInfo><VersionInfo Name="PreRelease">False</VersionInfo><VersionInfo Name="Special">True</VersionInfo><VersionInfo Name="Private">False</VersionInfo><VersionInfo Name="DLL">False</VersionInfo><VersionInfo Name="Locale">1033</VersionInfo><VersionInfo Name="CodePage">1252</VersionInfo></VersionInfo><VersionInfoKeys><VersionInfoKeys Name="FileVersion">0.0.1.7</VersionInfoKeys><VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys><VersionInfoKeys Name="CompanyName">EvoX-T</VersionInfoKeys><VersionInfoKeys Name="FileDescription">Private EvoX-T training tool</VersionInfoKeys><VersionInfoKeys Name="InternalName"></VersionInfoKeys><VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys><VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys><VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys><VersionInfoKeys Name="ProductName">XDK Assist</VersionInfoKeys><VersionInfoKeys Name="SpecialBuild">Rushed public release</VersionInfoKeys></VersionInfoKeys><Excluded_Packages> | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<Excluded_Packages Name="$(BDS)\bin\dcloffice2k100.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> | ||
<Excluded_Packages Name="$(BDS)\bin\dclofficexp100.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> | ||
</Excluded_Packages><Source><Source Name="MainSource">XDKAssist.dpr</Source></Source></Delphi.Personality><ModelSupport>False</ModelSupport></BorlandProject></BorlandProject> | ||
</ProjectExtensions> | ||
<Import Project="$(MSBuildBinPath)\Borland.Delphi.Targets" /> | ||
<ItemGroup> | ||
<DelphiCompile Include="XDKAssist.dpr"> | ||
<MainSource>MainSource</MainSource> | ||
</DelphiCompile> | ||
<DCCReference Include="src\AppGlobal.pas" /> | ||
<DCCReference Include="src\Breakpoint.pas" /> | ||
<DCCReference Include="src\LogStream.pas" /> | ||
<DCCReference Include="src\Main.pas"> | ||
<Form>frmMain</Form> | ||
</DCCReference> | ||
<DCCReference Include="src\Settings.pas" /> | ||
<DCCReference Include="src\Tool.pas" /> | ||
<DCCReference Include="src\XBOXManager.pas" /> | ||
<None Include="XDKAssist.todo" /> | ||
</ItemGroup> | ||
</Project> |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
{TODO : Display percentage complete on progress bars} | ||
{TODO : For color logging have a rich it up function} | ||
{TODO : Fix disconnection tracking (linked with status checking?)} | ||
{TODO : Command queuing with response checking} | ||
{TODO -cLayout : Better status bar information (program status and what not)} | ||
{DONE -cLayout : Show and hide the main log. Have another log visible by a tabbed window} | ||
{TODO : Possible disassembly view?} | ||
{TODO : have a register compare option} | ||
{TODO : Keep complete breakpoint history with times and registers: list box that when you click it it changes the register information} | ||
{TODO : go through each function and make a list of what you don't like, then go back later and fix all the stuff} | ||
{TODO : Eat messages option will eat common messages like 200- ok and n: execution stopped} | ||
{TODO : Cut out 66% ram usage by reworking buffer stuff. Wait until other changes are in, so you can easily fix any speed issues} | ||
{TODO -cLayout : Redesign log area - show xbox logo faintly behind text, outline the input box, add coloring} | ||
{TODO : Solidify status changes and checking of status} | ||
{TODO : Internal tools editor} | ||
{TODO -cLayout : Redesign register window and breakpoint area} | ||
{TODO -cControls : THistoryBox - contains a 20 string list of previously entered text} | ||
{TODO -cControls : TMPHexEdit - rewrite to allow direct memory access to buffer - or - focus buffer elswhere} | ||
{TODO -cControls : THexBox - accepts only valid hexadecimal input. Features the ability to validate pastes, accept or rject different styles of notation ($,h,0x) and force capitals or zero fills} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# What's in this folder? | ||
|
||
This folder contains some documents I had that were related to XDK Assist. I've included them for posterity, but they aren't of much use practically speaking. | ||
|
||
What_Hack0r_Complains_About_&_Wants.txt - At some point I polled Hack0r for a list of things he'd like to see improved in XDK Assist. This is that list. There's actually an unreleased XDK Assist v2 that began to implement some of these requests. | ||
|
||
xdkassist.ini - The INI file that was bundled with a copy of XDK Assist I had. It demonstrates the configuration for the Tools system, ArtMoney offsets, etc. | ||
|
||
xdkassist.notes - Notes from an unknown game I was debugging at some point. | ||
|
||
xdkcmds.txt - Several XDK commands that can be issued over Telnet. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
What I have problems with: | ||
- Breaking freezes game and I can't continue (most likely my bios) | ||
- Poking (SETMEM) doesn't stick | ||
- After 35-40 dumps, xbox freezes, won't complete dump | ||
- Hex Memory View will go blank if I search for a wrong address or is out of range (have re-dump to see it again) | ||
|
||
What I'd like to see incorporated: | ||
- A search/filter program (kind of like Art Money or Tsearch)... includes different searching/filtering of floats/Integers by 1,2,3,4,6,8,10 bytes; | ||
Unknown values (increased (by), decreased (by), did not change) | ||
Basically, figure out Art Money, then integrate it into XDKA (easier said then done, I know :P but it makes working a lot easier) | ||
- Integrated Hex-Dec, Dec-Hex calculator (like Windows Calculator); Maybe include a base converter (32 bit, Intel) Basically Hexworkshop's base converter | ||
- Maybe a visible buffer range in the Dumping Tag, for example: PC hex ranges: 2000000h-4000000h | ||
- Customized dump button | ||
- Automatic break point copy to Notes | ||
- Change Xbox Logo | ||
- Instead of the black background, maybe include a Evox-T logo in the background (something subtle so it doesn't overpower the text) | ||
- Change logos next to "Dumping", "Notes"...etc to a more 3D look | ||
|
||
If your hardcore (if not void this), then here is my "asking for too much" category: | ||
- Incorporate a picture dumping tool (takes picture of current screen) | ||
- ASM file maker (I'm too lazy to make a new .txt and save it as .asm) | ||
- Timestamp/Title ID displayer (searches through XBE to find it) | ||
- Incorporate Caustic's XBE-EXE converter | ||
|
||
What I want to stay: | ||
- PC-Xbox Xbox-PC hex converter | ||
- GETMEM | ||
- The "HUD" of course (shows what's happening between PC and Xbox)(Connecting, dump...etc) | ||
- All the tabs | ||
- Dumping (obviously) | ||
|
||
|
||
What I never understood: | ||
- What the "Section Flags" does | ||
- Memory View (kind of pointless) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
[Connection] | ||
Host=192.168.1.153 | ||
Port=3000 | ||
|
||
[Dumping] | ||
AutoStop=1 | ||
AutoCopy=1 | ||
Highlight=1 | ||
|
||
[Breakpoints] | ||
Type=Read | ||
|
||
[Window] | ||
Width=657 | ||
Height=611 | ||
LastTab=0 | ||
State=0 | ||
|
||
[Tool0] | ||
Name=bconv32.exe | ||
Class= | ||
Caption=Base Converter | ||
Load=0 | ||
|
||
[Tool1] | ||
Name=C:\Windows\System32\calc.exe | ||
Class= | ||
Caption=Calculator | ||
Load=0 | ||
|
||
[Tool2] | ||
Name=E:\Tools\ArtMoney 7.0.8 Pro\artmoney.exe | ||
Class= | ||
Caption=ArtMoney | ||
Load=0 | ||
|
||
[Tool3] | ||
Name=E:\Tools\tsearch\tsearch.exe | ||
Class= | ||
Caption=TSearch | ||
Load=0 | ||
|
||
[Logging] | ||
Verbose=0 | ||
|
||
[Range] | ||
Enabled=0 | ||
Start=0x005F6920 | ||
End=0x005F6924 | ||
Caption=ArtMoney | ||
Class=TApplication | ||
State=0x00B3F500 | ||
|
||
[Misc] | ||
WarnConClose=1 | ||
[Layout] | ||
ShowMainLog=1 |
Oops, something went wrong.