O‍PE电‍竞比‍赛的玩‍法多吗?

  • <> 输入表是以一个IMAGE_IMORT_DESCRITOR(简称LLD)数组开始一个接一个。每个被E文件隐式地链接进来的DLL都有一个IID结束判断是该数组的最后一个单元为NULL。
  • <> 对于IMAGE_THUNK_DATA的理解不要考虑复杂整体判断它僦是一个以DWORD数组开始,一个接一个结束判断是出现0,所以在定义时可以直接用DWORD个体判断分2种情况,一是DWORD的第32位为1时表示函数是以序號方式输入,这是低31位被看作一个函数序号(跟第32位的1没关系)当最高位为0时,表示函数以字符串类型的函数方式输入这时DWORD是一个RVA(財会用到IMAGE_IMORT_BY_NAME结构),指向一个IMAGE_IMORT_BY_NAME结构
  • <> IMAGE_IMORT_BY_NAME结构注意WORD Hint开始占2个字节,打印输入函数的函数名时一定要把IMAGE_THUNK_DATA中的值转化为FOA时移动2个字节才能正确指向輸入函数的函数名的首地址。
  • <> 输入表是以一个IMAGE_IMORT_DESCRITOR(简称LLD)数组开始一个接一个。每个被E文件隐式地链接进来的DLL都有一个IID结束判断是该数组的最后一个单元为NULL。
  • <> 对于IMAGE_THUNK_DATA的理解不要考虑复杂整体判断它僦是一个以DWORD数组开始,一个接一个结束判断是出现0,所以在定义时可以直接用DWORD个体判断分2种情况,一是DWORD的第32位为1时表示函数是以序號方式输入,这是低31位被看作一个函数序号(跟第32位的1没关系)当最高位为0时,表示函数以字符串类型的函数方式输入这时DWORD是一个RVA(財会用到IMAGE_IMORT_BY_NAME结构),指向一个IMAGE_IMORT_BY_NAME结构
  • <> IMAGE_IMORT_BY_NAME结构注意WORD Hint开始占2个字节,打印输入函数的函数名时一定要把IMAGE_THUNK_DATA中的值转化为FOA时移动2个字节才能正确指向輸入函数的函数名的首地址。

参考资料

 

随机推荐