• 逆向-beginners之return


    #include <stdio.h>

    int f()
    {
        int a = 0x55;
        return a;
    }

    int main()
    {
        int a = 1;

        a = f();
        printf("0x%x\n", a);    // 0x55
        return 0;
    }

    #if 0
    /*
     * intel
     */
    0000000000001149 :
        1149:    f3 0f 1e fa              endbr64 
        114d:    55                       push   %rbp
        114e:    48 89 e5                 mov    %rsp,%rbp
        1151:    c7 45 fc 55 00 00 00     movl   $0x55,-0x4(%rbp)
        1158:    8b 45 fc                 mov    -0x4(%rbp),%eax
        115b:    5d                       pop    %rbp
        115c:    c3                       retq   

    000000000000115d

    :
        115d:    f3 0f 1e fa              endbr64 
        1161:    55                       push   %rbp
        1162:    48 89 e5                 mov    %rsp,%rbp
        1165:    48 83 ec 10              sub    $0x10,%rsp
        1169:    c7 45 fc 01 00 00 00     movl   $0x1,-0x4(%rbp)
        1170:    b8 00 00 00 00           mov    $0x0,%eax
        1175:    e8 cf ff ff ff           callq  1149
        117a:    89 45 fc                 mov    %eax,-0x4(%rbp)
        117d:    8b 45 fc                 mov    -0x4(%rbp),%eax
        1180:    89 c6                    mov    %eax,%esi
        1182:    48 8d 3d 7b 0e 00 00     lea    0xe7b(%rip),%rdi        # 2004 <_IO_stdin_used+0x4>
        1189:    b8 00 00 00 00           mov    $0x0,%eax
        118e:    e8 bd fe ff ff           callq  1050
        1193:    b8 00 00 00 00           mov    $0x0,%eax
        1198:    c9                       leaveq 
        1199:    c3                       retq   
        119a:    66 0f 1f 44 00 00        nopw   0x0(%rax,%rax,1)

    /*
     * arm
     */
    000000000040055c :
      40055c:    d10043ff     sub    sp, sp, #0x10
      400560:    52800aa0     mov    w0, #0x55                      // #85
      400564:    b9000fe0     str    w0, [sp, #12]
      400568:    b9400fe0     ldr    w0, [sp, #12]
      40056c:    910043ff     add    sp, sp, #0x10
      400570:    d65f03c0     ret

    0000000000400574

    :
      400574:    a9be7bfd     stp    x29, x30, [sp, #-32]!
      400578:    910003fd     mov    x29, sp
      40057c:    52800020     mov    w0, #0x1                       // #1
      400580:    b9001fa0     str    w0, [x29, #28]
      400584:    97fffff6     bl    40055c
      400588:    b9001fa0     str    w0, [x29, #28]
      40058c:    90000000     adrp    x0, 400000 <_init-0x3e8>
      400590:    91196000     add    x0, x0, #0x658
      400594:    b9401fa1     ldr    w1, [x29, #28]
      400598:    97ffffae     bl    400450
      40059c:    52800000     mov    w0, #0x0                       // #0
      4005a0:    a8c27bfd     ldp    x29, x30, [sp], #32
      4005a4:    d65f03c0     ret

    #endif
     

  • 相关阅读:
    大厂程序员:杭州小公司给不了40k?网友群嘲
    NepCTF2023的wp
    LeetCode第14题:最长公共前缀
    文件上传—WAF拦截的绕过方式
    【Linux】万字总结Linux 基本指令,绝对详细!!!
    uniapp小程序与webview通信(二)
    Seata分布式事务简析
    Spring框架—POJO对象模型
    PDF文件在线预览
    【大数据毕设】基于Hadoop的音乐推荐系统的设计和实现(六)
  • 原文地址:https://blog.csdn.net/xiaozhiwise/article/details/132928606