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

简单软件激活成功教程入门一、激活成功教程准备:组合一:侦壳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)考虑其他情况

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 关于hashlib哈希算法的一些个人笔记

    关于hashlib哈希算法的一些个人笔记摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。hashlib提供了常见的摘要算法,具体包括md5、sha1、sha224、sha256、sha512等,我们一般用的比较多是md5。注意加密是单向的。通过hashlib,可以把任意长度的字符串转换成固定长度的加密串,通常我们一般用hexdigest(),也就是…

  • [cocos2dx注意事项014]一个用于cocos2dx对象智能指针模板

    [cocos2dx注意事项014]一个用于cocos2dx对象智能指针模板

  • java socket通讯中文乱码问题

    java socket通讯中文乱码问题话不多说上代码publicvoidrun(){//客户端一连接就可以写数据给服务器了newsendMessThread().start();super.run();try{//读Sock里面的数据InputStreams=socket.getInputStream();byte[]buf=newbyte[1024];

  • 前端常见跨域解决方案

    前端常见跨域解决方案前端常见跨域解决方案

  • Linux卸载命令_Linux系统中如何卸载东西

    Linux卸载命令_Linux系统中如何卸载东西微信设置水滴昵称,个性中带点萌第一步,apt-getremovexxx;就是卸载xxx 或者apt-getremove–purgexxx;卸载xxx并清除配置。 这两条命令对于依赖则是不管的。因为别的软件可能和此软件有相同的依赖,当然对依赖不能管了。第二步,apt-getautoremove;就是来对付那些不再被“依赖”的包,自动检测并删除他们(任何时候都可以执行此条命令)。 autoremove:isusedtoremovepackagesthat

  • 关于Python3的import问题(pycharm可以运行,命令行import错误)

    关于Python3的import问题(pycharm可以运行,命令行import错误)以前从来没有写过特别多的代码,这次在阅读论文的时候跑别人的代码的时候出现了很多import的问题,这里我想跟大家分享一下,我在Ubuntu系统,使用的是anaconda3,版本为3.6,我一般会在pycharm上跑代码,但是有时候pycharm上跑通的代码,在命令行下总出现import的问题,所以这里来总结一下,我就举个简单的例子吧!一、同一目录下的import下面是我的文档的结构:你可以…

发表回复

您的电子邮箱地址不会被公开。

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