一般壳的加载过程分为:获取壳自身的API地址,解密原程序的各个区块,重定位,HOOK-API,最后跳转到程序原入口点。
第1题:
手动脱壳分为()
第2题:
加壳通常需要修改原程序输入表的条目使得壳代码优先于原可执行程序获得执行权。
第3题:
把程序中的逻辑地址变成内存中物理地址的过程称为()。
A、重定位
B、物理化
C、逻辑化
D、加载
第4题:
加壳后的程序通常比原程序具有更大的输入表,导入大量链接库。为了满足这种要求,壳依赖的大量函数采用了动态加载方式。
第5题:
通常情况下,可以将原程序加载到固定的内存地址中。so或dll等动态链接库的加载地址并不确定,为了确保程序的正常运行,需要进行函数的重定位。
第6题:
一般来说,壳代码附加在原可执行程序上,在程序载入内存之后,壳代码优先于原可执行程序,获得执行权,由壳代码进行解压解密操作后,将执行权交给原可执行程序。
第7题:
加壳后的程序加载到内存执行的步骤包括()。
第8题:
重定位(地址变换)分为静态重定位和动态重定位,其中动态重定位是指程序的重定位是在()进行的。
A、程序完成时
B、程序执行中
C、程序执行前
D、以上都不对
第9题:
壳依赖的大量函数采用了静态加载方式,使得加壳后的程序通常比原程序具有更小的输入表。
第10题:
与普通的压缩方式不同,加壳后的程序可以独立运行,其解压或解密过程对用户透明。