-
-
[原创][原创]<<0day安全>>3.6节调试
-
发表于:
2020-2-3 18:58
4104
-
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值处”没有成立,导致指向的内存错误.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课