fix: line endings

This commit is contained in:
Claude
2026-08-13 12:53:31 -04:00
parent 2250c79062
commit 27ef095290
279 changed files with 148 additions and 373 deletions
+1 -1
View File
@@ -857,4 +857,4 @@
}
}
}
}
}
+1 -1
View File
@@ -19,4 +19,4 @@
"description": "Fast quality guardrails including ruff, pyright, biome, and clippy."
}
]
}
}
+1 -1
View File
@@ -860,4 +860,4 @@
}
}
}
}
}
+1 -1
View File
@@ -857,4 +857,4 @@
}
}
}
}
}
@@ -404,4 +404,4 @@
"note": "Read the first byte of every function in the IAT; if it's 0xE9 (JMP rel32) or 0x68 0x?? 0x?? 0x?? 0x?? (PUSH imm32), the function has been hooked."
}
]
}
}
+1 -1
View File
@@ -4962,4 +4962,4 @@
]
}
]
}
}
-2
View File
@@ -1371,5 +1371,3 @@ rule anti_tamper_vendors_denuvo_eac_joint {
($sm0 and $sm2) and
($sm1 or $sm3)
}
+1 -1
View File
@@ -77,4 +77,4 @@
"skills_count": 64,
"skills_directory": "skills",
"documentation": "docs/library"
}
}
+1 -1
View File
@@ -14,4 +14,4 @@
}
}
}
}
}
@@ -132,4 +132,3 @@ ENTRYPOINT ["/app/entrypoint.sh"]
# Default command (can be overridden)
CMD ["--port", "8089"]
@@ -407,4 +407,3 @@ Please review the RFC and comment especially on:
- Whether the first milestone should support batch search.
- Which parts of this milestone you would be willing to sponsor or help test.
```
@@ -468,4 +468,3 @@ Please review the RFC and comment especially on:
- What scripted scenarios would help your workflows.
- Which parts of this milestone you would be willing to sponsor or help test.
```
@@ -446,4 +446,3 @@ Please review the RFC and comment especially on:
- What quality gates should control auto-apply.
- Which parts of this milestone you would be willing to sponsor or help test.
```
@@ -161,4 +161,3 @@ Sponsor link: https://github.com/sponsors/bethington
- Keep small bugs and straightforward enhancements in normal issues.
- Add an RFC before implementation when a milestone affects architecture, user workflows, or long-term maintenance.
- Update statuses when an RFC moves from draft to accepted, in progress, shipped, or deferred.
@@ -333,4 +333,3 @@ Please review the RFC and comment especially on:
- Add platform-specific process tests.
- Add docs and examples.
- Consider optional one-time retry for read-only tools.
@@ -258,4 +258,4 @@ Only declare the migration complete when all of the following are true:
- [ ] `tools.setup build`, `clean`, `run-tests`, `verify-version`, `preflight`, `deploy`, and `start-ghidra` all run without Maven.
- [ ] CI runs without Maven.
- [ ] Current docs describe Gradle as canonical.
- [ ] Maven is no longer required for any day-to-day developer workflow.
- [ ] Maven is no longer required for any day-to-day developer workflow.
@@ -308,4 +308,3 @@ Please review the RFC and comment especially on:
- Whether headless writes should require additional runtime guards.
- Which parts of this milestone you would be willing to sponsor or help test.
```
@@ -384,4 +384,3 @@ Please review the RFC and comment especially on:
- What classloader/dependency risks you see in GUI mode.
- Which parts of this milestone you would be willing to sponsor or help test.
```
@@ -433,4 +433,3 @@ AFTER:
**Quality**: Production-Ready
🎉 **PROJECT CLEANUP SUCCESSFULLY COMPLETED!** 🎉
@@ -1 +1 @@
Systematically analyze both .data (mutable globals) and .rdata (read-only constants) sections by segmenting data between external references (xrefs), treating each contiguous region as a logical unit, then for each segment record the address range and size, inspect memory content to identify data types (pointers, strings, primitives, arrays, sentinel markers), analyze all xrefs to understand usage patterns and purpose (lookup tables, configuration structures, constant values, string literals), determine if the segment is a single structure or array based on how code accesses it, rename each segment using Hungarian notation with g_ prefix for mutable globals in .data and k_ prefix for read-only constants in .rdata with appropriate type prefixes (dw=dword, w=word, b=byte, p=pointer, psz=string pointer, a=array) and descriptive names based on actual usage (e.g., g_dwPlayerHealthMax, k_dwMaxInventorySlots, g_aMonsterStats, k_pszWelcomeMessage), prioritize segments by reference count, create appropriate structure definitions for complex data, and use MCP tools including list_data_items(), get_xrefs_to(), inspect_memory_content(), get_assembly_context(), create_struct(), apply_data_type(), and rename_or_label() to automate the workflow.
Systematically analyze both .data (mutable globals) and .rdata (read-only constants) sections by segmenting data between external references (xrefs), treating each contiguous region as a logical unit, then for each segment record the address range and size, inspect memory content to identify data types (pointers, strings, primitives, arrays, sentinel markers), analyze all xrefs to understand usage patterns and purpose (lookup tables, configuration structures, constant values, string literals), determine if the segment is a single structure or array based on how code accesses it, rename each segment using Hungarian notation with g_ prefix for mutable globals in .data and k_ prefix for read-only constants in .rdata with appropriate type prefixes (dw=dword, w=word, b=byte, p=pointer, psz=string pointer, a=array) and descriptive names based on actual usage (e.g., g_dwPlayerHealthMax, k_dwMaxInventorySlots, g_aMonsterStats, k_pszWelcomeMessage), prioritize segments by reference count, create appropriate structure definitions for complex data, and use MCP tools including list_data_items(), get_xrefs_to(), inspect_memory_content(), get_assembly_context(), create_struct(), apply_data_type(), and rename_or_label() to automate the workflow.
@@ -170,4 +170,4 @@ While ALL requested functionality is now implemented, potential future additions
The Ghidra MCP plugin now provides **complete data structure management capabilities** equivalent to or exceeding native Ghidra GUI functionality, accessible through standardized MCP tools for automation, scripting, and integration workflows.
---
*Implementation completed successfully - all requested functionality delivered and tested* 🎉
*Implementation completed successfully - all requested functionality delivered and tested* 🎉
@@ -491,4 +491,4 @@ The issues encountered during function documentation were primarily due to:
**Version**: 1.6.0 Analysis
**Generated**: 2025-10-10
**Next Review**: After v1.7.0 development cycle
**Next Review**: After v1.7.0 development cycle
@@ -112,4 +112,4 @@
**Release Status**: ✅ APPROVED FOR RELEASE
**Approval Date**: November 14, 2025
**Approved By**: Claude/User
**Approved By**: Claude/User
@@ -122,4 +122,4 @@ python -m tools.setup deploy --ghidra-path "C:\path\to\ghidra_12.0.4_PUBLIC"
---
**Full Changelog**: [v1.9.2...v1.9.3](https://github.com/bethington/ghidra-mcp/compare/v1.9.2...v1.9.3)
**Full Changelog**: [v1.9.2...v1.9.3](https://github.com/bethington/ghidra-mcp/compare/v1.9.2...v1.9.3)
@@ -220,4 +220,4 @@
"error": "no address pinned (run with --resolve-addresses first or pin manually)"
}
]
}
}
@@ -220,4 +220,4 @@
"error": "no address pinned (run with --resolve-addresses first or pin manually)"
}
]
}
}
@@ -220,4 +220,4 @@
"error": "no address pinned (run with --resolve-addresses first or pin manually)"
}
]
}
}
@@ -433,4 +433,4 @@
}
}
}
}
}
@@ -631,4 +631,4 @@
"duplicate_tool_call_ratio": 0.091,
"function_count": 5
}
}
}
@@ -616,4 +616,4 @@
"duplicate_tool_call_ratio": 0.421,
"function_count": 5
}
}
}
@@ -631,4 +631,4 @@
"duplicate_tool_call_ratio": 0.091,
"function_count": 5
}
}
}
@@ -631,4 +631,4 @@
"duplicate_tool_call_ratio": 0.091,
"function_count": 5
}
}
}
@@ -631,4 +631,4 @@
"duplicate_tool_call_ratio": 0.091,
"function_count": 5
}
}
}
@@ -631,4 +631,4 @@
"duplicate_tool_call_ratio": 0.091,
"function_count": 5
}
}
}
@@ -631,4 +631,4 @@
"duplicate_tool_call_ratio": 0.091,
"function_count": 5
}
}
}
@@ -631,4 +631,4 @@
"duplicate_tool_call_ratio": 0.091,
"function_count": 5
}
}
}
@@ -631,4 +631,4 @@
"duplicate_tool_call_ratio": 0.091,
"function_count": 5
}
}
}
@@ -631,4 +631,4 @@
"duplicate_tool_call_ratio": 0.091,
"function_count": 5
}
}
}
@@ -259,4 +259,4 @@ def main():
try:
main()
except CancelledException:
pass
pass
@@ -113,4 +113,4 @@ def main():
try:
main()
except CancelledException:
pass
pass
@@ -94,4 +94,4 @@ public class ClearAllComments extends GhidraScript {
println("PLATE comments: " + plateCount);
println("Total: " + (preCount + postCount + eolCount + plateCount));
}
}
}
@@ -31,4 +31,4 @@ for i in range(52):
cmd.applyTo(currentProgram, monitor)
cmd = CreateFunctionCmd(addr)
cmd.applyTo(currentProgram)
cmd.applyTo(currentProgram)
@@ -88,4 +88,4 @@ def main():
try:
main()
except CancelledException:
pass
pass
@@ -77,4 +77,4 @@ try:
minify('game.json')
print("Exported {} functions".format(o))
except CancelledException:
pass
pass
@@ -69,4 +69,4 @@ try:
getExports()
except CancelledException:
pass
pass
@@ -45,4 +45,4 @@ public class SetPerspComments extends GhidraScript {
}
println("Done: plate + " + set + "/" + off.length + " EOL comments applied.");
}
}
}
@@ -105,4 +105,4 @@ def main():
try:
main()
except CancelledException:
pass
pass
@@ -25,4 +25,4 @@ try:
print("Found {} functions with __thiscall calling convention".format(i))
except CancelledException:
pass
pass
+1 -1
View File
@@ -29,4 +29,4 @@ markers =
safe_write: marks tests that write data but use identity operations (write same value back)
filterwarnings =
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::PendingDeprecationWarning
@@ -5177,18 +5177,3 @@ public class AnalysisService {
return Response.ok(out);
}
}
@@ -148,4 +148,4 @@ def run_maven(repo_root: Path, goals: list[str], dry_run: bool = False) -> int:
return 0
completed = subprocess.run(command, cwd=repo_root, check=False)
return completed.returncode
return completed.returncode
@@ -9,4 +9,4 @@
"idaVersions": ">=8.3",
"version": "2.0.0"
}
}
}
@@ -417,5 +417,3 @@ Module Contents
Temporarily enable/disable autoanalyzer. Not user-facing, but rather because IDA sometimes need to turn AA on/off regardless of inf.s_genflags:INFFL_AUTO
:returns: old state
@@ -122,5 +122,3 @@ Module Contents
.. py:method:: compare(r: bitrange_t) -> int
@@ -3568,4 +3568,3 @@ Module Contents
.. py:function:: find_bytes(bs: Union[bytes, bytearray, str], range_start: int, range_size: Optional[int] = None, range_end: Optional[int] = ida_idaapi.BADADDR, mask: Optional[Union[bytes, bytearray]] = None, flags: Optional[int] = BIN_SEARCH_FORWARD | BIN_SEARCH_NOSHOW, radix: Optional[int] = 16, strlit_encoding: Optional[Union[int, str]] = PBSENC_DEF1BPU) -> int
.. py:function:: find_string(_str: str, range_start: int, range_end: Optional[int] = ida_idaapi.BADADDR, range_size: Optional[int] = None, strlit_encoding: Optional[Union[int, str]] = PBSENC_DEF1BPU, flags: Optional[int] = BIN_SEARCH_FORWARD | BIN_SEARCH_NOSHOW) -> int
@@ -3083,4 +3083,3 @@ Module Contents
.. py:data:: move_bpt_to_grp
@@ -838,4 +838,3 @@ Module Contents
.. py:data:: DIRTREE_END
.. py:function:: get_std_dirtree(id: dirtree_id_t) -> dirtree_t *
@@ -321,4 +321,3 @@ Module Contents
.. py:function:: create_bytearray_linput(s: str) -> linput_t *
.. py:function:: close_linput(li: linput_t *) -> None
@@ -147,5 +147,3 @@ Module Contents
:param ord: ordinal number of entry point
:returns: size of entry forwarder name or -1
@@ -825,5 +825,3 @@ Module Contents
:returns: success
@@ -459,5 +459,3 @@ Module Contents
:returns: success ('false' means that RI was not changed)
@@ -201,4 +201,3 @@ Module Contents
.. py:data:: qfile_t_from_capsule
.. py:data:: qfile_t_tmpfile
@@ -727,5 +727,3 @@ Module Contents
:param pfn: the function to scan.
:param start_offset: start frame structure offset, in bytes
:param end_offset: end frame structure offset, in bytes
@@ -1390,5 +1390,3 @@ Module Contents
:param pfn: pointer to function (may not be nullptr)
:param fptr: out: will hold address of a function pointer (if indirect jump)
:returns: the target function or BADADDR
@@ -635,5 +635,3 @@ Module Contents
.. py:data:: FC_PREDS
:value: 0
@@ -2185,5 +2185,3 @@ Module Contents
.. py:method:: OnCommand(cmd_id)
@@ -18288,5 +18288,3 @@ Module Contents
:param callback: handler to uninstall
:returns: number of uninstalled handlers.
@@ -3576,4 +3576,3 @@ Module Contents
.. py:data:: idainfo_comment_get
.. py:data:: idainfo_comment_set
@@ -693,6 +693,3 @@ Module Contents
.. py:method:: get_byte()
Reads a single byte from the file. Returns None if EOF or the read byte
@@ -22,4 +22,3 @@ Module Contents
.. py:function:: get_marked_pos(slot: int) -> ida_idaapi.ea_t
.. py:function:: get_mark_comment(slot: int) -> PyObject *
@@ -3234,4 +3234,3 @@ Module Contents
.. py:data:: Appcall
@@ -5633,4 +5633,3 @@ Module Contents
.. py:function:: get_idb_notifier_addr(arg1: PyObject *) -> PyObject *
.. py:function:: get_idb_notifier_ud_addr(hooks: IDB_Hooks) -> PyObject *
@@ -347,5 +347,3 @@ Module Contents
.. py:data:: ETWO
:value: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00@'
@@ -10755,4 +10755,3 @@ Module Contents
.. py:data:: place_t_as_simpleline_place_t
.. py:data:: place_t_as_tiplace_t
@@ -186,5 +186,3 @@ Module Contents
:param name: short name of a signature
:returns: true in case of success
@@ -951,4 +951,3 @@ Module Contents
.. py:data:: E_PREV
.. py:data:: E_NEXT
@@ -996,5 +996,3 @@ Module Contents
:param is_remote: is the input file remote?
:returns: true: ok
:returns: false: something bad happened (error message has been displayed to the user)
@@ -1074,5 +1074,3 @@ Module Contents
Get nice name for EA diffpos
:param ea: diffpos
@@ -55,5 +55,3 @@ Module Contents
.. py:function:: create_std_modmerge_handlers(mhp: merge_handler_params_t &, helper: moddata_diff_helper_t &, merge_node_info: merge_node_info2_t const * = None) -> None
convinience function to create merge handlers for modules/plugins
@@ -439,4 +439,3 @@ Module Contents
.. py:data:: bookmarks_t_mark
.. py:data:: bookmarks_t_size
@@ -2662,4 +2662,3 @@ Module Contents
.. py:function:: get_abi_name()
.. py:data:: get_initial_version
@@ -1280,4 +1280,3 @@ Module Contents
.. py:data:: MANGLED_DATA
.. py:data:: MANGLED_UNKNOWN
@@ -524,4 +524,3 @@ Module Contents
.. py:function:: exist(n: netnode) -> bool
.. py:data:: netnode_exist
@@ -183,5 +183,3 @@ Module Contents
.. py:function:: calc_basevalue(target: ida_idaapi.ea_t, base: ida_idaapi.ea_t) -> ida_idaapi.ea_t
Calculate the value of the reference base.
@@ -1928,4 +1928,3 @@ Module Contents
.. py:data:: svalvec_t
.. py:data:: eavec_t
@@ -189,5 +189,3 @@ Module Contents
.. py:data:: PR_END
Number of problem types.
@@ -545,6 +545,3 @@ Module Contents
.. py:method:: as_rangevec() -> rangevec_t const &
Return underlying rangevec_t object.
@@ -778,6 +778,3 @@ Module Contents
.. py:function:: invalidate_regfinder_xrefs_cache(*args) -> None
The data reference to TO has added (DREF!=dr_O) or removed (DREF==dr_O). Update the regtracker xrefs cache after this change. If TO == BADADDR then clear the entire xrefs cache.
@@ -247,4 +247,3 @@ Module Contents
.. py:function:: set_registry_name(name: str) -> bool
@@ -142,4 +142,3 @@ Module Contents
.. py:function:: find_text(start_ea: ida_idaapi.ea_t, y: int, x: int, ustr: str, sflag: int) -> ida_idaapi.ea_t
.. py:function:: find_reg_access(out: reg_access_t, start_ea: ida_idaapi.ea_t, end_ea: ida_idaapi.ea_t, regname: str, sflag: int) -> ida_idaapi.ea_t
@@ -1456,5 +1456,3 @@ Module Contents
:param delta: number of bytes to move the program
:param flags: Move segment flags it is recommended to use MSF_FIXONCE so that the loader takes care of global variables it stored in the database
:returns: Move segment result codes
@@ -222,5 +222,3 @@ Module Contents
:param dst_rg: number of destination segment register
:param src_rg: copy ranges from
:param map_selector: map selectors to linear addresses using sel2ea()
@@ -150,5 +150,3 @@ Module Contents
:param is_path: true if input parameter is a path to a source file, false if the input is an in-memory source snippet
:returns: -1: no parser was found with the given name
:returns: else: the number of errors encountered in the input source
@@ -108,5 +108,3 @@ Module Contents
.. py:function:: get_strlist_item(si: string_info_t, n: size_t) -> bool
Get nth element of the string list (n=0..get_strlist_qty()-1)
@@ -446,5 +446,3 @@ Module Contents
:param ea: address to check
:param flags: combination of flags for is_ea_tryblks()
@@ -10007,4 +10007,3 @@ Module Contents
.. py:data:: enum_member_t
.. py:data:: udt_member_t
@@ -1826,4 +1826,3 @@ Module Contents
.. py:function:: outctx_t__from_ptrval__(ptrval: size_t) -> outctx_t *
.. py:data:: ua_mnem
@@ -54,5 +54,3 @@ Module Contents
Perform redo.
:returns: success
@@ -620,4 +620,3 @@ Module Contents
.. py:data:: XREF_ALL
.. py:data:: XREF_FAR
@@ -29,4 +29,3 @@ Module Contents
.. py:data:: cvar

Some files were not shown because too many files have changed in this diff Show More