V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
masteryi
V2EX  ›  程序员

调试 hellowold 程序,找 mian 函数。为什么第一行代码没往下执行?出现了跳转

  •  
  •   masteryi · 81 天前 · 2159 次点击
    这是一个创建于 81 天前的主题,其中的信息可能已经有所发展或是发生改变。
    #include "windows.h"
    #include "tchar.h"
    
    int _tmain(int argc, TCHAR* argv[]) {
    	MessageBox(NULL, L"Hello, World!", L"Hello, World!", MB_OK);
    }
    
    76F1A942 | 8B4C24 54   | mov ecx,dword ptr ss:[esp+54]                 |
    76F1A946 | 33CC        | xor ecx,esp                                   |
    

    第一行执行完没执行第二行,而是跳到了这里,mov 指令为什么会跳转?

    775B91C0 | 833D E81467 | cmp dword ptr ds:[776714E8],0                 |
    
    17 条回复    2024-08-19 13:52:59 +08:00
    xuld
        1
    xuld  
       81 天前
    因为单词皮错了
    masteryi
        2
    masteryi  
    OP
       81 天前
    @xuld 什么意思?什么单词错了?
    weiwoxinyou
        3
    weiwoxinyou  
       81 天前   ❤️ 1
    代码和描述的抽象程度和标题的 mian 函数不相上下
    dearmymy
        4
    dearmymy  
       81 天前
    因为你调试得是汇编代码。
    masteryi
        5
    masteryi  
    OP
       81 天前
    @dearmymy 是的我在学习汇编,这里不理解想请教一下大家
    janus77
        6
    janus77  
       81 天前   ❤️ 2
    一看标题我就明白了
    masteryi
        7
    masteryi  
    OP
       81 天前
    还有个类似的问题
    我打开 od 代码停在 775F88B8 按下 f7(step into)为什么没跳到 775F88C1 而是跳到了别处
    775F88B8 | EB 07 | jmp ntdll.775F88C1 |
    775F88BA | 33C0 | xor eax,eax |
    775F88BC | 40 | inc eax |
    775F88BD | C3 | ret |
    775F88BE | 8B65 E8 | mov esp,dword ptr ss:[ebp-18] |
    775F88C1 | C745 FC FEFFFFFF | mov dword ptr ss:[ebp-4],FFFFFFFE |
    icy37785
        8
    icy37785  
       81 天前 via iPhone
    一肚子吐槽不知道从哪里开始吐
    sslyd
        9
    sslyd  
       81 天前
    这是用了 ss 段寄存器吧。你得去查 ss 段选择子才知道他为啥跳转的。这是操作系统的代码吧
    mxT52CRuqR6o5
        10
    mxT52CRuqR6o5  
       81 天前
    可以尝试不要使用单步调试功能,而是在下一行下一个硬件断点然后 F9 ,你可以看看 ollydbg 断点是靠 int3 中断实现的,某些情况下会跑飞很正常(很多反调试工具都会实现这种效果)
    leonme
        11
    leonme  
       81 天前 via iPhone   ❤️ 6
    一个标题,一共两个单词,全都写错?
    HongJay
        12
    HongJay  
       81 天前
    我服了
    lysShub
        13
    lysShub  
       81 天前
    126ium
        14
    126ium  
       81 天前 via Android   ❤️ 1
    干我们这行讲究一个仔细认真。像 op 这种毛毛躁躁的应该早日考虑转行
    dilrvvr
        15
    dilrvvr  
       80 天前 via iPhone
    #define mian main
    #define ture true
    #define flase false
    #difine viod void
    dilrvvr
        16
    dilrvvr  
       80 天前 via iPhone
    拷贝来的,结果最后一个还拼成了 difine… 没救了
    qinxi
        17
    qinxi  
       80 天前
    @leonme #11 总共三个🙈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1462 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:53 · PVG 07:53 · LAX 15:53 · JFK 18:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.