
stosd ; write function addr to [edi] and increment edi 这一句写入出错,
Access violation when writing to [0040B59B] - Shift+Run/Step to pass exception to the program
仔细观察可以看到EAX处并非是我们想要的kernel32.LoadLibrary.
仔细阅读书上内容
我们将搜索相关库函数的导出表,查找导出表中的函数名,最终确定函数入口地址。在搜
索操作中将采用比较 hash 摘要的方法,而不是直接比较函数名。其中,选择合适的 hash 算法
将是这种方法的关键,也是缩短 shellcode 代码的关键。
在选择这种算法时所考虑的因素:
所需的每个库文件(dll)内所有导出函数的函数名经过 hash 后的摘要不能有“碰撞”
其实这个因素在一些情况下可以适当放宽。例如,当被搜索的函数排在碰撞函数名的第一
个时,即使存在 hash 碰撞,我们仍然知道最先搜到的就是所需要的函数,故这种碰撞是可以
容忍的。
这就明了了, eax存储的hash值处”没有成立,导致指向的内存错误.
[培训]科锐逆向工程师培训第53期2025年7月8日开班!