求助,一段汇编代码
extra_data_start:
_asm pushad
_asm mov eax, fs:0x30 //PEB地址
_asm mov eax, [eax + 0x0c] //PEB_LDA_DATA地址
_asm mov esi, [eax + 0x1c] //动态链接库地址
_asm lodsd//得到KERNEL32.DLL所在LDR_MODULE结构的
_asm mov eax, [eax + 0x08] //得到BaseAddress,既Kernel32.dll基址
_asm mov edi, eax //edi = Kernel32.dll基址
_asm mov ebp, eax //ebp = Kernel32.dll基址
_asm mov eax, [ebp + 3ch] //eax = ((Kernel32.dll基址 + 3ch) == PE首部)
_asm mov edx, [ebp + eax + 78h] //ebp = Kernel32.dll基址;eax = PEB_LDR_DATA基址
_asm add edx, ebp
_asm mov ecx, [edx + 18h] //输出函数个数
_asm mov ebx, [edx + 20h] //函数名地址
_asm add ebx, ebp
mov edx, [ebp + eax + 78h]这个地方,ebp +eax +78h,这个究竟是啥?加了78h偏移到哪了?那个地址里存放的究竟是啥?
答案:ebp + eax + 78h 指向pe文件的输出表
楼主可以去看看pe文件的结构
上一个:汇编汉字显示中add di ,32什么意思
下一个:汇编小问题新手神马都不会啊~在线等~感激不尽~!