使用OllyDbg分析ReCrypt v0.80壳的脱壳方法

需积分: 0 0 下载量 80 浏览量 更新于2024-07-01 收藏 831KB PDF 举报
"本章节主要介绍了如何使用OllyDbg对名为UnPackMe_ReCrypt0.80的程序进行脱壳分析,该程序带有较强的反调试特性,且在运行时CPU占用率极高。在尝试直接运行程序后,会遇到错误提示,这可能是由于程序的PE头被修改导致的。" 在本章中,作者首先提到ReCrypt v0.80是一种难以用常规方法如OllyDbg脱壳的保护层,尤其是当配合隐藏插件程序时,程序仍会报错。尽管其他调试器可能也能处理这种情况,但教程的核心是使用OllyDbg。因此,作者选择坚持使用OllyDbg进行调试。 在分析过程中,作者建议首先不加载调试器直接运行程序,发现程序的CPU占用率达到99%,这通常是反调试技术的一种表现,目的是让调试者难以跟踪程序的行为。接着,尝试使用OllyDbg的"File->Attach"功能附加到进程,但未能成功。为了解决这个问题,作者推荐使用专门用于定位OEP(Original Entry Point)的OllyDbg或Patched5版本的OllyDbg。然而,即使如此,程序仍会弹出错误提示,指出PE文件无效。 通过检查区段列表,作者发现主模块只有一个区段,并认为这是由于程序修改了PE头中的`NumberOfRvaAndSizes`字段所致,该字段定义了数据目录结构数组的项数。为了进一步分析,作者设置了内存访问断点,并在运行过程中发现断点在地址405000处触发。尽管如此,删除断点后程序依然报错。 为了深入了解问题,作者决定查看`NumberOfRvaAndSizes`字段的值,通过数据窗口的“Goto-Expression”功能跳转到主模块基地址400000。这部分操作旨在揭示程序的内部工作原理,以便找到正确的入口点并逐步解除保护层,最终实现脱壳。 本章节深入探讨了使用OllyDbg进行逆向工程和脱壳的技巧,特别是针对具有反调试机制的程序。通过逐步分析程序行为、检查PE头信息以及利用特定的调试技巧,读者可以学习到如何应对复杂情况下的脱壳挑战。

按照要求实现进销存系统中的指定操作: 1、建立一个mypos数据库,要求需要有以下五个表: 客户表:客户ID,客户名称,联系方式 商品表:商品ID,商品名称,计量单位,零售价,促销价 库存表:商品ID,数量 销售总表:销售ID,客户ID,销售时间,收银员,应收金额,实收金额,优惠金 额,备注 销售明细表:销售明细ID,销售ID,商品ID,数量,零售价,促销价 2、编写存储过程实现插入商品表:参数为:商品名称,计量单位,零售价,促销 价。存储过程名称为:insert_商品表。 3、利用存储过程在商品表中插入以下5条记录: 商品名称 计量单位 零售价 促销价 --------------------------------------------- 可口可乐 瓶 2.50 2.30 百事可乐 瓶 2.50 2.30 伊利牛奶 盒 5.20 4.80 农夫山泉 瓶 1.50 1.30 涪陵榨菜 袋 1.00 0.80 4、更新商品名称为“伊利牛奶”的促销价为:4.50 5、在客户表中依据客户名称建立索引。索引名为:index_客户名称。 6、建立客户销售视图(包含客户名称,销售时间,收银员,实收金额)视图名称: v_客户_销售。 2023/4/22 16:24 整卷预览 file:///C:/Users/HAUST/Desktop/整卷预览.html 16/17 7、利用触发器实现插入销售明细表时,更新库存数量。触发器名称为:update_库 存数量。 8、备份数据库的结构和数据,导出SQL文件名为:mypos_sjk.sql。 9、将mypos_sjk.sql上传至服务器。

2023-04-23 上传