2023年12月17日发(作者:)
87. {
88. unsigned char code[16];
89. int size = 0;
90.
91. code[size++] = 0x33;
92. code[size++] = 0xC0;
93. code[size++] = 0xC2;
94. code[size++] = 0x04;
95. code[size++] = 0x00;
96.
97. DWORD dwOldFlag, dwTempFlag;
98. VirtualProtect(addr, size, PAGE_READWRITE, &dwOldFlag);
99. WriteProcessMemory(GetCurrentProcess(), addr, code, size, NULL);
100. VirtualProtect(addr, size, dwOldFlag, &dwTempFlag);
101. }
102. }
103.
104. void InitMinDump()
105. {
106. //注册异常处理函数
107. SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);
108.
109. //使SetUnhandledExceptionFilter
110. DisableSetUnhandledExceptionFilter();
111. }
4.测试代码
//
[cpp]
1. #include
2. #include "minidump.h"
3. void test()
4. {
5. std::string s = "abcd";
6.
7. try{
8. s[100] = 'b';
9. }
10. catch(std::exception& e)
11. {
12. std::cout << "with exception:[" << () << "]" << std::endl;
13. }
14. catch(...)
15. {
16. std::cout << "with unknown exception" << std::endl;
17. }
18. }
19.
20. void main()
21. {
22. InitMinDump();
23.
24. test();
25.
26. system("pause");
27. }


发布评论