美文网首页
《逆向工程核心原理》-- 调试HelloWorld.exe程序

《逆向工程核心原理》-- 调试HelloWorld.exe程序

作者: Cichar | 来源:发表于2017-04-03 22:14 被阅读0次

首先用OllyDbg调试工具打开在VS中写好的HelloWorld.exe程序。



打开之后,弹出了提示框,提示入口点在代码外。调试器的停止地点和书上描述不一样,第一条并不是CALL,而是

MOV DWORD PTR SS:[ESP+8],EBX

第二条指令为

JMP ntdll.778705B9

离当前指令的7787FFA8还是距离挺远。
跳至778705B9处:


跳转后首先将EBP压栈,再将ESP传给EBP,此时的ESP为00BEF868:


经过两个没什么用的CALL之后



发现此处PUSH了 ntdll.77907D40,暂时不知道PUSH的什么东西,然后进入779705E1处的CALL


终于到了书上所描述402524处的指令段,此处并没有调用MessageBox()API,不是所要寻找的main()函数,继续向下



在进入000A110E后,在下面的指令中发现了MessageBoxW,初步猜测此处为main()函数内部



之后在进行跟踪几步之后

重新进行一次调试,F8进行指令跳转,发现CALL 000A1AD0处执行了MessageBox(),初步判定000A1AD0处为main()函数


在name in all modules 中查找MessageBoxW
发现在如下地址:


在此处设置断点,然后F9继续执行,执行到此处后,栈信息显示如下


得到00D516EE处调用的MessageBoxW,查找此处发现了要找的信息:


在此处设置断点提示在代码有效空间外,ALT+M调出memory。得到如下信息


00D51000至00D56000之间的信息被压缩过。难怪调试的时候那么奇怪

相关文章

网友评论

      本文标题:《逆向工程核心原理》-- 调试HelloWorld.exe程序

      本文链接:https://www.haomeiwen.com/subject/btioottx.html