反汇编破解入门

最近看《加密与解密》这本书,他的第一个例子是用查找字符串的方式完成的,但是现在很多软件无法用这种方法完成。作为一位菜鸟,想研究一下利用API断点的方式完成反编译。就用了这个最简单的序列号保护程序作为练手工具了。

首先打开Ollydbg打开要破解的软件,添加API断点。当然之前已经运行过软件了,大致知道弹窗类型,于是就很自然的选择了MessageBoxA()与MessageBoxW()(因为不知道字符类型嘛)。

然后运行,随意输入序列号,发现断点断到了这里:

好吧,这里应该就是传说中的MessageBox()了吧。现在沿着堆栈返回到Call这个函数的地方:

Ollydbg果然是个好东东,整个函数过程都标注出来了。现在继续往上面走,看看到底是哪个地方调用了这个函数。结果我往上面走遇到两个地方:

作为一名菜鸟,我在这两个地方耗费了好久的精力,结果毫无收获。其实这两个函数不是判断函数。我本能的感觉上面就是判断函数(好吧我每次写代码都是这么判断的)。但是其实不是。继续往上面看,有个setwindowpso().想来想去,这里可能还是为了初始化Messagebox()。其实后来我发现我也是逗了,因为抬头一看寄存器窗口,就有:

我靠,这里明显还有准备写入的"WrongXXX"什么的嘛。明显这里还是准备MessageBox()的地方。

好吧,现在继续往上走,彻底走出这个调用。

里有多个调用的地方,一个个试试,然后多下几个断点。看看是哪个地方调用的:

重新运行,发现断点断到了这里:

恩恩,这里好像是序列号程序自己的函数,可惜我功力尚欠,实在搞不懂为啥明明直接弹窗的地方特地有个Call- -。

沿着跳转向上,到了这里:

其实这里都可以看出来了,明显这里是多个判断的地方,出错弹窗。就在上面的地方断点,如果担心不行的话,就多设几个断点呗。但是这里就麻烦了,必须但不进入,嘿嘿。这种300KB的小程序还好,大程序就讨厌了。好吧,其实明显上面的那个是必须经过的,那么就是他了。于是,知道了用户名:

输入正确的用户名,再次运行,来到另一个认证密码的函数,得到

此时发现,咦咦咦咦咦咦!!!????怎么这么熟悉啊?这熟悉的味道,这熟悉的味道,这熟悉的声音,不就是

好吧,我思维定式了,总以为函数开始的时候是PUSH。如果按照书上的方法,直接一个参考字符串就解决了,我居然花了两天的时间。0.0

就当做积累经验了。。。。。。。

时间: 2024-10-11 21:54:58

反汇编破解入门的相关文章

软件破解入门(暴力破解CrackMe)

所谓暴力破解,就是通过修改汇编代码进而控制程序的运行流程,达到不需注册码也能正常使用软件的目的.相对于解出算法进而编写注册机,暴破的技术含量是比较低的.但也正是因为一本05年的杂志上介绍“暴力破解”的文章,让我入了这个大坑.近来想重拾调试器,就先从最简单的CrackMe入手,熟练一下各工具方法. 下载CrackMe3文件(我用的是看雪<加密与解密>中的CFF CrackMe #3 程序  http://pan.baidu.com/s/1dD9v9x3 ). 1.查看此程序是否加壳.加壳的话还得

使用反汇编破解 Windows 下Markdown 编辑器 MarkdownPad 2

MarkdownPad 是 Windows 平台下一款优秀的 Markdown 编辑器,本文简单介绍 Markdown 以及使用一种方法破解 MarkdownPad 使其升级到专业版.该方法仅限于教育用途,我不为滥用该方法导致的商业纠纷负责! Markdown 简介 Markdown 是一种轻量级标记语言,有着及其简单.易学易用的语法,任何人在几分钟之内都可以掌握其基本语法并用来写作,你可以在 这里 学习markdown的基本语法.其创始人 John Gruber 下面的话高度概括了 Markd

简单软件破解入门

一.破解准备: 组合一: 侦壳 language.exe 脱壳AspackDie.exe 反编译 W32Dasm黄金中文版 十六进制编辑器 UltraEdit 组合二: PEid Ollydbg 二.破解软件步骤: 1.查壳 一般软件都会加壳,所以我们想破解软件,首先必须知道待破解的软件所加壳的类型.在这之前,我们需要先了解壳的概念.什么是壳?所谓壳就是一个保护程序,将可执行文件压缩,保护软件版权信息,不让人随意改动.最常见的加壳软件有ASPACK,UPX,PE compact等等. 其中查壳工

2016、突入!

今年8月,在之前的博客上发表了近期4个月的目标,将原文摘抄如下: · Win32汇编,<琢石成器—Windows 环境下32位汇编程序设计> · 破解相关,<加密与解密> · 英语,赖世雄 - 美语从头学系列 · 数学,同济大学 <高等数学第六版> Win32汇编学习的主要目的还是从汇编层面来了解windows程序运行的原理,并且对于一些程序中常用的API调用做个了解.之前的MFC学习中对于数据库.多线程.界面操作等一些知识有了基本的了解,所以这本书没有很认真的去研究.

WIFI:802.11协议帧格式

802协议桢格式 802.11和Wi-Fi技术并不是同一个东西.Wi-Fi标准是802.11标准的一个子集,并且是Wi-Fi联盟负责管理 802协议桢格式: 协议 发布年份/日期 Op.标准频宽 实际速度 (标准) 实际速度(最大) 半径范围(室内) 半径范围(室外) Legacy 1997 2.4-2.5 GHz 1 Mbit/s 2 Mbit/s  ?  ? 802.11a 1999 5.15-5.35/5.47-5.725/5.725-5.875 GHz 25 Mbit/s 54 Mbit

WinIo驱动级键盘模拟编程

WinIo驱动级键盘模拟编程 前天无聊,翻翻自己的兴趣项目文件夹,发现了这个放下很久的项目!那是大三时候的事了.当时是为了提高我魔兽三的按键速度,用了个叫移花接木的软件,把键盘的键位改了.的确是有所帮助,但这是共享软件,用40次就不能再用了除非注册.于是乎就有了做一个类似的软件出来,在网上搜索了一把发现WinIo模拟按键是最可靠的了,就决定向这方向钻进去了.哎...技术不够,看了很久的技术文章和代码也只是了解了一点,而且那时MFC技术还没到家根本做不出什么能用的东西来...后来听个兄弟说:反汇编

黑客必读著作与实用参考书列表

涉及以下几个方面:C/C++汇编操作系统反汇编破解缓存溢出 q Books on C/C++: ·               The C Programming Language by Brian W.Kernighan and Dennis M. Ritchie. Prentice Hall, 1988. The author’s descriptionof C as defined by American National Standard Institute (ANSI), also c

破解完全入门篇

第一章--前言 好多哥们儿说看教程跟老大的书都看不太明白,所以,我尽量把话说到最容易理解的份上,本文写给那些刚入门和尚未入门的朋友们... 目录 no.1------------------前言(说明一下) no.2------------------汇编语言 no.3------------------Windows程序 no.4------------------调试器及相关工具入门 no.5------------------破解原理 no.6------------------初级破解实

反汇编入门

写了一个简单的C语言代码: ? 1 2 3 4 5 6 7 8 9 #include<stdio.h> int main() {     int a,b,c;     a=1;     b=2;     c=a+b;     printf("%d",c); } 使用arm-linux-objdump -d 反汇编 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 00000000 <main>:    0: