zoukankan      html  css  js  c++  java
  • 逆向工程学习笔记(1)

    2020.11.6

    1.找main函数的方法

    1.找输出法:如果main函数有输出内容,不断F8直到有输出。重新运行,打断点+F4+F7进入函数,继续F8。。。直到看到标志性内容

    2.字符串查找法:如果能确定输出是连续字符串,可以直接找。右键-搜索,然后去引用里找就行了

    2.lea,mov,[]的区别

    对于lea指令

    第二操作数是寄存器且必须加[],代表取值,并将该值存到第一操作数里

    对于mov指令

    不加[]代表取值,加[]代表取地址

    3.妙妙的x++与++x实验

    大葱昨天半夜给了我一份奇怪的代码,反正运行出来的结果很奇怪

    今天实验一下

    对于这种索引里带语句的,猜测代码运行的优先级应该如下:

    左侧++x > 左侧取地址 > 左侧x++ > 右侧++x > 右侧求值 > 右侧x++ > 赋值

    (1 对于左右侧都有++x,x++而且都是在索引的情况,符合预期


    (2 右侧的x不是索引

    E1:这种可以正常编译

    E2:这种却根本不能编译

    真是神奇

    E3:如果把右侧的x+1改成x++,却能编译并运行。。。且反编译符合预期

    E4:不过如果这样写,却和E2不一样,它能编译!但是却不符合预期,右侧x++优先于取值进行了!

    调换1和x++的顺序,结果也没有改变

    我蒙了。。。以后看看编译器是咋写的,是不是辣鸡mingw的问题

  • 相关阅读:
    Teamviewer12完美破解版去除时间限制完美使用
    winFrom程序更新自动安装
    sql 根据指定字符截取前面几个字符
    下拉框带搜索
    easyui 展开缩起
    p1001 谁拿了最多的奖学金
    p1217 乒乓球
    p1911 珠心算问题
    p1848 记数问题
    入坑archlinux
  • 原文地址:https://www.cnblogs.com/guapisolo/p/13985384.html
Copyright © 2011-2022 走看看