WinRAR分析

1样本概况

1.1 应用程序信息

应用程序名称:WinRAR 6.11.0

MD5值:F2BD2E3D8B7C7C8EEFA2B28E3280EDA3

SHA1值:DC2B378B27D1AFDE576F067B2B0DE27EC377A113

简单功能介绍:解压缩文件

1.2 分析环境及工具

系统环境:win7 32位

工具:Ollydbg、010Editor、Exeinfo、Spy++

1.3 分析目标

去掉弹窗广告

2.具体分析过程

2.1 分析过程

2.1.1 程序基本信息

使用Exeinfo查看程序的信息,发现其连接器是14.3,对应的应该是VS2022:

再看其导入表,判断其应该是一个SDK程序:

另外,为了后面分析方便,使用010Editor修改其基址为固定的

2.1.2 使用OD进行分析

    先运行程序,测试程序的运行步骤,发现其弹出主页面后,会马上弹出一个广告窗口:

    然后将程序拖入OD开始进行分析,因为会弹出窗口,所以Ctrl+G搜索创建窗口的函数:CreateWindowExA/W。然后都下断点,让程序跑起来:

    运行之后发现,在CreateWindowExW处一直在中断,然后我们看栈区域:

    发现其Class一直在变,我们猜测是在创建程序主页面的各个窗口,我们使用Spy++查看主程序的各个窗口类名,发现能够对的上,说明猜测正确。

因此,我们要想去掉弹窗广告,就需要找到弹出广告窗口的位置,可以使用Spy++,先查看其窗口类名:

发现其窗口类名是:RarReminder, 然后继续运行程序,同时观察栈区对应的窗口类名,就能找到关键位置:

当栈区的窗口类名也是RarReminder时,说明将要创建该窗口,我们看K窗口中的栈回溯:

找到创建弹窗的函数后,我们发现调用函数的上面有一个网站,猜测其可能是广告的网址,经过验证确定其实弹出广告的网址。又在下面发现push的窗口类名的参数是:RarReminder,单步调试之后,确定0x004C4E4E调用的函数就是弹出广告的函数。要想去掉广告 ,我们可以跳过该函数调用,跳到该函数的下一行:

修改完之后,右键保存修改,运行程序,发现果然没有了弹窗,目标达成。

在找弹出窗口的函数时,我们知道窗口类名是RarReminder后,也可以尝试用插件搜索字符串,这里发现也能够找到关键地方:

3.总结

在该程序分析过程中,主要是需要找到弹出广告的函数,找到之后跳过就行了。下完窗口窗口的断点后,需要对栈区进行仔细观察。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: glibc是GNU计划的一部分,是一套C语言标准库。内存管理是其中的一个重要组件。而ptmalloc2是glibc内存管理的一种算法,用于分配和释放内存块。 要下载glibc内存管理ptmalloc2源代码,可以通过以下几个步骤进行: 1. 打开GNU官方网站,找到glibc的相关页面,通常在https://www.gnu.org/software/libc/ 。 2. 在该页面上,找到下载链接或源代码仓库地址,这个地址通常会提供给用户下载最新版本的glibc。 3. 点击下载链接或者复制源代码仓库地址,将其粘贴到浏览器地址栏中。 4. 打开该链接后,您将能够下载一个压缩文件(通常是tar.gz或tar.bz2格式),包含了glibc的全部源代码。 5. 下载完毕后,解压压缩文件。您可以使用解压软件,如WinRAR或7-Zip。解压缩后,您将获得一个包含许多目录和文件的文件夹。 6. 在解压后的文件夹中,找到与ptmalloc2相关的源代码文件。通常这些文件会位于glibc源代码的malloc目录下。 7. 在malloc目录中,您将能够找到ptmalloc2源代码文件,这些文件名通常以"ptmalloc"或"ptmalloc2"开头。 以上是下载glibc内存管理ptmalloc2源代码的一个大致过程。通过该源代码,您可以深入了解ptmalloc2算法是如何在glibc中实现内存分配和释放的。但是请注意,阅读和理解源代码需要一定的计算机编程经验和相关背景知识。 ### 回答2: glibc是Linux操作系统中非常重要的一个C标准库,ptmalloc2是glibc中负责内存管理的模块之一。该模块负责动态分配和释放内存,并提供了多种内存分配器算法。 ptmalloc2源代码分析是深入研究该模块源代码的过程。通过分析ptmalloc2源代码,可以了解到它的实现原理、内存分配算法以及性能优化等方面的细节。 在下载ptmalloc2源代码之后,我们可以通过阅读和分析源代码来了解其内部结构和工作原理。在源代码中,我们可以找到一些关键的数据结构和函数,如malloc、free、realloc等。这些函数实现了动态内存分配和释放的基本功能。 通过阅读源代码,我们可以学习到ptmalloc2内存管理器的特点和优势。例如,ptmalloc2采用了分离的空闲链表来管理不同大小的内存块,利用了空闲块合并和分割等技术来提高内存的利用率和性能。此外,源代码还可能包含一些与内存操作相关的底层函数和宏定义。 分析ptmalloc2源代码不仅可以帮助我们理解其内部实现,还可以为我们定位和解决内存管理相关的问题提供指导。如果遇到性能问题或者内存泄漏等现象,我们可以通过分析源代码来找到问题的根源,并提出相应的优化措施。 总之,通过对glibc内存管理模块ptmalloc2的源代码进行分析,我们可以深入了解其实现原理和内部机制,为我们在实际项目中正确、高效地使用内存管理功能提供帮助。 ### 回答3: glibc是Linux系统上使用最广泛的C语言函数库,而ptmalloc2则是glibc中负责内存分配和管理的部分源代码。 首先,需要明确的是,glibc的ptmalloc2源代码并不是一个独立的项目,而是glibc库中的一部分。如果需要下载该源代码,可以通过访问glibc的官方网站或者使用git等工具来获取。 分析glibc内存管理ptmalloc2源代码可以帮助开发者更好地理解和使用glibc的内存分配功能。ptmalloc2实现了一种基于堆的内存分配算法,它采用了多种策略来管理内存,如bin和fastbin等。源代码的分析可以帮助我们了解这些策略的具体实现细节,以及它们在不同场景下的行为。 要对ptmalloc2源代码进行分析,可以首先阅读相关文档,如glibc的官方文档或论文。 掌握ptmalloc2的整体架构、数据结构和算法等基本知识后,可以通过逐行或逐函数地阅读源代码来深入理解其内部工作机制。可以关注一些关键函数的实现,如malloc、free、realloc等,以及相关的数据结构和算法。 此外,还可以参考开源社区中对ptmalloc2源代码的分析和解读,如一些博客文章、论文或代码注释等。这些资源通常提供了对源代码更深入的解释和讨论,对于理解ptmalloc2的实现细节会有所帮助。 总之,通过下载并分析glibc内存管理ptmalloc2源代码,可以帮助我们更好地理解和使用glibc库中的内存分配功能。同时,也可以通过分析源代码来提高我们的代码调试和性能优化能力,并为开发更高效的内存管理算法提供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值