首页
社区
课程
招聘
找到了注册码。想更深一步学习算法!大家来看看这个段代码
发表于: 2006-1-20 09:23 3931

找到了注册码。想更深一步学习算法!大家来看看这个段代码

2006-1-20 09:23
3931
软件找到注册码了。不想就这么算了。想更深入一步。把算法找出来
大家帮帮忙 看看这段代码什么意思?
我真的想学习找算法。已经买了书。
现在请大家帮帮我
多谢了。。

.--------------------------------------------------------------------

0114DDA6   /0F84 C0000000   je      0114DE6C                         ; 输入假注册码断在这里
0114DDAC   |57              push    edi                              ; 入栈
0114DDAD   |B9 06000000     mov     ecx, 6                           ; 传送?(不明白)[别骂我]我正在学习 想笑就笑吧
0114DDB2   |33C0            xor     eax, eax                         ; 逻辑异或
0114DDB4   |8D7C24 14       lea     edi, [esp+14]                    ; 送寄存器
0114DDB8   |F3:AB           rep     stos dword ptr es:[edi]          ; 重复操作前缀
0114DDBA   |8D4424 0C       lea     eax, [esp+C]                     ; 送寄存器
0114DDBE   |53              push    ebx                              ; 入栈
0114DDBF   |50              push    eax                              ; 入栈
0114DDC0   |8D4C24 1C       lea     ecx, [esp+1C]                    ; 送寄存器
0114DDC4   |6A 18           push    18                               ; 入栈
0114DDC6   |51              push    ecx                              ; 入栈
0114DDC7   |53              push    ebx                              ; 入栈
0114DDC8   |53              push    ebx                              ; 入栈
0114DDC9   |68 80400700     push    74080                            ; 入栈
0114DDCE   |56              push    esi                              ; 入栈
0114DDCF   |895C24 2C       mov     [esp+2C], ebx                    ; 传送
0114DDD3   |FF15 28242001   call    [<&KERNEL32.DeviceIoControl>]    ; 子程序调用指令
0114DDD9   |8A4424 17       mov     al, [esp+17]                     ; 传送
0114DDDD   |3AC3            cmp     al, bl                           ; 比较指令
0114DDDF   |76 78           jbe     short 0114DE59                   ; 不知道什么意思
0114DDE1   |24 10           and     al, 10                           ; 逻辑与指令
0114DDE3   |B9 08000000     mov     ecx, 8                           ; 传送
0114DDE8   |F6D8            neg     al                               ; 求补指令
0114DDEA   |1AC0            sbb     al, al                           ; 带借位的减法指令
0114DDEC   |8D7C24 2C       lea     edi, [esp+2C]                    ; 送寄存器
0114DDF0   |24 B5           and     al, 0B5                          ; 逻辑与指令
0114DDF2   |8D5424 0C       lea     edx, [esp+C]                     ; 送寄存器
0114DDF6   |04 EC           add     al, 0EC                          ; 逻辑与指令
0114DDF8   |52              push    edx                              ; 入栈
0114DDF9   |884424 14       mov     [esp+14], al                     ; 传送
0114DDFD   |33C0            xor     eax, eax                         ; 逻辑异或指令
0114DDFF   |F3:AB           rep     stos dword ptr es:[edi]          ; 重复操作前缀
0114DE01   |AA              stos    byte ptr es:[edi]                ; 存入串指令
0114DE02   |B9 84000000     mov     ecx, 84                          ; 入栈
0114DE07   |33C0            xor     eax, eax                         ; 逻辑异或指令
0114DE09   |8D7C24 54       lea     edi, [esp+54]                    ; 送寄存器
0114DE0D   |53              push    ebx                              ; 入栈
0114DE0E   |F3:AB           rep     stos dword ptr es:[edi]          ; 重复操作前缀
0114DE10   |8B4424 18       mov     eax, [esp+18]                    ; 传送
0114DE14   |8D4C24 58       lea     ecx, [esp+58]                    ; 重复操作前缀
0114DE18   |50              push    eax                              ; 入栈
0114DE19   |8D5424 38       lea     edx, [esp+38]                    ; 重复操作前缀
0114DE1D   |51              push    ecx                              ; 入栈
0114DE1E   |52              push    edx                              ; 入栈
0114DE1F   |56              push    esi                              ; 入栈
0114DE20   |E8 4BFDFFFF     call    0114DB70                         ; 子程序调用指令
0114DE25   |83C4 18         add     esp, 18                          ; 逻辑与指令
0114DE28   |85C0            test    eax, eax                         ; 测试指令
0114DE2A   |74 2D           je      short 0114DE59                   ; 结果为零转移
0114DE2C   |B8 D8D62201     mov     eax, 0122D6D8                    ; 传送
0114DE31   |8D4C24 60       lea     ecx, [esp+60]                    ; 重复操作前缀
0114DE35   |33D2            xor     edx, edx                         ; 逻辑异或指令
0114DE37   |83C0 04         add     eax, 4                           ; 逻辑与指令
0114DE3A   |66:8B11         mov     dx, [ecx]                        ; 传送
0114DE3D   |83C1 02         add     ecx, 2                           ; 逻辑与指令
0114DE40   |8950 FC         mov     [eax-4], edx                     ; 传送
0114DE43   |3D D8DA2201     cmp     eax, 0122DAD8                    ; 比较
0114DE48  ^|7F EB           jg      short 0114DE35                   ; 不知道怎么,这个返回了.原始是 jl 我改成  jg  继续
0114DE4A   |68 D8D62201     push    0122D6D8                         ; 入栈
0114DE4F   |E8 9CFBFFFF     call    0114D9F0                         ; 子程序调用指令
0114DE54   |83C4 04         add     esp, 4                           ; 逻辑与指令
0114DE57   |8BD8            mov     ebx, eax                         ; 传送
0114DE59   |56              push    esi                              ; 入栈
0114DE5A   |FF15 24242001   call    [<&KERNEL32.CloseHandle>]        ; 子程序调用指令
0114DE60   |5F              pop     edi                              ; 出栈指令
0114DE61   |8BC3            mov     eax, ebx                         ; 传送
0114DE63   |5E              pop     esi                              ; 出栈指令
0114DE64   |5B              pop     ebx                              ; 出栈指令
0114DE65   |81C4 54020000   add     esp, 254                         ; 逻辑与指令
0114DE6B   |C3              retn
.
.
.--------------------------------------------------------------------

0114DEA6    8BD0            mov     edx, eax                         ; 到了这里  (传送指令)
0114DEA8    BE 01000000     mov     esi, 1                           ; 传送指令
0114DEAD    85D2            test    edx, edx                         ; 测试
0114DEAF    75 2E           jnz     short 0114DEDF                   ; 条件满足了   (不相等就跳转)
.
.
.--------------------------------------------------------------------
0114DEDE    5F              pop     edi
0114DEDF    8B4424 08       mov     eax, [esp+8]                     ; 跳到了这里 (传送指令)
0114DEE3    85C0            test    eax, eax                         ; 测试
0114DEE5    74 0A           je      short 0114DEF1                   ; 条件满足了 (相等就跳转)
.
.
.--------------------------------------------------------------------
0114DEF1    8BC2            mov     eax, edx                         ; 到了这个 (传送指令)
0114DEF3    5E              pop     esi                              ; 出栈
0114DEF4    C3              retn
.
.
.--------------------------------------------------------------------

011A9037    8B4C24 08       mov     ecx, [esp+8]                     ; 又到了这里(传送指令)
011A903B    83C4 04         add     esp, 4                           ; 加法指令
011A903E    8901            mov     [ecx], eax                       ; 传送
011A9040    C3              retn
.
.
.
01168E19    8B4424 0C       mov     eax, [esp+C]                     ; 又到了这里(传送指令)
01168E1D    8B5424 10       mov     edx, [esp+10]                    ; 传送指令
01168E21    8B4C24 14       mov     ecx, [esp+14]                    ; 传送指令
01168E25    83C4 18         add     esp, 18                          ; 加法
01168E28    C3              retn
.
.
.--------------------------------------------------------------------

0113A3E2    83C4 04         add     esp, 4                           ; 又到了这里(加法)
0113A3E5    8945 FC         mov     [ebp-4], eax                     ; 传送
0113A3E8    DB45 FC         fild    dword ptr [ebp-4]                ; 机器码出来了是 1347657037  (fild dword ptr 不知道什么意思)
0113A3EB    DD5D F0         fstp    qword ptr [ebp-10]               ; 不知道什么意思
0113A3EE    DD45 F0         fld     qword ptr [ebp-10]               ; 不知道什么意思
0113A3F1    DC05 5B571301   fadd    qword ptr [113575B]              ; 不知道什么意思
0113A3F7    DD5D E8         fstp    qword ptr [ebp-18]               ; 不知道什么意思
0113A3FA    68 01060080     push    80000601                         ; 入栈
0113A3FF    FF75 EC         push    dword ptr [ebp-14]               ; 入栈
0113A402    FF75 E8         push    dword ptr [ebp-18]               ; 入栈
0113A405    68 01000000     push    1                                ; 入栈
0113A40A    BB 64010000     mov     ebx, 164                         ; 传送
0113A40F    E8 B7180000     call    0113BCCB                         ; 调用子程序
0113A414    83C4 10         add     esp, 10                          ; 加法
0113A417    8945 D8         mov     [ebp-28], eax                    ; 传送
0113A41A    8955 DC         mov     [ebp-24], edx                    ; 传送
0113A41D    DD45 D8         fld     qword ptr [ebp-28]               ; 不知道什么意思
0113A420    E8 BAD5FFFF     call    011379DF                         ; 调用子程序
0113A425    8945 F8         mov     [ebp-8], eax                     ; 传送
0113A428    8B45 F8         mov     eax, [ebp-8]                     ; 传送
0113A42B    E9 00000000     jmp     0113A430                         ; 条件实现了 跳到下句
0113A430    8BE5            mov     esp, ebp                         ; 传送
0113A432    5D              pop     ebp                              ; 出栈
0113A433    C3              retn
.
.
.--------------------------------------------------------------------

0113B974    68 01030080     push    80000301                         ; 又到了这这里  (入栈)
0113B979    6A 00           push    0                                ; 入栈
0113B97B    50              push    eax                              ; 入栈
0113B97C    68 01000000     push    1                                ; 入栈
0113B981    BB 64010000     mov     ebx, 164                         ; 传送
0113B986    E8 40030000     call    0113BCCB                         ; 调用子程序
0113B98B    83C4 10         add     esp, 10                          ; 加法
0113B98E    8945 F4         mov     [ebp-C], eax                     ; 传送
0113B991    8955 F8         mov     [ebp-8], edx                     ; 传送
0113B994    DD45 F4         fld     qword ptr [ebp-C]                ; 不知道什么意思   堆栈 ss:[0012F0F0]=1367417252.000000
0113B997    DC0D 41571301   fmul    qword ptr [1135741]              ; 不知道什么意思
0113B99D    DD5D EC         fstp    qword ptr [ebp-14]               ; 不知道什么意思
0113B9A0    DD45 EC         fld     qword ptr [ebp-14]               ; 不知道什么意思
0113B9A3    DC05 41571301   fadd    qword ptr [1135741]              ; 不知道什么意思
0113B9A9    DD5D E4         fstp    qword ptr [ebp-1C]               ; 不知道什么意思
0113B9AC    DD45 E4         fld     qword ptr [ebp-1C]               ; 不知道什么意思
0113B9AF    E8 2BC0FFFF     call    011379DF                         ; 调用子程序
0113B9B4    68 01030080     push    80000301                         ; 入栈
0113B9B9    6A 00           push    0                                ; 入栈
0113B9BB    50              push    eax                              ; 入栈
0113B9BC    68 01000000     push    1                                ; 入栈
0113B9C1    BB D4010000     mov     ebx, 1D4                         ; 传送
0113B9C6    E8 00030000     call    0113BCCB                         ; 调用子程序
0113B9CB    83C4 10         add     esp, 10                          ; 加法
0113B9CE    8945 E0         mov     [ebp-20], eax                    ; 传送  (注册码出来了: 93F7C00 )
0113B9D1    68 04000080     push    80000004                         ; 入栈
0113B9D6    6A 00           push    0                                ; 入栈
0113B9D8    8B45 E0         mov     eax, [ebp-20]                    ; 传送
0113B9DB    85C0            test    eax, eax                         ; 测试  eax=0014D8E8, (ASCII "93F7C00")
0113B9DD    75 05           jnz     short 0113B9E4                   ; 结果不为0则转移
0113B9DF    B8 17521301     mov     eax, 01135217                    ; 传送
0113B9E4    50              push    eax                              ; 入栈          eax=0014D8E8, (ASCII "93F7C00")
0113B9E5    68 01000000     push    1                                ; 入栈
0113B9EA    BB 68010000     mov     ebx, 168                         ; 传送
0113B9EF    E8 D7020000     call    0113BCCB                         ; 调用子程序
0113B9F4    83C4 10         add     esp, 10                          ; 加法
0113B9F7    8945 DC         mov     [ebp-24], eax                    ; 传送  eax=0017FAC8, (ASCII "93F7C00")
0113B9FA    8B5D E0         mov     ebx, [ebp-20]                    ; 传送   堆栈 ss:[0012F0DC]=0014D8E8, (ASCII "93F7C00")
0113B9FD    85DB            test    ebx, ebx                         ; 比较   ebx=0014D8E8, (ASCII "93F7C00")
0113B9FF    74 09           je      short 0113BA0A                   ; 结果为0则跳
0113BA01    53              push    ebx                              ; 入栈   ebx=0014D8E8, (ASCII "93F7C00")
0113BA02    E8 BE020000     call    0113BCC5                         ; 调用子程序
0113BA07    83C4 04         add     esp, 4                           ; 加法
0113BA0A    8B1D 98216701   mov     ebx, [1672198]                   ; 传送 ds:[01672198]=001851E0, (ASCII "93F7C00")
0113BA10    85DB            test    ebx, ebx                         ; 比较
0113BA12    74 09           je      short 0113BA1D                   ; 结果为0则跳
0113BA14    53              push    ebx                              ; 入栈  ebx=001851E0, (ASCII "93F7C00")
0113BA15    E8 AB020000     call    0113BCC5                         ; 调用子程序
0113BA1A    83C4 04         add     esp, 4                           ; 加法
0113BA1D    8B45 DC         mov     eax, [ebp-24]                    ; 传送
0113BA20    A3 98216701     mov     [1672198], eax                   ; 传送
0113BA25    6A FF           push    -1                               ; 入栈
0113BA27    6A 08           push    8                                ; 入栈
0113BA29    68 6A040116     push    1601046A                         ; 入栈
0113BA2E    68 56040152     push    52010456                         ; 入栈
0113BA33    E8 9F020000     call    0113BCD7                         ; 调用子程序
0113BA38    83C4 10         add     esp, 10                          ; 加法
0113BA3B    8945 FC         mov     [ebp-4], eax                     ; 传送   假码出现 eax=001A5110, (ASCII "7474747474")
0113BA3E    8B45 FC         mov     eax, [ebp-4]                     ; 传送   堆栈 ss:[0012F0F8]=001A5110, (ASCII "7474747474")
0113BA41    50              push    eax                              ; 入栈
0113BA42    FF35 98216701   push    dword ptr [1672198]              ; 入栈  ds:[01672198]=0017FAC8, (ASCII "93F7C00")
0113BA48    E8 C1B6FFFF     call    0113710E                         ; 调用子程序
0113BA4D    83C4 08         add     esp, 8                           ; 加法
0113BA50    83F8 00         cmp     eax, 0                           ; 比较
0113BA53    B8 00000000     mov     eax, 0                           ; 传送
0113BA58    0F94C0          sete    al                               ; 条件为假 FALSE   al=00
0113BA5B    8945 F8         mov     [ebp-8], eax                     ; 传送
0113BA5E    8B5D FC         mov     ebx, [ebp-4]                     ; 传送   堆栈 ss:[0012F0F8]=001A5110, (ASCII "7474747474")
0113BA61    85DB            test    ebx, ebx                         ; 测试   ebx=001A5110, (ASCII "7474747474")
0113BA63    74 09           je      short 0113BA6E                   ; 条件为0则跳
0113BA65    53              push    ebx                              ; 入栈   ebx=001A5110, (ASCII "7474747474")
0113BA66    E8 5A020000     call    0113BCC5                         ; 调用子程序
0113BA6B    83C4 04         add     esp, 4                           ; 加法
0113BA6E    837D F8 00      cmp     dword ptr [ebp-8], 0             ; 比较
0113BA72    0F84 A3000000   je      0113BB1B                         ; 条件已经满足了
.
.
.--------------------------------------------------------------------
0113BB1B    6A 00           push    0                                ; 跳到了这里  (入栈)
0113BB1D    6A 00           push    0                                ; 入栈
0113BB1F    6A 00           push    0                                ; 入栈
0113BB21    68 01030080     push    80000301                         ; 入栈
0113BB26    6A 00           push    0                                ; 入栈
0113BB28    68 00000000     push    0                                ; 入栈
0113BB2D    68 04000080     push    80000004                         ; 入栈
0113BB32    6A 00           push    0                                ; 入栈
0113BB34    68 A8581301     push    011358A8                         ; 入栈
0113BB39    68 03000000     push    3                                ; 入栈
0113BB3E    BB 00030000     mov     ebx, 300                         ; 传送
0113BB43    E8 83010000     call    0113BCCB                         ; 调用子程序(弹出 注册码 错误窗口)

---------------------------------------------------------------------

软件找到注册码了。不想就这么算了。想更深入一步。把算法找出来
大家帮帮忙 看看这段代码什么意思?
我真的想学习找算法。已经买了书。
现在请大家帮帮我
多谢了。。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 206
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不知道楼主后面加如此多的注释做什么?
似乎没啥必要~
不过整个看下来,好像没有关键算法相关的段落嘛~
2006-1-20 10:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我刚学习。怕看不懂。所以按照书上的命令解释。加在注解上了。

你看应该跟进哪个 CALL 找算法?
2006-1-20 10:20
0
雪    币: 206
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
除非有程序,这样给我看,我也不知道~
不过类似我等新手,还是中规中矩的,把意思弄明白了再说,否则别说找算法,恐怕注册码都找不到~

看你其中一段有一个CALL,貌似和注册算法有关
就是call    0113BCCB
你跳去0113BCCB看看呢~
2006-1-20 10:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好的。我太心急了。哈哈
基础知识我会抓紧强化的。
我现在就跟进去看看。
谢谢了
2006-1-20 10:43
0
雪    币: 176
活跃值: (100)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
6
0114DE35   |33D2            xor     edx, edx                         ; 逻辑异或指令
0114DE37   |83C0 04         add     eax, 4                           ; 逻辑与指令
0114DE3A   |66:8B11         mov     dx, [ecx]                        ; 传送
0114DE3D   |83C1 02         add     ecx, 2                           ; 逻辑与指令
0114DE40   |8950 FC         mov     [eax-4], edx                     ; 传送
0114DE43   |3D D8DA2201     cmp     eax, 0122DAD8                    ; 比较
0114DE48  ^|7F EB           jg      short 0114DE35                   ; 不知道怎么,这个返回了.原始是 jl 我改成  jg  继续

这是个循环,怎么能改啊,可能和算法有关,分析一下也不会浪费时间。
2006-1-20 13:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这段可以能是取硬盘码的地方。不管他
我感觉应该从硬盘码出现明文 到 注册码出现明文之间找算法
不知道理解的对不对
2006-1-20 14:33
0
雪    币: 146
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
呵,挺详细哦。
2006-1-20 20:07
0
雪    币: 517
活跃值: (35)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
没理解汇编的真实含义,仅停在机械认识方面。
2006-1-21 18:31
0
游客
登录 | 注册 方可回帖
返回
//