zoukankan      html  css  js  c++  java
  • 开启逆向之旅

      在将来,我们主要用到Windows下最老牌的C语言编译器,Visual C++ 6.0 这款工具;值得注意的是,这款工具在64位操作系统上运行时有时候会出现兼容性的问题,它和32位操作系统相处的比较和谐。因此建议在32位Windows虚拟机下倒腾这个软件(我的虚拟机是win7 32bits 盗版……QAQ),会出现较少的Bug。可能会结合一些Linux反汇编工具来了解不同汇编器的区别和不同。


      前期需要掌握的知识:(推荐书籍《汇编语言》王爽)

      1.汇编语言的常用指令  

      赋值指令mov,加减乘除指令add sub inc dec mul div,逻辑运算指令or and not xor test,[逻辑/算术]移位(循环移位)指令系列,栈操作指令push pop细节,循环指令,地址传送指令lea,比较指令cmp,无条件跳转指令jmp,条件跳转指令一系列,函数调用和返回指令call ret细节

      2.若干种寻址方式

      

           

      3.常用的寄存器分类

      普通寄存器,指针寄存器,变址寄存器,标志寄存器,段寄存器 以及对应功能。 

    寄存器16位32位64位
    累加寄存器   AX EAXRAX
    基址寄存器BXEBXRBX
    计数寄存器CXECXRCX
    数据寄存器DXEDXRDX
    堆栈基指针BPEBPRBP
    变址寄存器SIESIRSI
    堆栈顶指针SPESPRSP
    指令指针IPEIPRIP

       

           参考网址:https://blog.csdn.net/luoyhang003/article/details/46786591

      4. debug常用命令的使用(32bits Windows dos下可以使用,64bits dos没这个命令)

            -r   读取所有寄存器内容

      -a   在cs:ip处写入汇编代码

      -d   读取(可以指定起始地址)内存区内容,默认从开始位置ds:ip显示128字节空间

      -u   查看cs:ip处(可指定开始位置)的反汇编(机器码)得到的汇编代码

      -t/-p    单步执行

      5.asm文件编写规范以及ml指令、debug指令的结合操作 


       推荐入门的书籍:  《解密数据解密的关键技术》第一、二章的内容。

         

     

  • 相关阅读:
    POJ 1681 Painter's Problem(高斯消元法)
    HDU 3530 Subsequence(单调队列)
    HDU 4302 Holedox Eating(优先队列或者线段树)
    POJ 2947 Widget Factory(高斯消元法,解模线性方程组)
    HDU 3635 Dragon Balls(并查集)
    HDU 4301 Divide Chocolate(找规律,DP)
    POJ 1753 Flip Game(高斯消元)
    POJ 3185 The Water Bowls(高斯消元)
    克琳:http://liyu.eu5.org
    WinDbg使用
  • 原文地址:https://www.cnblogs.com/Higgerw/p/10460864.html
Copyright © 2011-2022 走看看