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的这些指令,都是衔接用的,一个真实的含
    义都没有).

  • 相关阅读:
    Matlab/Simulink仿真中如何将Scope转化为Figure?
    圆形Camera预览实现
    [转]自定义Drawable实现灵动的红鲤鱼动画(下篇)
    [转]自定义Drawable实现灵动的红鲤鱼动画(上篇)
    EventBus源码分析
    Camera 预览变形问题解决
    使用javacv录像,同时进行讯飞声纹认证
    Camera2必知必会
    Flutter混合工程改造实践
    讯飞语音唤醒SDK集成流程
  • 原文地址:https://www.cnblogs.com/Rrouned/p/3597102.html
Copyright © 2011-2022 走看看