OD破解一个MFC程序无特征码无字符串软件笔记(简单的练习)

破解文件地址 https://pan.lanzou.com/i0lcf6j

查课之后发现是C++编译器,但不是易语言.....一个MFC的程序!搜索字符串无任何字符串MFC的按钮事件也没有找到!!也许是我记错了,如果有更好的方法评论一波!

《《《MFC程序》》》特征码
RELEASE
特征码:FF 55 14 EB 7F FF 75 0C
特征码来源:MFC42.DLL
DEBUG
特征码:FF 55 FC E9 48 04 00 00 33 C9
特征码来源:MFC42D.DLL

我使用暂停法(不介绍)停到了系统领空(也可以下messagebox断点也许)然后ALT+F9返回到用户,发现返回不回去,然后单步跟一下,然后如果在堆栈窗口返现有返回到XXX右键反汇编窗口跟随..如图:

返回到程序领空之后,在断首下断!!(因为个人觉得,断首应该是个按钮事件代码,断尾是个执行结果)

断首代码:

004028FF      90            nop
00402900  /$  6A FF         push -0x1
00402902  |.  68 373D4000   push CRACKME.00403D37                    ;  SE 处理程序安装
00402907  |.  64:A1 0000000>mov eax,dword ptr fs:[0]
0040290D  |.  50            push eax
0040290E  |.  64:8925 00000>mov dword ptr fs:[0],esp
00402915  |.  83EC 0C       sub esp,0xC
00402918  |.  8B4424 20     mov eax,dword ptr ss:[esp+0x20]
0040291C  |.  56            push esi
0040291D  |.  50            push eax
0040291E  |.  8D4C24 08     lea ecx,dword ptr ss:[esp+0x8]
00402922  |.  C74424 10 000>mov dword ptr ss:[esp+0x10],0x0
0040292A  |.  E8 9D0A0000   call <jmp.&MFC42.#CString::CString_537>
0040292F  |.  8D4C24 24     lea ecx,dword ptr ss:[esp+0x24]
00402933  |.  C74424 18 010>mov dword ptr ss:[esp+0x18],0x1
0040293B  |.  E8 5A0C0000   call <jmp.&MFC42.#CString::CString_540>

  之后分析一波:发现没有关键CALL只有关键条转如图:

此程序跳转之后继续判断注册码和真码的一致性,不行的话就提示别的错误,当然这在外挂中可能是蓝屏格盘的暗桩:一些比较的图片

...................大致这样

破解后如图:

破解后程序链接::https://pan.lanzou.com/i0lcmni

2

原文地址:https://www.cnblogs.com/xuexidememeda/p/8506439.html

时间: 2024-08-29 11:06:20

OD破解一个MFC程序无特征码无字符串软件笔记(简单的练习)的相关文章

OD调试一个小程序的思考总结

最近用OD调试了一些小程序,有一些感悟,和大家分享一下 我用了一个多窗口的的程序(软件的试用),对如何去掉弹窗提供一些自己的看法,为大家提供一些思路 首先单步调试,会出现3个弹窗 1.通过对反汇编代码的分析,发现一个关键跳je,我们将je跳转改为jmp无条件跳转,使其直接跳过弹窗的程序 2.修改窗口句柄的值,学习过win32的人都知道,hOwner是一个父窗口的句柄,将他的值改为push 0x1,使他的子窗口失效 3.修改PE文件,alt+m进入内存映射的窗口并双击PE文件的内部 向下寻找,发现

一个MFC程序的生命历程

[程序的诞生] Application object 产生,内存于是获得配置,初值也设立了. AfxWinMain 执行 AfxWinInit,后者又调用AfxInitThread,把消息队列尽量加大到96. AfxWinMain 执行 InitApplication.这是CWinApp的虚函数,但我们通常不改写它. AfxWinMain 执行 InitInstance.这是CWinApp的虚函数,我们必须改写它. CMyWinApp::InitInstance 'new' 了一个 CMyFra

MFC源码解读(一)最原始一个MFC程序,手写不用向导

从这一篇开始,详细记录一下MFC的源码解读 四个文件,分别为: stdafx.h,stdafx.cpp,hello.h,hello.cpp 代码如下: //stdafx.h #include <afxwin.h> //stdafx.cpp #include "stdafx.h" //hello.h class CMyWinApp:public CWinApp { public: BOOL InitInstance(); }; class CMyFrameWnd:public

MFC六大机制 (1) MFC程序的初始化

本章将先介绍 MFC 的文档/视图结构,讲解实现该结构的数据结构,然后编写一个控制台应用程序来模拟 MFC 的初始化,理清 MFC 初始化的顺序,然后说明如何创建一个最基本的 MFC 应用程序. MFC 最重要的结构 文档/视图结构 MFC 提供了构造Windows应用程序的框架,它不仅为应用程序建立标准的结构,生成一系列启动文件,还提供标准的图形用户界面如菜单.工具栏.状态条等供开发人员在程序中补充完善,开发人员只需要完成针对待定应用的代码即可.其中最重要的框架就是其于文档/视图结构的文档应用

深入跟踪MFC程序的执行流程

来源: http://blog.csdn.net/ljianhui/article/details/8781991 在MFC程序设计的学习过程中最令人感到难受,甚至于有时会动摇学习者信心的就是一种对于程序的一切细节都没有控制权的感觉.这种感觉来源于学习者不知道一个MFC程序是如何运行起来的(即一个MFC程序的执行流程)和MFC程序的设计思想和机制,即使是写过Windows程序的学习者,也会感到非常迷惘并且无从下手.而这种感觉的出现会使大家认为自己离开了书本上的例子就无法设计编制程序.下面我就来说

3. 第一个python程序

学习任何一门语言的第一步,首先要写个'hello world',这算是程序员的一个传统.但在写之前,还有注意几个问题. 首先,python是一门脚本语言,而脚本语言的特点就是:我们写的代码会先由解释器进行编译以后,再去执行.但是当我们的程序运行在操作系统之上时,系统并没有那么智能,能够自动识别出我们要用哪个解释器去解释我们的代码(windows则通过后缀名关联执行程序,所以不用声明也可以,但是我们的代码更多在linux上运行,所以解释器的声明算是必须的),所以,我们必须要声明我们的解释器是什么.

OD学习笔记10:一个VB程序的加密和解密思路

前边,我们的例子中既有VC++开发的程序,也有Delphi开发的程序,今天我们给大家分析一个VB程序的加密和解密思路. Virtual BASIC是由早期DOS时代的BASIC语言发展而来的可视化编程语言. VB是由事件驱动的编程语言:就是在可视化编程环境下我们可以绘制一些窗体,按钮,编辑框等控件,然后为这些控件所可能引发的事件如按钮被单击或者被双击编写对应的处理代码. 所有的VB程序几乎都是依赖于一个外部的动态链接库.这个动态链接库的名字是:MSVBVM60.dll(可能有多个版本,但名字都差

Android应用程序框架之无边界设计意图

Android的应用框架的外特性空间的描述在SDK文档有十分清楚的描述,Android应用的基本概念,组件生命周期等等有详细的描述.在外特性空间中,Android提供了Activity,Service,Broadcast receivers,Content Provider,Intent,task等概念,我在这里不讨论这些概念定义,因为SDK文档已经讲得够详细. 在阅读SDK文档和研究Activity这个概念时,我感觉到了在Android中若隐若现的Android自由无边界这个设计意图.Andr

C#中多线程写DataGridView出现滚动条导致程序卡死(无响应)的解决办法

因为写的程序涉及到多线程维护一个DataGridView,然后蛋疼的发现经常卡死...一开始以为是读写冲突的原因,然后就加了锁,问题依旧...然后发现每次出现滚动条的时候程序才会无响应,所以感觉应该是滚动条出现问题... 网上说用Invoke就可以解决问题,试了一下,可能是我使用的方法不对,还是没有解决问题-_-|| 最后使用InvokeRequired解决的... 因为我的修改DataGridView的代码是写在窗体里面的,so... private static object obj = n