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. }