FILE缓冲区溢出漏洞的解决方案(8)

int (__cdecl *__cdecl sub_10013A50(int a1, int a2, int a3, int a4, char *Format, va_list Args))(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD) { …… for ( j = &v14; v10; ++j ) { sub_10006FD0(v10, *(_DWORD *)(a1 + 1156)); v10 = j[1]; } v12 = Dest; for ( k = &Dest; v12; ++k ) { sub_10006FD0(v12, *(_DWORD *)(a1 + 1156)); v12 = k[1]; } result = (int (__cdecl *)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD))sub_10006FD0(10, *(_DWORD *)(a1 + 1156)); return result }

这里省去了大部分代码逻辑,只保留了关键位置,正是这里的溢出,导致报错的情况下产生缓冲区溢出漏洞,从而可以执行任意代码。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/cb369e93158f3a99d63a181b59322190.html