zoukankan      html  css  js  c++  java
  • [3.12]学习笔记

    接触到VMP是一个偶然,但是既然遇到了,那么就慢慢学习他,毕竟,长城不是一
    天码成的,逆向本来就是一个耗时的事情,写壳的人都研究了这么久,那么我们只有
    一点一滴的领略他的精华。
    ************************
    关于脱VMP的壳:
    今天找到了一个秒杀所有壳找OEP的方法,感觉甚是神奇,虽然知道这个方法并不是
    100%有用,但是不失作为去找到OEP的一个渠道。
    ************************
    http://bbs.pediy.com/showthread.php?t=155215
    这篇帖子讲了VMP的今生和过去,非常长,今天只看了一点点,略感困倦,没看完
    的明天再看。
    ************************
    今天的收获有:VMP的加密机制分为2部分,乱序膨胀,字节解释。

    PUSH DWORD(key:关系到后面的跳转/立即数)
    CALL xxxxxxxx

    ,key会变化,当VM遇到一些不能虚拟的代码,就会跳出虚拟机,再次进入的时候又
    是相同的push DWORD,CALL xxxxxxx
    总之,当VMP出了虚拟机,再次进入虚拟机的时候,第一句代码都是一个KEY打头,然后
    是一个CALL指令,才是入口指针.

    PUSH和CALL之后,跟着的就是一大串以JXX或者JMP或者是CALL或者是RET组成的
    代码乱流.

    我们看到的所有的都是代码乱流,是毫无逻辑的,至于JXX,JMP,CALL,RET,这4种指
    令起的作用都是”衔接”.和逻辑无半毛钱关系.
    (顺带提前说一句:VMP加密之后,所有原始的JXX,JMP,CALL,RET,都会被转为最终形
    式VM层的VM_JMP,所以你看到的所有X86的这些指令,都是衔接用的,一个真实的含
    义都没有).

  • 相关阅读:
    Javascript对象原型prototype和继承
    Javascript(js)使用function定义构造函数
    phpExcel中文帮助手册
    php curl_init函数用法
    nginx启动,重启,关闭命令
    Nginx配置文件详细说明
    Nginx 简单的负载均衡配置示例
    MySQL数据库的同步配置
    ucenter home 视频增加缩略图
    web分词程序和算法
  • 原文地址:https://www.cnblogs.com/Rrouned/p/3597102.html
Copyright © 2011-2022 走看看