我一直在尝试将此代码转换为C++而没有任何内联,但我无法弄清楚。
说你有这条线
sub edx, (offset loc_42C1F5+5)
我的十六进制射线给了我
edx -= (uint)((char*)loc_42C1F5 + 5))
但是如果没有
loc_42C1F5
,它的真实外观如何。我认为那是
edx -= 0x42C1FA;
但这是正确的吗? (实际上无法在任何汇编程序级别的调试器中执行此代码。.由于它受到良好的保护,因此损坏)
loc_42C1F5实际上是一个标签。
seg000:0042C1F5 loc_42C1F5: ; DATA XREF: sub_4464A0+2B5o
seg000:0042C1F5 mov edx, [esi+4D98h]
seg000:0042C1FB lea ebx, [esi+4D78h]
seg000:0042C201 xor eax, eax
seg000:0042C203 xor ecx, ecx
seg000:0042C205 mov [ebx], eax
最佳答案
loc_42C1F5
是一个符号。根据您提供的信息,我无法说出它的偏移量是多少。可能是0x42C1F5,也可能是完全其他的东西。
如果它是0x42C1F5,则您的翻译应该正确。