f
+ add SectionData class * translate the SectionHeader addresses using the VirtualRVA
add: [TypeConverter(typeof(ExpandableObjectConverter))]
+ set Start/End memory search range based on new QueryMemoryRegions() method
remove private modifer from: const byte BitsPerByte=8 (it is redundant to declare it private, because no access modifier is automatically marked private by default)
+ change addresses to ulong -- still need to update other code to handle this
+ optimize memory chunksize to 64MB
MB_SIZE -> MEM_CHUNK_SIZE - declare const uint at top of file beloew MEM_1MB
+ display message and progress when parsing result values on subsequent searches
increment address_index by STEP_SIZE when we skip addresses, before calling continue.
+ re-implement GetEnumerator so Foreach enumeration will work -- tied into our custom enumerator
+ custom enumerator support
SearchResultReader: enumerator - fix index out of range exceptions by decrementing the maximum index by 1
BitTools.ConvertByteArray: Will now throw NotSupported Exceptions for convertion to byte[] or sbyte[[ beacuse the data can be used without conversion. Attempting to convert byte[] -> byte[] -or- Attempting to convert byte[] -> sbyte[] will impact performance (beacuse of extra-unneccessary processing)
+ fix index increment for SearchResultReader enumerator
+ fix update speed of progress logging to amount of memory read
LogSearchOptions(): * when logging the datatype bit size, alos include the size of the type (1/2/4/8 bytes)
MemoryScanner: ReadMemory (mem.read() -> was not updating bitData)
+ remove duplicate: WriteHeader(guid) in .ctor
+ allow the delete of result files, when reading (if delete is true)
+ disable the ExportMode checkbox, when a search is active + enable the ExportMode checkbox, when a search is reset
+ disable the reset button while a search is active + only enable the reset button once the search operation has finished or was cancelled + or disable it if the search was reset
+ catch and log OutOfMemoryException when searching, and cancel the search
revert r471: pass process informatin by using the process's PID, instead of passing the process as a reference + pass the process instead
+ use ResultType<ulong> instead of ResultType<object> + use StructResultType<ulong> instead of StructResultType<object>
+ wip
+ pass process informatin by using the process's PID, instead of passing the process as a reference
+ do comparision operations when we first serialize results to file
+ memory optimization - WIP
attempt to reduce memory usage by: 1) opening the serialized results 2) seeking to the current result entry 3) read the data 4) close the data stream 5) return the result
+ fix search cancel/reset
+ update serialization reader/writer to include a search results guid
+ add support to usercontrol plugins to dock the controls on the form
+ fix issue with docks not displaying properly when they have not been setup
+ current wip for custom usercontrol plugins
+ fix search so that the result count(s) match
+ fix memory scanner and memory providers to read and write process memory simulataneously without crashing due to null process handle *** this has been done using ProcessMemoryChunk for all memory read/write operations ** we no longer need to open and close native handles to the process
only disable: #define LOGGING_ENABLE_PROFILER in MemoryScanner.cs
disable: #define LOGGING_ENABLE_PROFILER
revert r423 + do not close provider - keep it open for shared access
+ do not close provider - keep it open for shared access
+ remove custom ascii string text (this is handled directly by the hex control)
+ continued previous commit: remove old code that generated the old top toolbar
+ fix blank header line (remove old toolbar that served this function)
+ stop complaining about exception variables not being used: changed from 'throw;' to 'throw ex;' + comment-out currently unsued variables: FloatingMemorySearcher.cs: static int col_Found_Frozen = 3; static int col_Added_Frozen = 3; MemoryScanner.cs: SafeWaitHandle m_hProcess;
+ add serialization writer
+ add some unchecked statements
MemmoryProvider: using statements
+ major speed boost on first search
use binaryready again for range comparision
+ go back to using binaryreader to read values from buffered memory
testing values
ReadMemoryAtOnce(): don't attempt to buffer the data
+ time search operations and use Profiler logging
+ add PROFILER to logging flags
use Buffer.BlockCopy in ReadMemoryAtOnce
+ add support to show a generic icon for applications that have no icon
+ make sure we add process entries, even if they do not have an icon
+ correctly read linker timedatestamp // This field holds the number of seconds since December 31st, 1969, at 4:00 P.M.
use uint instead of int for memory addresses
+ handle keydown and scroll for ascii data
+ fix memory view flickering
Utilities.TransparentControls.FlickerFreeRichTextBox
+ add support to write ascii character when memory region cannot be read
write out ascii values for extened characters (unicode, etc)
+ highlight view controls
+ make default view: list
+ ensure progress message gets updated in real-time
Connection to Process Lost: (return the correct pid)
+redeclaration
+ fix ReadMemory() methods
+ add section byte data
+ add DataSectionFlags
+ only add an image section if it's raw data size is not zero
- revert back to last working revision
+ wip for data direcory tables
lstProcesList (begin and end upate)
+ set visibility for Refresh button to false (this is now done automatically)
+ fix dock style layout
more wip for: * launch and attach to process * auto referesh process
+ more wip for launch and attach to process
+ add init(bool silent)
+ add more logic for auto process refresh
+ add logic (when launching and attaching to process) to check if an item is already selected
+ add support to launch and attach to a process
add support for: * goto process's imagebase address * logging edit byte count and changed byte count when editing memory view bytes * and other enchancements
add check: if (peData != null) before calling OnPEDataUpdated
PEData add Is32bitAssembly()
+ add event for being able to subscribe to PEReader updates
GetDateTimeFromDosDateTime iYear = 1970 (not 1980)
+ add rest of properties to currently present structures for property grid support
+ more property grid implementation work
+ add support for displaying PE Struct data into property grid (read-only)
LogSearchOptions(): directly write to logger, don't use stringbuilder
+ make SetLogText thread safe
+ add support to list the currently opened windows and allow them to be selected (even if hidden)
remove DockPanel.config
+ add current DockPanel.config
+ turn off VERBOSE LOGGING in these classes again
+ fix auto scroll, so that it will only scroll when the log is updated and not on a timer + tidy up old (obsolete) code
+ add logic to set autoscroll checkbox on/off based on AutoScroll value
+ add a checkbox to turn on/off autoscroll
use: txtLog.text += value; rather than: txtLog.AppendText(value); which cause the log window to scroll past the end. NOW, it stays at the top
+ split config and process updates into seperate methods
remove: private void OnProcessChanged(ProcessChangedEventArgs e) { }
use Synchronized TextWriter
+ massive speed boost in logging
+ turn back on verbose logging in these classes for performance testing
+ add internal logging override (so it can be turned on/off for performance reasons)
+ bring back BackgroundWorker for LogWriter from r105 (this helps to not block the main form for long log entries)
- turn autoscroll off
+ setup logging format
fix format of IMAGE_NT_HEADERS
+ when args is a zero-length array (we don't need and format specifiers, change { and } to {{ }} respectively
+ IMAGE_NT_HEADERS->IMAGE_FILE_HEADER set FieldOffset to 8 to not overlapp Signature + add exception handling that will bubble up from the using statement
+ more wip
+ search wip
use SafeWaitHandle in when closing process handle
set provider null after close to free memory
+ determine maximum array size to read memory into byte[] array = 0x7fffffc7 (int.MaxValue-0x38)
+ trap OutOfMemoryException during search
+ import search code from PCSX2 Ram Dump (no need to re-invent the wheel...plus it cuts down on code refactoring time)
+ rename members involved in BrowseMemoryRegion Contract
+ add BrowseMemoryRegion event in MemorySearcher : calls back to main form which calls MemoryViewer.AcceptExternalMemoryAddress(address)
UpdateMaxRamView(): ensure we read the very last byte (we were subtracting 1 byte from the amount to read)
ReadProcessMemory(): make sure to set byte array capacity :: data = new byte[bytesToRead];
static int col_Found_Address = 1; static int col_Found_Value = 2; static int col_Found_Frozen = 3; static int col_Added_Address = 1; static int col_Added_Value = 2; static int col_Added_Frozen = 3;
set Search, Reset, and Cancel button states on click
+ overhaul logger and logging flags (to better handle turning flags off)
load_plugins(): update config and process for memoryview and memorysearch
+ move some logging calls to VERBOSE_DEBUG instead of DEBUG
+ fix stackoverflow exceptions in config and logger
+ make sure to upate the logger instance when closing and showing the logwindow
fix sharedassembly template
set internal access specifier on ProcessMemoryReader class (must use memory provider classes)
UIMemoryViewer: * re-enable GetFirstNonZeroByte() + make code changes that were not implemented (due to GetFirstNonZeroByte() being disabled)
remove code to use MemoryScanner from r204 (I think we fixed the error in the last commit)
ReadProcessMemory(): byte[] buffer = new byte[] { }; ==> byte[] buffer = new byte[bytesToRead]; (the lack of capacity was causing errors to be thrown)
+ add code to jump between MemoryScanner-r204 and the current version
+ add variant classes that use MemoryScanner from r204
remove dll reference to self
change address from uint to int
+ catch, log and throw errors
+ add exception logic to ensure provider is open
set AcceptedPlugin, before AcceptedProcess
+ implement GenericMemoryProvider
PCSX2ProcessID ==> ProcessID
+ implement GenericMemoryProvider : NOTE: config is null
+ implement GenericMemoryProvider : NOTE: config is null
+ change inteface implementation + implement GenericMemoryProvider
+ change inteface implementation
PCSX2ProcessID ==> ProcessID
change int in method to uint
+ add new interfaces for config
remvoe reference to: Sojaner.MemoryScanner
remove
+ overhaul memory scanner
+ commit search wip
+ add initial support for memory search
+ commit final wip for numeric datatype converter
+ commit wip for data type conversion: need to fix format exceptions
+ add validiation for octal: numbers between 0 and 7
+ add support for multi input box : octal is not setup
+ overhaul some number type controls (add missing file)
+ overhaul some number type controls
+ change form.text name
+ reset bottom control's font back to lucida console, 12pt
+ update txthexGoto's value when CURRENT_TOP_ADDR changes
+ fix layout
align UIMemoryViewer header
+ add missing ')' for release
ignore CS0436: importing conflicting types (AssemblyConfig)
+ add svn revision support into a static class to simplify versioning
reformat versioning template: AssemblyVersion: 1.year.day_of_year.hourminute AssemblyFileVersion: 1.year.day_of_year.hourminute-rSVNRev-tag-assemblyconfig
reformat
update version: 1.0.2 Features: * Ram Dump * Memory View
+ fix support for editing bytes in memory view
+ add support for memory view to accept a memory address externally
+ add/change more logic to fix keydown events
DumpMemoryToByteArray(): set byte_alignment to 1
+ add support to automatically goto the first address that has a non-zero byte
+ implement mouse wheel scrolling in memory viewer
+ get memoryview working
+ add logic to enable update
+ initial support for memoryview and getting ram from process for display
+ set name of memory view dialog
+ add some event code + add memeory view dialog (wip)
[assembly: AssemblyVersion("1.0.1.$WCREV$")] (increase build to 1) 1.0.1.* features: + Memory dump to file + Process selector can not be docked in window + other enhancments
set version back to: 1.0.0.$WCREV$
add back missing $WCREV$
fix appendage of -release in current-version.txt
+ add define to allow system processes to be included in process list
+ add success/failure messages for ram dump
+ fix memory dump when bytes to read is less than buffer amount
DumpMemory(): write out using 100mb blocks
+ add warn log support
+ add support to dump ram to file (even if it is ~2gb or more)
Force the use of the enum values for these types public struct IMAGE_FILE_HEADER { public MachineType Machine; public DllCharacteristicsType Characteristics; }
+ add support to parse an exe
add debug menu
+ write out the dump to file
+ add support for selecting process by different means
fix LogWriter to ensure that all logged data gets flushed to it's underlying medium
+ add support to save dock layout
+ implement bitwise_or and bitwise_and for multiple bitflag values
ensure we: * load the user's logging flags * if we have forced logging flags via logger.SetLoggingFlags(): then allow those settings to override
autoscroll_timer_Tick(): don't throw errors regarding caret position
+ correct getting name and value from loggingflags + don't autosize loggingflags config control
add support for implictly converting binary bit flags to enum-like values
int small_width = 32; (was 16) int large_width = 48; (was 32)
fix code to properly display icons in PIDSelector
move debug logging to verbosedebug
fix lineendings and autoscroll
+ add support to expand and collapse (back to original position) log window
fix another win32exception regaring 32bit process accessing 64 bit module (left out a line)
+ add windows api to get module filename so there won't be errors with 32bit processes being unable to access 64bit process modules
+ add logging options: * VERBOSE_DEBUG and VERBOSE_ERROR : for debug and error messages that are very 'chatty'
get logging flags directly from logger class
logger add a forced log class (which ignores logging flags)
removed these obsolete files
+ add support for loading and saving config plugins
+ add support to set plugins in user settings
+ implement plugin loading support
plugin wip
fix issues with logging control not being found
add stub for generic config
add folders for plugins
add abstract plugin classes (these are just stubs for now)
add dep projects
add assemblyBinding probe path plugins\
add plugins folder
target x86
modify user settings dialog
+ add support to save logging flags at user level
fix LOG_PATH so it does not prevent the main form designer from being opened and closing VS2010
target x86
target x86
don't write useless testing message in main_load()
+ add versioning support
+ add settings upgrade subscriber support (needs to be called in a static constructor for types that are always used)
target x86
info, debug, and error log messages
logging support should be done now logging includes: * log to main application * log to file
+ don't delete log file in contructor moved to method CreateNewLog()
+ add support to log startup message
fix newline logging support when writing to file
+ add support to write log to file (when a message is logged)
implement basic logging support
+ add main menu strop + add split contanier
rename: Form1.cs to Main.cs
update RomCheater.suo
update deps
initial build
update ignores
add 'Main' solution folder
initial commit
initial layout