Re:me 发表于 2020-3-29 01:21

题目梅津美治郎的理解

1.ida打开

2.xdbg调试到第一个API函数

从eax的值看到API函数是kernel32库的GetModuleHandleA()函数,通过查msdn,得知函数返回值成功是指定模块的句柄,失败是NULL。

3.第二个API函数

从eax的值看到API函数是kernel32库的GetProcAddress函数。查msdn,成功返回值是导出的函数和变量的地址。失败是NULL。

返回值为ntdll.AddVectoredExceptionHandler。
4.第三个API函数是AddVectoredExceptionHandler()。


查msdn,函数AddVectoredExceptionHandler()功能是在异常前执行指定函数。通过调试得知执行的是起始地址为40175F的函数。
5.通过ida查看

在通过第一个输入后有一个int 3 的异常。
6.然后程序总流程就是检验第一次输入,然后触发异常,然后在异常前执行第二次检验。
页: [1]
查看完整版本: 题目梅津美治郎的理解