X86逆向2:提取按钮通杀特征码
本章我们将学习特征码的提取与定位,特征码是软件中一段固定的具有标志性的代码片段,特征码的用途非常广泛,最常见的就是杀毒软件的查杀了,查杀就是根据特征码定位技术实现的,再比如木马的免杀也是修改了特征码的一些特征片段而躲避查杀的啦。
本章的内容对于软件破解非常的有用,比如你需要破解一个程序,但你无法定位到关键按钮的事件中去,此时你可以先查看待破解程序使用了那种编程语言来写的,然后自己用对应的编程语言编写一个简单的小程序,并放入容易搜索到的字串,然后提取针对特定语言特定版本的通杀特征,最后应用到需要破解的程序中去。
------------------------------------------------------------
本章难度:★☆☆☆☆☆☆☆☆☆
本章课件:CM_02.zip
------------------------------------------------------------
MFC: sub eax,0a
VC++6.0: sub eax,0a
VB语言: 81 6C 24
易语言: FF 55 FC 5F 5E或 (e-debug)
万能断点: F3 A5 8B C8 83 E1 03 F3 A4 E8 Z(User32模块下断)
Delphi: 74 0E 8B D3 8B 83 ?? ?? ?? ?? FF 93 ?? ?? ?? ??
蓝屏保护特征码: 55 8B EC BB 06 00 00 00
蓝屏防御特征码: 55 8B EC 81 EC 14 00 00 00 68 0C 00 00 00
1.先来看一下这个CM例子,当我们点击按钮1的时候,会提示一个MessageBox信息框,而点击按钮2则程序没有反映,我们现在要做的就是通过按钮1提取到按钮事件的特征码,然后下断点并定位到按钮2的按钮事件中。

2.打开OD直接将这个CM拖入OD中,默认会停在程序的OEP位置,这次我们不用字符串来找了换个思路,我们下一个MessageBox弹窗断点,直接选择【设置API断点】,选择消息框,然后选择MessageBoxA就可以了。

3.接着我们按下【F9】让程序跑起来,然后点击CM程序中的【弹出窗口】按钮,发现OD断在了系统领空,系统领空的东西是不能改的,我们直接出这个CALL。

4.通过单步【F8】出CALL后,看到以下代码,并没有段首,我们继续F8出这个call.

5.再次出CALL ,并没有首的符号,这里还在函数的内部,我们继续单步到【retn】出这个call.

6.最后看到了。

7.直接断首下一个【F2】断点,然后运行程序,再次点击弹窗按钮,OD再一次断下了。

8.这只是一个独立的弹窗过程并不是按钮的按钮事件,按钮事件一定是调用了这个过程,所以我们需要找到是谁执行了这里的代码。
由于,调用call指令会将当前指令的下一条指令的地址压入栈存储,所以我们就直接观察堆栈中的参数就能够定位到按钮事件的上一层代码的位置了。

9.OD直接搜索这个地址,看一下是不是有call 调用了他。

10.果然,我们果断在这里下一个【F2】断点,然后直接【F9】运行程序。

11.点击【测试定位效果】按钮,程序会被断下,这更能确定,这就是按钮的调用源头。最后提取这段通杀特征【FF 55 FC 5F 5E】。

12.直接按下【F7】,进入按钮二的核心代码处。

13.如果要使用特征码定位的话,可以在OD反汇编窗口按下【ctrl + B】,直接搜索即可。

总结:学会了这一个小技能,对于软件的破解大有帮助,虽然简单,但很实用
写教程不容易,转载请加出处,您添加出处,是我创作的动力!
X86逆向2:提取按钮通杀特征码的更多相关文章
- Postsharp 破解工具(通杀版,持续更新)
2019.04.18 重要说明 VS2019 正式版已经发布了,Postsharp v6.2.2-Preview(预览版)也开始支持VS2019.不过截至目前,该预览版还不是特别稳定,因此提醒下大家在 ...
- 通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击
通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击 大家肯定知道前几天刚爆出来一个linux内核(Android也用的linux内核)的dirtycow漏洞.此洞可 ...
- [.NET] [.net 脱壳工具]Sixxpack 最新脱壳机 通杀Sixxpack全版本by -=Msdn5 君临=
[.net 脱壳工具]Sixxpack 最新脱壳机 通杀Sixxpack全版本by -=Msdn5 君临=- 识别方法: 如果无法调戏,请上传附件艾特我.............发帖不易啊..身处大西 ...
- DedeCMS全版本通杀SQL注入漏洞利用代码及工具
dedecms即织梦(PHP开源网站内容管理系统).织梦内容管理系统(DedeCms) 以简单.实用.开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,近日,网友 ...
- 飘逸的python - 极简的二叉树前中后序通杀函数
对于任一结点.能够按某种次序运行三个操作: 訪问结点本身(N) 遍历该结点的左子树(L) 遍历该结点的右子树(R) 用来表示顺序,即,前序NLR/中序LNR/后序LRN. 以下我们用namedtupl ...
- CVE-2017-11882:Microsoft office 公式编辑器 font name 字段栈溢出通杀漏洞调试分析
\x01 漏洞简介 在 2017 年 11 月微软的例行系统补丁发布中,修复了一个 Office 远程代码执行漏洞(缓冲区溢出),编号为 CVE-2017-11882,又称为 "噩梦公式&q ...
- 【渗透实战】那些奇葩的WAF_第二期_无意发现通杀漏洞,空字节突破上传!
/文章作者:Kali_MG1937 CSDN博客号:ALDYS4 QQ:3496925334 未经许可,禁止转载/ 该博文为本人18年左右的渗透记录,文法粗糙,技术含量极低,流水账文章,且今日不知为何 ...
- r0capture安卓应用层通杀脚本-使用文档
本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! r0capture安卓应用层通杀脚本-使 ...
- X86逆向15:OD脚本的编写技巧
本章节我们将学习OD脚本的使用与编写技巧,脚本有啥用呢?脚本的用处非常的大,比如我们要对按钮事件进行批量下断点,此时使用自动化脚本将大大减小我们的工作量,再比如有些比较简单的压缩壳需要脱壳,此时我们也 ...
随机推荐
- 19.顺时针打印矩阵 Java
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...
- LeetCode687----最长同值路径
给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值. 这条路径可以经过也可以不经过根节点. 注意:两个节点之间的路径长度由它们之间的边数表示. 示例 1: 输入: 5 / \ 4 5 / ...
- 基于MybatisUtil工具类,完成CURD操作
package loaderman; import java.io.IOException; import java.io.Reader; import java.sql.Connection; im ...
- easyUI之Dialog(对话框窗口)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- input 表单
1:datalist元素,一般与input组建配合使用,以定义可能输入的值,例如: <!DOCTYPE html> <html lang="en"> < ...
- Ubuntu14.04+安卓系统4.3+JDK6编译源码
本博客主要参照: https://www.jianshu.com/p/ecb9c132030f https://blog.csdn.net/gobitan/article/details/243674 ...
- java 注解方式 写入数据到Excel文件中
之前有写过一点关于java实现写Excel文件的方法,但是现在看来,那种方式用起来不是太舒服,还很麻烦.所以最近又参考其他,就写了一个新版,用起来不要太爽. 代码不需要解释,惯例直接贴下来: publ ...
- 实验一 绘制任意斜率的直线段 | 使用VS2017工具
这世界上有很多坑,注定有些坑是要填的.下面我就用VS2017使用MFC对这个课堂实验进行填坑. 一.实验目的 (1)掌握任意斜率直线段的重点 Bresenham 扫描转换算法: (2)掌握 Cline ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-5.开源工具的优缺点选择和抽象方法的建议
笔记 5.开源工具的优缺点选择和抽象方法的建议 简介:讲解开源工具的好处和弊端,如pageHeper分页拦截器,tk自动生成工具,抽象方法的利弊等 1.开源工具 好处: ...
- Android提升Gradle编译速度或减少Gradle编译时间.md
目录 Android如何提升Gradle编译速度或减少Gradle编译时间 最终优化方案 优化效果比对 将所有项目源码,各种缓存临时目录都移动到高性能SSD磁盘上 gradle.properties ...