• 吾爱破解培训第一课个人笔记


    【个人笔记】

    《吾爱破解培训第一课:破解基础知识之介绍常见工具和壳的特征》讲师:Hmily

     

    0x00 前提

    目的:认识、辨别普通的壳,不同的壳有不同的目的。

    网站内资源准备好:吾爱破解虚拟机环境、脱壳例子下载、视频课程。

     

    l是日志,e是模块信息,包含程序加载的完整模块和路径,m是内存和地址,t是线程,w是窗口,h是句柄信息,c是反汇编窗口,p记录管理员修改信息,k是调用的堆栈,b断点。

     

    把exe文件拖入exeinfope中查看是哪种语言编译的,是否加壳。

    全文仅供个人记录使用,如有疏漏敬请包容。

     

    0x01 程序是什么语言编译的


    从目前国内接触到程序看,比较流行的编译器有:VC系列、易语言、.NET、Delphi,一些曾经用的很多但渐渐少了有:VB、ASM、BC++,还有一些用的比较少的有:AutoIt、PB、QT等,下面提供一些由论坛同学编译出来的试炼品,结合实例来看看"入口点代码"、"程序区段"和"加载模块"等特征。

    VC6编译无壳程序

    查看入口点代码如下:


    PEID查看区段如下:


    VC6特点:入口点代码是固定的代码,入口调用的API也是相同的,其中有的push地址不同程序可能不同;区段有四个也是固定的.text、.rdata、.data和.rsrc。

    VS2008和VS2013编译无壳程序
    OllyDbg查看入口点代码如下:




    PEID查看区段如下:


    VS特点:入口点只有两行代码,一个CALL后直接JMP,第一个CALL进去后调用的API也是相同的;区段相对于VC6多了一个.reloc。

    易语言编译无壳程序(独立编译和非独立编译)

    (由于易语言独立编译是调用VC的链接程序编译的,所以从区段和入口代码特征和VC相同,下图为非独立编译带运行库)
    OllyDbg查看入口点代码如下:


    查看模块:


    查看核心代码:


    易语言特点:可以从程序里找一些call的调用最终都会走到上面核心代码图位置(文字不太好表达),这个方法可以区分和VC的区别,非独立编译比较容易识别,入口特征和模块特征都有krnln.fnr。

     

    Delhpi编译无壳程序

     

     

     

     

     

    .net特征看模块,加载了很多的.net库

     

     

    0x02 部分壳的特征

    Aspack

    区段:

    入口特征:

     

     

    UPX

     

    区段:被压缩过,压缩结果是UPX0和UPX1,名称可以随便改,基本就是三个

    入口特征:

     

     

     

    Themida

    区段:后两个名称随机

     

     

     

    Vmprotect:

    主要看区段特征:

    入口特征显得杂乱无章

     

    Shielden

    区段:

    入口(经跳转和分析过的):

     

     

     

    加壳技术可以方便我们对程序进行保护、压缩等措施,而脱壳技术则方便我们对程序进行更大程度上的修改。

    附:【初学者教程】破解基础知识之认识壳与程序的特征(本文有摘抄)

    https://www.52pojie.cn/thread-234739-1-1.html

  • 相关阅读:
    Linux系统开发笔记
    软件测试 | Chrome 浏览器+Postman还能这样做接口测试 ?
    yum 在线安装 nginx
    画图3D Paint 3D工作区黑屏
    InfluxDB 存储结构、读、写
    纯前端保存下载文件到本地
    umijs 配置的一些用法和解释 记录
    mongodb在双活(主备)机房的部署方案和切换方案设计
    mongodb oplog详解和格式分析
    麒麟操作系统上安装docker并加载镜像
  • 原文地址:https://www.cnblogs.com/DorinXL/p/12246223.html
Copyright © 2020-2023  润新知