你负责维护一个大型的C程序,遇到下面的代码:
typedef struct{ int first; a_struct a[CNT]; int last; }b_struct; void test(long i, b_struct *bp) { int n = bp->first+bp->last; a_struct *ap = &bp->a[i]; ap->x[ap->idx] = n; }
编译时常数CNT和结构a_structt的声明是在一个你没有访问权限的文件中。幸好,你有代码的‘.o’版本,可以用OBJDUMP程序来反汇编这些文件,得到下面的反汇编代码:
运用你的逆向工程技术,推断出下列内容:
A. CNT的值。
B. 结构a_struct的完整声明。假设这个结构中只有字段idx和x,并且这两个字段保存的都是有符号值。