所以我正在尝试将 PE 重新组装到 ELF,以便我可以使用 rr 调试它。
但是 masm 报告重复符号错误。这是因为它没有对其变量强制作用域,所以智能名称会导致冲突。如果它们分别用堆栈或数据偏移量后缀,就不会有这样的问题。
或者,也许在 masm 中有一个开关可以纠正这些错误。
TRAOD_P4_orig.exe.v2.data.asm(1058192):错误 A2005:符号重新定义:参数 TRAOD_P4_orig.exe.v2.data.asm(2724112):错误 A2005:符号重新定义:Dest
; LINE somewhere in the code above
Dest = byte ptr -404h
Args = byte ptr 10h
; LINE 1058192
; char Args[]
Args dd ? ; DATA XREF: _Caption_Draw:loc_523425\u2191r
; LINE 2724112
; char Dest
Dest db ? ; DATA XREF: sub_42DF68+38\u2191o
显然,甚至存在这样一种情况,即 Memory 在同一个函数中既是局部变量又是数据引用。