简单软件激活成功教程入门

简单软件激活成功教程入门一、激活成功教程准备:组合一:侦壳language.exe脱壳AspackDie.exe反编译W32Dasm黄金中文版十六进制编辑器UltraEdit组合二:PEidOllydbg二、

大家好,又见面了,我是你们的朋友全栈君。

 

一、激活成功教程准备:

组合一:

侦壳 language.exe

脱壳AspackDie.exe

反编译 W32Dasm黄金中文版

十六进制编辑器 UltraEdit

组合二:

PEid

Ollydbg 

二、激活成功教程软件步骤:
1.查壳

一般软件都会加壳,所以我们想激活成功教程软件,首先必须知道待激活成功教程的软件所加壳的类型。在这之前,我们需要先了解壳的概念。什么是壳?所谓壳就是一个保护程序,将可执行文件压缩,保护软件版权信息,不让人随意改动。最常见的加壳软件有ASPACK,UPX,PE compact等等。

其中查壳工具有language.exe、PEid等等。如图所示,我们便可以知道待激活成功教程软件是采用什么语言编写的,并且加了什么类型的壳。<span role="heading" aria-level="2">简单软件激活成功教程入门

2. 脱壳

所谓脱壳,就是将已经加壳的程序从壳中剥离出来。

首先需要介绍OEP的概念,OEP就是原程序的入口点,也就是真正的入口点。当被加壳的程序运行后,首先运行的是壳程序,壳程序会将原程序还原到内存中并将控制权返还。OEP总会在这期间被脱壳者找到。只要找到这个OEP,就可以将原程序从内存中dump出来,而后针对dump出的程序进行处理,最终得到原程序。一般来说,脱壳就是要找程序的OEP,得到这个OEP,脱壳就完成一半了,剩下的就是修复工作了。

脱壳的方法有很多种,如:单步跟踪法、ESP定律法、二次断点法、末次异常法、模拟跟踪法、SFX自动脱壳法、出口标志法、使用脱壳脚本辅助脱壳、使用脱壳工具脱壳。其中,对于比较简单常见的壳,我们可以脱壳工具来帮助我们解决问题。在这里我就不赘述其他方法了,可以参考http://www.cnblogs.com/einyboy/archive/2012/05/19/2508696.html

 <span role="heading" aria-level="2">简单软件激活成功教程入门

其中AspackDie.exe是一种针对ASpack壳的专业脱壳工具。通过这个工具的脱壳,我们可以得到一个脱壳后的unpacked.exe。
3.反汇编

所谓反汇编(Disassembly),即把目标代码转为汇编代码的过程。其中常用的工具软件有:反编译 W32Dasm、Ollydbg等等。对于转换过来的汇编代码,一般会比较长,且晦涩难懂,一般人往往不知道从哪里入手。在这个过程中,最重要的是寻找到激活成功教程软件的关键点。首先我们可以利用反汇编软件的功能寻找“注册码错误”、“注册成功”等提示性的参考串,缩小我们需要阅读的代码范围。

 <span role="heading" aria-level="2">简单软件激活成功教程入门

在“注册码错误”参考串附近,我们可以尽量寻找call子函数调用和有条件跳转(除了jmp的其它跳:je,jne,jz,jnz)。对于这些关键处,一般就是我们所需要寻找的激活成功教程软件的关键点。但是不尽然,对于具体的问题,我们还是需要通过阅读汇编代码来分析,所以我们大学里面学的汇编语言在这里就很有用了。

实际修改地址(偏移地址)和行地址(虚拟地址)pw32dasmgold反汇编出来的代码由三列组成。第一列为行地址(虚拟地址)。第二列为机器码(最终修改时用ultraedit修改)。第三列为汇编指令。

 <span role="heading" aria-level="2">简单软件激活成功教程入门

其中在上图中,关键点为jne 004ACCB1。从反汇编软件的提示栏我们可以看到这条跳转指令的偏移地址0xacb4b。 

4.修改机器码

由于exe可执行文件是二进制文件,我们可以通过UltraEdit软件转换为十六进制显示。当我们修改了文件中十六进制,就相当于修改了可执行文件的内容。

打开十六进制编辑器 UltraEdit,打开脱壳后的unpacked.exe,直接按ctrl+g,出现对话框,输入0xacb4b(即偏移地址)。

在这里我们将指令jne 004ACCB1对应的机器码)0F8560010000修改为0F8460010000,也就是说我们将指令改为了je 004ACCB1。这样的话,程序在判断跳转条件是,几乎不会弹出“注册错误”的对话框,而总是执行“注册成功”那一段子程序。
<span role="heading" aria-level="2">简单软件激活成功教程入门

常见指令对应机器码

<span role="heading" aria-level="2">简单软件激活成功教程入门

  三、个人心得:

1.不要畏惧困难
2.具体问题具体分析
(1)从哪里来,经过哪里,到哪里去
(2)追根诉源,逐步分析

3.遇到难题,需要坚持
(1)开阔思路,逆向思维
(2)考虑其他情况

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155563.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab作品_葫芦丝最炫民族风

    matlab作品_葫芦丝最炫民族风%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Mostshiningnationalwind//最炫民族风onMatlab%TheModificationisfrom”canon”,notbymefs=44100;%sampleratedt=1/fs;T16=0.125;t16=[0:dt:T16];[tempk]…

    2022年9月23日
    0
  • c 获取UUID_c获取程序运行路径

    c 获取UUID_c获取程序运行路径计算机获取UUIDUUID是通用唯一识别码(UniversallyUniqueIdentifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名…

    2022年8月9日
    16
  • Js保留两位小数_前端小数点保留两位方法

    Js保留两位小数_前端小数点保留两位方法js保留两位小数的方法js保留两位小数的方法如下1、toFixed()方法需注意,保留两位小数,将数值类型的数据改变成了字符串类型2、Math.floor(),不四舍五入,向下取整注意,不改变数据类型3、字符串匹配注意,先将数据转换为字符串,最后再转为数值类型4、四舍五入保留2位小数(若第二位小数为0,则保留一位小数)注意,数据类型不变5、四舍五入保留2位小数(不够位数,则用0替补)注意,数据类…

    2022年8月10日
    7
  • SQL语句的decimal[通俗易懂]

    SQL语句的decimal[通俗易懂]以decimal(18,0)为例:18是定点精度,0是小数位数。decimal(a,b) a指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。 b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从0到a之间的值。默认小数位数是0。、“Decimal为SQLServer、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部分以及小数…

    2022年7月20日
    47
  • LoadRunner简明教程[通俗易懂]

    LoadRunner简明教程[通俗易懂]LoadRunner是什么LoadRunner是一个性能测试工具,它最初是Mercury公司的产品,后背HP收购。LoadRunner常用来做什么l&nbsp;验证某系统在某环境下是否满足性能需求。l&nbsp;通过测试,规划如何达到要求的性能指标。l&nbsp;调整系统环境,进行性能测试,最终使性能达到最优。为什么要使…

    2022年5月24日
    33
  • Pycharm安装cv2失败解决方法「建议收藏」

    Pycharm安装cv2失败解决方法「建议收藏」Pycharm安装cv2失败解决方法python中导入模块importcv2,提示没有该模块,安装提示:Non-zeroexitcode(1),上网查询说是pip版本过低的原因,需要pip版本升级,通过pycharm升级pip,报错AttributeError:‘NoneType’objecthasnoattribute‘bytes’—解决方法:进入终端,使用命令:easy_install-Upippip版本升级后,再次安装cv2,提示ERROR:Couldnotfin

    2022年8月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号