我正在尝试使用
ndisasm
反汇编程序。我发现它不区分常量、元数据和程序指令。即:
00020CA3 00426F add [edx+0x6f],al
00020CA6 726C jc 0xd14
00020CA8 61 db 0x61
00020CA9 6E outsb
00020CAA 6420432B and [fs:ebx+0x2b],al
00020CAE 2B db 0x2b
00020CAF 202D20436F70 and [0x706f4320],ch
00020CB5 7972 jns 0xd29
00020CB7 69 db 0x69
00020CB8 67 a32
00020CB9 68 db 0x68
00020CBA 7420 jz 0xcdc
00020CBC 31 db 0x31
00020CBD 39 db 0x39
00020CBE 39 db 0x39
00020CBF 31 db 0x31
00020CC0 20426F and [edx+0x6f],al
00020CC3 726C jc 0xd31
00020CC5 61 db 0x61
00020CC6 6E outsb
00020CC7 6420496E and [fs:ecx+0x6e],cl
00020CCB 746C jz 0xd39
00020CCD 2E00446976 add [cs:ecx+ebp*2+0x76],al
实际上是一个字符串常量:
00020CA4 Borland C++ - Copyright 1991 Borland Intl.\x00
以空字符结尾的字符串很容易找到,我只是将十六进制代码转换回 ASCII。
所以,我的问题是:如何在汇编代码中找到对这些字符串的引用?
我尝试通过字符串常量的起始位置(即 0x20CA4)进行搜索,但没有帮助。