zoukankan      html  css  js  c++  java
  • 转脱壳方法

    先介绍一下脱壳的基本知识吧!
    常见脱壳知识:
                  1.PUSHAD (压栈) 代表程序的入口点
                  2.POPAD  (出栈) 代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近拉!
                  3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP),
                  只要我们找到程序真正的OEP,就可以立刻脱壳。
                      
    开始正式介绍方法啦!!
    方法一:
    1.用OD载入,不分析代码!
    2.单步向下跟踪F8,是向下跳的让它实现
    3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——运行到所选)
    4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!
    5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,这样很快就能到程序的OEP
    6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入
    7.一般有很大的跳转,比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETE的一般很快就会到程序的OEP。

    方法二:
    ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)
    1.开始就点F8,注意观察OD右上角的寄存器中ESP有没出现。
    2.在命令行下:dd 0012FFA4(指在当前代码中的ESP地址),按回车!
    3.选种下断的地址,下硬件访问WORD断点。
    4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP,脱壳

    方法三:
    内存跟踪:
    1:用OD打开软件!
    2:点击选项——调试选项——异常,把里面的忽略全部√上!CTRL+F2重载下程序!
    3:按ALT+M,DA 打开内存镜象,找到第一个.rsrc.按F2下断点,
    然后按SHIFT+F9运行到断点,接着再按ALT+M,DA 打开内存镜象,找到.RSRC上面的CODE,按
    F2下断点!然后按SHIFT+F9,直接到达程序OEP,脱壳!


    方法四:
    一步到达OEP(前辈们总结的经验)
    1.开始按Ctrl+F,输入:popad(只适合少数壳,包括ASPACK壳),然后按下F2,F9运行到此处
    2.来到大跳转处,点下F8,脱壳之!

    方法五:
        1:用OD打开软件!
        2:点击选项——调试选项——异常,把里面的√全部去掉!CTRL+F2重载下程序!
        3:一开是程序就是一个跳转,在这里我们按SHIFT+F9,直到程序运行,记下从开始按F9到程序
         运行的次数!
        4:CTRL+F2重载程序,按SHIFT+F9(次数为程序运行的次数-1次
        5:在OD的右下角我们看见有一个SE 句柄,这时我们按CTRL+G,输入SE 句柄前的地址!
        6:按F2下断点!然后按SHIFT+F9来到断点处!
        7:去掉断点,按F8慢慢向下走!
        8:到达程序的OEP,脱壳!
  • 相关阅读:
    mysql 远程登陆不上
    hdu 5339 Untitled【搜索】
    SqlServer 书目
    passwordauthentication yes
    oracle 11g RAC ocfs2
    Oracle 11g RAC database on ASM, ACFS or OCFS2
    CentOS ips bonding
    Oracle 11g RAC features
    openStack 王者归来之 trivial matters
    openstack windows 2008 img
  • 原文地址:https://www.cnblogs.com/edrp/p/1645457.html
Copyright © 2011-2022 走看看