assembly 如何在反汇编程序代码中找到对字符串常量的引用?

oknwwptz  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(69)

我正在尝试使用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),但它没有帮助。

sshcrbum

sshcrbum1#

您最好在十六进制编辑器中打开可执行文件。这些几乎总是带有ASCII显示关闭的一面。

相关问题