第七课 实战文件注册机制「建议收藏」

第七课 实战文件注册机制「建议收藏」                实战文件注册机制【盲人摸象】故名思意就是借助一些我们常用的按钮事件,API断点,去高速有效的锁定此课主要是以回顾和巩固以上六课我们所学的知识,当然这课我奉劝大家还是认真的学习,尤其是以后想靠外挂赚钱的同学,这课学得多自然就会得多不要认为我就是一味的靠我的经验,以下就是一系列调试的技巧 这课主要是观看MOV的赋值,以及寄存器的变化,从而达到激活成功教程这也是以后在激活成功教程带有V…


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

                
实战文件注册机制【盲人摸象】
故名思意就是借助一些我们常用的按钮事件,API
断点,去高速有效的锁定
此课主要是以回顾和巩固以上六课我们所学的知识,当然这课我奉劝大家
还是认真的学习,尤其是以后想靠外挂赚钱的同学,这课学得多自然就会得多
不要认为我就是一味的靠我的经验,以下就是一系列调试的技巧
 
这课主要是观看MOV
的赋值,以及寄存器的变化,从而达到激活成功教程
这也是以后在激活成功教程带有VM
代码的程序时必须做得到的初级知识
废话就不多说,课程开始
 
 
 
Borland C++ 1999
 
 
00401620 > $ /EB 10         jmp short Unpacked.00401632
00401622   . |66:623A       bound di,dword ptr ds:[edx]
00401625   . |43            inc ebx
00401626   . |2B2B          sub ebp,dword ptr ds:[ebx]
00401628   . |48            dec eax
00401629   . |4F            dec edi                                  ;  ntdll.7C930228
0040162A   . |4F            dec edi                                  ;  ntdll.7C930228
0040162B   . |4B            dec ebx
0040162C   . |90            nop
0040162D   .-|E9 98D06300   jmp Unpacked.00A3E6CA
00401632   > \A1 8BD06300   mov eax,dword ptr ds:[0x63D08B]
00401637   .  C1E0 02       shl eax,0x2
0040163A   .  A3 8FD06300   mov dword ptr ds:[0x63D08F],eax
0040163F   .  52            push edx                                 ;  ntdll.KiFastSystemCallRet
00401640   .  6A 00         push 0x0                                 ; /pModule = NULL
00401642   .  E8 37AD2300   call <jmp.&KERNEL32.GetModuleHandleA>    ; \GetModuleHandleA
00401647   .  8BD0          mov edx,eax
00401649   .  E8 3A932200   call Unpacked.0062A988
0040164E   .  5A            pop edx                                  ;  kernel32.7C817027
0040164F   .  E8 98922200   call Unpacked.0062A8EC
00401654   .  E8 6F932200   call Unpacked.0062A9C8
 
 
 
BC++
的按钮事件是和DELPHI
对应,是一样的
他们查找字符串,都是同样采取查找ASCII
码搜索
 
重启验证必须在程序还未完全初始化之时,找到重启后的关键地址,进行激活成功教程
 
00420813  |.  6A 00         push 0x0                                 ; /ExitCode = 0
ExitCode
就是退出代码的意思
 
 
00402D8B   .  50            push eax                                 ; /pHandle = FFFFFF01
00402D8C   .  68 5BD26400   push Unpacked.0064D25B                   ; |SOFTWARE\EasyBoot Systems\UltraISO\5.0
00402D91   .  68 01000080   push 0x80000001                          ; |hKey = HKEY_CURRENT_USER
00402D96   .  E8 51942300   call <jmp.&ADVAPI32.RegOpenKeyA>         ;
 
RegOpenKeyA    
打开注册表的意思
 
 
00402E1C   > \FF75 C8       push dword ptr ss:[ebp-0x38]             ; /hKey = 000000D8 (window)
00402E1F   .  E8 AA932300   call <jmp.&ADVAPI32.RegCloseKey>         ;
 
RegCloseKey   
关闭注册表
 
既然是
注册表
类型重启,就必须读取注册表,而读取信息后,就会采用RegCloseKey
关闭注册表,从而我们可以判断,RegCloseKey
以下就是关键代码,所以我们必须得留意所有跳过了CALL
的判断型跳转
 
通常我们需要注意的语句有这种类型的,也就是一个CALL
,出来之后,把值赋值给EAX
这是任何开发语言都有的,所以以下就是我们需要留意的啦
 
 
 
00402FE9   .  A3 B0D76400   mov dword ptr ds:[0x64D7B0],eax
00402FEE   .  8B15 B0D76400 mov edx,dword ptr ds:[0x64D7B0]
00402FF4   .  85D2          test edx,edx                             ;  Unpacked.00B460B4
 
 
、
0047194D  |.  68 03A86600   push Unpacked.0066A803                   ;  uikey.ini
00471952  |.  68 E07E6C00   push Unpacked.006C7EE0                   ;  C:\Program Files\UltraISO
00471957  |.  68 FDA76600   push Unpacked.0066A7FD                   ;  %s\%s
 
注意UIkey.ini
 
00471AE4  |.  52            push edx                                 ; /pHandle = 00090000
00471AE5  |.  68 43A86600   push Unpacked.0066A843                   ; |SOFTWARE\EasyBoot Systems\UltraISO\5.0
00471AEA  |.  68 01000080   push 0x80000001                          ; |hKey = HKEY_CURRENT_USER
00471AEF  |.  E8 F8A61C00   call <jmp.&ADVAPI32.RegOpenKeyA>         ; \RegOpenKeyA
 
在一次读取注册表,从而可以更加的肯定,此为启动前的关键CALL
 
0012F6CC   0066A873  ASCII “Registration”
0012F6D0   00000000
0012F6D4   0012FAF0
0012F6D8   0012F7E4  ASCII “Jiack”
 
读取到了我的用户名
 
00471B8B  |> \FF75 DC        push [local.9]                           ; /hKey = 000000D8 (window)
00471B8E  |.  E8 3BA61C00    call <jmp.&ADVAPI32.RegCloseKey>         ; \RegCloseKey
 
关闭了注册表
 
00471D89  |.  FF75 08        push [arg.1]
00471D8C  |.  68 7C7A8200    push Unpacked.00827A7C                   ;  Jiack
00471D91  |.  E8 42921B00    call Unpacked.0062AFD8
00471D96  |.  83C4 08        add esp,0x8
00471D99  |.  FF75 0C        push [arg.2]
00471D9C  |.  68 807B8200    push Unpacked.00827B80                   ;  1111111111111111
00471DA1  |.  E8 32921B00    call Unpacked.0062AFD8
 
准备压入注册名和假码
 
 
00471DA9  |.  B8 01000000    mov eax,0x1    
此时EAX,
赋值为1
00471DAE  |>  8BE5           mov esp,ebp
00471DB0  |.  5D             pop ebp
00471DB1  \.  C3             retn
 
00403027   .  8B0D F0716800  mov ecx,dword ptr ds:[0x6871F0]
0040302D   .  A1 C0D06300    mov eax,dword ptr ds:[0x63D0C0]          ;  %w
00403032   .  3BC8           cmp ecx,eax
00403034   .  74 19          je short Unpacked.0040304F
 
0041FFA5  |> \33C9           xor ecx,ecx       
清0
0041FFA7  |.  890D B0D76400  mov dword ptr ds:[0x64D7B0],ecx  
赋值0
 
 
 
0041FFA5  |> \33C9           xor ecx,ecx
0041FFA7  |.  890D B0D76400  mov dword ptr ds:[0x64D7B0],ecx  //0
0041FFAD  |.  EB 0A          jmp short Unpacked.0041FFB9
0041FFAF  |>  C705 B0D76400 >mov dword ptr ds:[0x64D7B0],0x1  //1
 
00403056   .  8B0D A86E6C00 mov ecx,dword ptr ds:[0x6C6EA8]          ;  Unpacked._frmMain
 
就是在激活成功教程程序中需要留意每一次的EAX
的赋值
 
因为EAX
,是控制着我们的判断型跳转的
 
 
 
 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

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

相关推荐

  • ansi unicode_ansi unicode utf-8

    ansi unicode_ansi unicode utf-8利用今天一天的时间,研究了一下ANSI编码和Unicode编码的不同,下面把我的研究成果写下来,以备日后参考。       ANSI编码最常见的应用就是在Windows当中的记事本程序中,当新建一个记事本,默认的保存编码格式就是ANSI,ANSI应该算是一种压缩编码了,当遇到标准的ASCII字符时,采用单字节表示,当遇到非标准的ASCII字符(如中文)时,采用双字节表示。

    2022年9月15日
  • JQuery Div scrollTop ScrollHeight

    JQuery Div scrollTop ScrollHeightjQuery里和滚动条有关的概念很多,但是有三个属性和滚动条的拖动有关,就是:scrollTop、scrollLeft、scrollHeight。其中scrollHeight属性,互联网上几乎搜素不到关于它的应用技巧,而我正好需要用到它。我们现在只探讨和垂直滚动有关的scrollTop、scrollHeight属性。一、滚动条有关属性的正确理解:假设有以下Html代码:

    2022年7月23日
  • 初识JMM_一!,识J

    初识JMM_一!,识J1.什么是JMM?JMM:(JavaMemoryModel的缩写)作用:缓存一致性协议,用于定义数据读写的规则。JMM定义了线程工作内存和主内存之间的抽象关系:线程之间的共享变量存储在主内存(MainMemory)中,每个线程都有一个私有的本地内存(LocalMemory)所有的变量都存储在主内存中,每个线程还有自己的工作内存,工作内存存储在高速缓存或者寄存器中,保存了该线程使用的变量的主内存副本拷贝。线程只能直接操作工作内存中的变量,不同线程之间的变量值传递需要通过主内存来完成。

    2022年9月5日
  • MVC3和MVC4中CRUD操作

    MVC3和MVC4中CRUD操作

    2022年1月23日
  • python多线程详解(超详细)

    python多线程详解(超详细)python中的多线程是一个非常重要的知识点,今天为大家对多线程进行详细的说明,代码中的注释有多线程的知识点还有测试用的实例。importthreadingfromthreadingimportLock,Threadimporttime,os”’python多线程详解什么是线程?…

    2022年5月3日
  • WPF中的布局方式

    WPF中的布局方式前言:WPF(WindowsPresentationFoundation)是微软推出的基于Windows的用户界面框架,属于.NETFramework3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面布局方式:1.Canvas2.Grid3.WarpPanel4.StackPanel5.ScrollViewer……

    2022年7月15日

发表回复

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

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