-
-
[求助]包含多个中断的程序执行有概率会错
-
2023-7-31 18:11 2560
-
尝试用中断来让程序“倒着执行”
这个函数是 int 0fh 的处理函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | .data a dq 0 b dq 0 .code Int0f proc swapgs mov [a], rax mov [b], rbx xor rax, rax xor rbx, rbx nop mov rax, [rsp] ;指令地址 mov byte ptr bl, [rax] ;待减的值 sub rax, rbx mov [rsp], rax mov rbx, [b] mov rax, [a] swapgs iretq Int0f endp |
这个程序(a.exe)是测试程序的主函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [BITS 64 ] SECTION .text global WinMain l0: ret l1: mov rax, 1 int 0fh db l2 - l0 - 1 l2: mov rax, 2 int 0fh db l3 - l1 - 1 l3: WinMain: mov rax, 3 int 0fh db l4 - l2 - 1 l4: int 0fh ret |
运行a.exe后有概率返回正确的1,也有概率返回-1073741819(通过%ERRORLEVEL%查看),求助怎么稳定让程序返回正确结果?
另:通过windbg在int 0fh指令前下硬件断点,可以让程序稳定正确运行,但实际使用中也不能在另一台电脑上挂一个windbg呀
[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界
最后于 2023-7-31 19:33
被Billraozihan编辑
,原因:
赞赏
他的文章
看原图