Skip to content

Commit

Permalink
prep release 6.0.3
Browse files Browse the repository at this point in the history
  • Loading branch information
ncatlin committed Nov 20, 2021
1 parent bc40d7b commit 4375f73
Show file tree
Hide file tree
Showing 10 changed files with 84 additions and 70 deletions.
12 changes: 12 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# Changelog

## [0.6.3] - 2021-11-20

### Changed
- Reduced console output

### Fixed
- JIT/self modifying code is properly handled in 64 bit processes
- Fixed address in the visualiser disassembly preview
- Fixed loading saved traces with multiple instructions associated with the same address
- Long-running Detect-It-Easy scans no longer delay exit
- Handle exceptions in the outer trace processor loop

## [0.6.2] - 2021-11-17

### Added
Expand Down
4 changes: 2 additions & 2 deletions pinTool/pingat.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ a pin implementation of the drgat client
#include <iostream>
#include <string>

#define RGAT_VERSION "0.6.2"
#define RGAT_VERSION "0.6.3"

#ifdef WIN32
#include "moduleload_windows.h"
Expand Down Expand Up @@ -773,7 +773,6 @@ VOID InstrumentNewTrace(TRACE trace, VOID* v)
}
else if (!INS_IsBranch(lastins))
{
std::string disas = INS_Disassemble(lastins);
//writeEventPipe("!Non branch block end instruction 0x" PTR_prefix ": %s", INS_Address(lastins), disas.c_str());
if (INS_IsValidForIpointAfter(lastins))
{
Expand All @@ -782,6 +781,7 @@ VOID InstrumentNewTrace(TRACE trace, VOID* v)
}
else
{
std::string disas = INS_Disassemble(lastins);
std::cout << "NonBranch, non i point after: " << disas << std::endl;
std::cout << "nopstate: " << INS_IsNop(lastins) << std::endl;
std::cout << INS_IsControlFlow(lastins) << std::endl;
Expand Down
2 changes: 1 addition & 1 deletion rgatCore/Config/rgatConstants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public static class PROGRAMVERSION
/// <summary>
/// Patch version
/// </summary>
public const int PATCH = 2;
public const int PATCH = 3;
/// <summary>
/// Optional, non-unique name for the given version (preview, release, bugfix, etc)
/// Other values must still be unique (eg: '1.1.1 Preview' and '1.1.1 Release' cannot both exist)
Expand Down
2 changes: 1 addition & 1 deletion rgatCore/ProcessLaunching.cs
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ internal class ProcessLaunching

System.Diagnostics.Process? result = null;

string runargs = $" -follow_execv -t \"{pintool}\" -support_jit_api ";
string runargs = $" -inline -follow_execv -t \"{pintool}\" -support_jit_api ";
if (testID > -1)
{
runargs += $"-T {testID} ";
Expand Down
2 changes: 1 addition & 1 deletion rgatCore/ProcessRecord.cs
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ public ulong WaitForBlockAtAddress(ulong address)
{
return ulong.MaxValue;
}
Logging.WriteConsole($"Waiting for block at 0x{address:x}");
Logging.RecordLogEvent($"WaitForBlockAtAddress() Waiting for block at 0x{address:x}");
Thread.Sleep(15);

}
Expand Down
Binary file modified rgatCore/Resources/pinTool.dll
Binary file not shown.
Binary file modified rgatCore/Resources/pinTool64.dll
Binary file not shown.
1 change: 0 additions & 1 deletion rgatCore/TraceRecord.cs
Original file line number Diff line number Diff line change
Expand Up @@ -734,7 +734,6 @@ public eCodeInstrumentation FindContainingModule(ulong address, out int localmod
if (found)
{
localmodID = outID!.Value;
Logging.WriteConsole("FindContainingModule found!");
break;
}
}
Expand Down
129 changes: 66 additions & 63 deletions rgatCore/Widgets/FilePicker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,7 @@ public static FilePicker GetRemoteFilePicker(object o, string? searchFilter = nu
public static FilePicker GetFilePicker(object o, string startingPath, string? searchFilter = null, bool onlyAllowFolders = false, bool allowMulti = false)
{

if (!_filePickers.TryGetValue(o, out FilePicker? fp)
if (!_filePickers.TryGetValue(o, out FilePicker? fp)
|| (rgatState.NetworkBridge.ActiveNetworking is true && fp._remoteMirror is null)
|| (rgatState.NetworkBridge.ActiveNetworking is false && fp._remoteMirror is not null)
)
Expand Down Expand Up @@ -718,8 +718,8 @@ private bool InitCurrentDirInfo(JToken responseTok)
return false;
}

if (!response.TryGetValue("Parent", out JToken? parentTok) || (parentTok.Type is not JTokenType.String
&&
if (!response.TryGetValue("Parent", out JToken? parentTok) || (parentTok.Type is not JTokenType.String
&&
parentTok.Type is not JTokenType.Null))
{
return false;
Expand Down Expand Up @@ -755,6 +755,7 @@ private bool InitCurrentDirInfo(JToken responseTok)
{
_sortedDirs = null;
_sortedFiles = null;

Data.Contents.RefreshDirectoryContents(newDirContents.AllPaths(), newDirContents);
}
else
Expand Down Expand Up @@ -1386,82 +1387,84 @@ private void SortDisplayFiles(ImGuiTableColumnSortSpecsPtr sortSpecs)

private PickerResult DrawDirsFilesList()
{
if (_sortedDirs is null || _sortedFiles is null)
{
return PickerResult.eNoAction;
}

PickerResult result = PickerResult.eNoAction;
float longestFilename = 100;
foreach (var path_data in _sortedDirs)
lock (_lock)
{
ImGui.TableNextRow();
ImGui.TableNextColumn();
if (_sortedDirs is null || _sortedFiles is null)
{
return PickerResult.eNoAction;
}
float longestFilename = 100;
foreach (var path_data in _sortedDirs)
{
ImGui.TableNextRow();
ImGui.TableNextColumn();

FileMetadata md = path_data.Value;
string path = path_data.Key;
ImGui.PushStyleColor(ImGuiCol.Text, md.ListingColour());
bool selected = AllowMultiSelect && SelectedDirectories.Contains(path);
ImGui.Selectable($"{ImGuiController.FA_ICON_DIRECTORY} {path_data.Value.filename}/", selected, ImGuiSelectableFlags.SpanAllColumns);
FileMetadata md = path_data.Value;
string path = path_data.Key;
ImGui.PushStyleColor(ImGuiCol.Text, md.ListingColour());
bool selected = AllowMultiSelect && SelectedDirectories.Contains(path);
ImGui.Selectable($"{ImGuiController.FA_ICON_DIRECTORY} {path_data.Value.filename}/", selected, ImGuiSelectableFlags.SpanAllColumns);

if (AllowMultiSelect &&
(ImGui.IsItemClicked(ImGuiMouseButton.Right) ||
(ImGui.IsItemClicked(ImGuiMouseButton.Left) && ImGui.GetIO().KeyCtrl)))
{
if (selected)
if (AllowMultiSelect &&
(ImGui.IsItemClicked(ImGuiMouseButton.Right) ||
(ImGui.IsItemClicked(ImGuiMouseButton.Left) && ImGui.GetIO().KeyCtrl)))
{
this.SelectedDirectories.RemoveAll(x => x == path);
if (selected)
{
this.SelectedDirectories.RemoveAll(x => x == path);
}
else
{
this.SelectedDirectories.Add(path);
}
}
else
{
this.SelectedDirectories.Add(path);
if (ImGui.IsItemClicked(ImGuiMouseButton.Left))
{
SetActiveDirectory(path);
}
}
}
else
{
if (ImGui.IsItemClicked(ImGuiMouseButton.Left))
SmallWidgets.MouseoverText("Ctrl-left click or right click to select directories.");

if (path_data.Value.namewidth > longestFilename)
{
SetActiveDirectory(path);
longestFilename = path_data.Value.namewidth;
}
}
SmallWidgets.MouseoverText("Ctrl-left click or right click to select directories.");

if (path_data.Value.namewidth > longestFilename)
{
longestFilename = path_data.Value.namewidth;
}

ImGui.TableNextColumn();
if (ImGui.TableNextColumn())
{
//size
ImGui.Text(path_data.Value.size_str);
}
if (ImGui.TableNextColumn())
{
ImGui.Text("");
ImGui.TableNextColumn();
if (ImGui.TableNextColumn())
{
//size
ImGui.Text(path_data.Value.size_str);
}
if (ImGui.TableNextColumn())
{
ImGui.Text("");
}
ImGui.PopStyleColor();
}
ImGui.PopStyleColor();
}

foreach (var path_data in _sortedFiles)
{
FileMetadata filemd = path_data.Value;
if (EmitFileSelectableEntry(path: path_data.Key, filemeta: filemd))
{
this.SelectedFile = path_data.Key;
ImGui.CloseCurrentPopup();
result = PickerResult.eTrue;
}
if (path_data.Value.namewidth > longestFilename)
foreach (var path_data in _sortedFiles)
{
longestFilename = path_data.Value.namewidth;
}
FileMetadata filemd = path_data.Value;
if (EmitFileSelectableEntry(path: path_data.Key, filemeta: filemd))
{
this.SelectedFile = path_data.Key;
ImGui.CloseCurrentPopup();
result = PickerResult.eTrue;
}
if (path_data.Value.namewidth > longestFilename)
{
longestFilename = path_data.Value.namewidth;
}

if (ImGui.IsItemHovered() && ImGui.IsMouseDoubleClicked(0))
{
result = PickerResult.eTrue;
ImGui.CloseCurrentPopup();
if (ImGui.IsItemHovered() && ImGui.IsMouseDoubleClicked(0))
{
result = PickerResult.eTrue;
ImGui.CloseCurrentPopup();
}
}
}
return result;
Expand Down
2 changes: 1 addition & 1 deletion rgatCore/rgat.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<AssemblyName>rgat</AssemblyName>
<Version>0.6.2-preview</Version>
<Version>0.6.3-preview</Version>
<SignAssembly>false</SignAssembly>
<ApplicationIcon>tortico4_a7r_icon.ico</ApplicationIcon>
<Win32Resource />
Expand Down

0 comments on commit 4375f73

Please sign in to comment.