int main()
{
getchar();
cout << “XX55OO”;
getchar();
return 0;
}
以上的几行代码,静态编译成123.exe文件【被注入的目标程序】
本人想在123.exe的两个 getchar()之间,注入一个MessageBox(“hell no”),再将它重新写成456.exe文件。
问一下各位对于这方面,有什么好的思路,麻烦分享一下。莫非,必须要到用到反汇编么?
{
getchar();
cout << “XX55OO”;
getchar();
return 0;
}
以上的几行代码,静态编译成123.exe文件【被注入的目标程序】
本人想在123.exe的两个 getchar()之间,注入一个MessageBox(“hell no”),再将它重新写成456.exe文件。
问一下各位对于这方面,有什么好的思路,麻烦分享一下。莫非,必须要到用到反汇编么?
解决方案
50
参看 《加密与解密》 段钢
50
首先你要找到这两个位置的地址, 然后把第一个 getchar 完成后的下一句代码改成 jmp 到你的 MessageBox 的代码, MessageBox 执行完成后在 jmp 到下一个 getchar 的地址.
25
参考WinAPIOverride32源代码片断。