首页
社区
课程
招聘
AstroVideo分析过程[原创]
发表于: 2005-5-11 15:41 3326

AstroVideo分析过程[原创]

2005-5-11 15:41
3326
[作者]xsy3660[]

[文章题目]AstroVideo分析过程

[软件名称]AstroVideo

[破解工具]flyodbg修改版

[软件限制]21天使用

[破解难度]+++初级+++              中级            高级            超难

[破解平台]/XP+sp2

[软件简介]AstroVideo 用任何Windows兼容的视频截取设备都可以创建一个专业曝光的摄影效果,自动整合多个视频祯。AstroVideo 使一个低费用视频照相机获得更多的捕获和叠加(附加)成千的视频祯成为 可能。AstroVideo 提供了多祯图像平滑过度效果。如果层叠的图像不完美,Astrovideo 可以自动排 列图像。
为了平滑遮盖图像,AstroVideo 允许你去选择那些非常稳定的祯截取并整合它们,用自动注册的的方式去制作一个复合的图像。如果你的相机修改了曝光时间,AstroVideo 可以控制相机达到比较好的效果。AstroVideo 给你一个改变局部图像达到高CCD摄像机的机会。

[破解过程]软件是采用 F(机器码)=F(注册码)的形式。软件启动时显示You are now on day %d of your 21-day free trial period.
Do you wish to register AstroVideo to keep using it?"搜索后往上看到40525D处跳过来的,暴破之!

--------------------------启动检验部分------------------------------------------------------
00405239     8B95 0CFAFFFF            mov edx,dword ptr ss:[ebp-5F4]
0040523F     8B82 20080000            mov eax,dword ptr ds:[edx+820]
00405245     50                       push eax
00405246     8B8D 0CFAFFFF            mov ecx,dword ptr ss:[ebp-5F4]
0040524C     E8 10CB0100              call AstroVid.00421D61
00405251     8B8D 0CFAFFFF            mov ecx,dword ptr ss:[ebp-5F4]
00405257     3B81 24080000            cmp eax,dword ptr ds:[ecx+824]
0040525D     75 54                    jnz short AstroVid.004052B3       ; 启动时检验是否注册,没则跳。暴破点!
0040525F     8B95 0CFAFFFF            mov edx,dword ptr ss:[ebp-5F4]
00405265     C782 1C080000 01000000   mov dword ptr ds:[edx+81C],1
0040526F     8B85 0CFAFFFF            mov eax,dword ptr ss:[ebp-5F4]
00405275     8B88 24080000            mov ecx,dword ptr ds:[eax+824]
0040527B     51                       push ecx
0040527C     68 48ED4B00              push AstroVid.004BED48              ; ASCII "Registered {%d}"
00405281     8D95 F4FDFFFF            lea edx,dword ptr ss:[ebp-20C]
00405287     52                       push edx
00405288     E8 4E970600              call AstroVid.0046E9DB
0040528D     83C4 0C                  add esp,0C
00405290     8D85 F4FDFFFF            lea eax,dword ptr ss:[ebp-20C]
00405296     50                       push eax
00405297     8B8D 0CFAFFFF            mov ecx,dword ptr ss:[ebp-5F4]
0040529D     8B89 000F0000            mov ecx,dword ptr ds:[ecx+F00]
004052A3     81C1 C0000000            add ecx,0C0
004052A9     E8 F52E0800              call AstroVid.004881A3
004052AE     E9 E9010000              jmp AstroVid.0040549C
004052B3     8B95 0CFAFFFF            mov edx,dword ptr ss:[ebp-5F4]
004052B9     C782 1C080000 00000000   mov dword ptr ds:[edx+81C],0
004052C3     68 58ED4B00              push AstroVid.004BED58              ; ASCII "Unregistered copy."
004052C8     8D85 B0FDFFFF            lea eax,dword ptr ss:[ebp-250]
004052CE     50                       push eax
004052CF     E8 07970600              call AstroVid.0046E9DB
004052D4     83C4 08                  add esp,8
004052D7     8D8D B0FDFFFF            lea ecx,dword ptr ss:[ebp-250]
004052DD     51                       push ecx
004052DE     8B95 0CFAFFFF            mov edx,dword ptr ss:[ebp-5F4]
004052E4     8B8A 000F0000            mov ecx,dword ptr ds:[edx+F00]
004052EA     81C1 C0000000            add ecx,0C0
004052F0     E8 AE2E0800              call AstroVid.004881A3
004052F5     8B85 0CFAFFFF            mov eax,dword ptr ss:[ebp-5F4]
004052FB     05 28080000              add eax,828
00405300     51                       push ecx
00405301     8BCC                     mov ecx,esp
00405303     89A5 14FAFFFF            mov dword ptr ss:[ebp-5EC],esp
00405309     50                       push eax
0040530A     E8 018C0400              call AstroVid.0044DF10
0040530F     8D8D F0FDFFFF            lea ecx,dword ptr ss:[ebp-210]
00405315     51                       push ecx
00405316     8D8D DCFEFFFF            lea ecx,dword ptr ss:[ebp-124]
0040531C     E8 0F8C0400              call AstroVid.0044DF30
00405321     8D8D F0FDFFFF            lea ecx,dword ptr ss:[ebp-210]
00405327     E8 A48B0400              call AstroVid.0044DED0
0040532C     83C0 01                  add eax,1
0040532F     50                       push eax
00405330     68 6CED4B00              push AstroVid.004BED6C              ; ASCII "You are now on day %d of your 21-day free trial period.
Do you wish to register AstroVideo to keep using it?"
00405335     8D95 BCFBFFFF            lea edx,dword ptr ss:[ebp-444]
0040533B     52                       push edx
0040533C     E8 9A960600              call AstroVid.0046E9DB
00405341     83C4 0C                  add esp,0C
00405344     6A 00                    push 0
00405346     6A 04                    push 4
00405348     8D85 BCFBFFFF            lea eax,dword ptr ss:[ebp-444]
0040534E     50                       push eax
0040534F     E8 01AA0800              call AstroVid.0048FD55
00405354     83F8 06                  cmp eax,6
00405357     74 14                    je short AstroVid.0040536D
00405359     8D8D F0FDFFFF            lea ecx,dword ptr ss:[ebp-210]
0040535F     E8 6C8B0400              call AstroVid.0044DED0
00405364     83F8 15                  cmp eax,15
00405367     0F8E 08010000            jle AstroVid.00405475
0040536D     6A 00                    push 0
0040536F     8D8D C8FAFFFF            lea ecx,dword ptr ss:[ebp-538]
00405375     E8 86FF0400              call AstroVid.00455300
0040537A     C645 FC 24               mov byte ptr ss:[ebp-4],24
0040537E     8B8D 0CFAFFFF            mov ecx,dword ptr ss:[ebp-5F4]
00405384     8B91 20080000            mov edx,dword ptr ds:[ecx+820]
0040538A     52                       push edx
0040538B     68 DCED4B00              push AstroVid.004BEDDC              ; ASCII "AW%d"
00405390     8D85 6CFBFFFF            lea eax,dword ptr ss:[ebp-494]
00405396     50                       push eax
00405397     E8 3F960600              call AstroVid.0046E9DB
0040539C     83C4 0C                  add esp,0C
0040539F     68 E4ED4B00              push AstroVid.004BEDE4              ; ASCII "You can register AstroVideo for just US$29 (+VAT in EU)"
004053A4     8D8D 68FBFFFF            lea ecx,dword ptr ss:[ebp-498]
004053AA     E8 F42D0800              call AstroVid.004881A3
004053AF     8D8D 6CFBFFFF            lea ecx,dword ptr ss:[ebp-494]
004053B5     51                       push ecx
004053B6     8D8D 60FBFFFF            lea ecx,dword ptr ss:[ebp-4A0]
004053BC     E8 E22D0800              call AstroVid.004881A3
004053C1     8D8D C8FAFFFF            lea ecx,dword ptr ss:[ebp-538]
004053C7     E8 D3E90700              call AstroVid.00483D9F
004053CC     83F8 01                  cmp eax,1
004053CF     0F85 91000000            jnz AstroVid.00405466
004053D5     8B95 0CFAFFFF            mov edx,dword ptr ss:[ebp-5F4]
004053DB     8B82 20080000            mov eax,dword ptr ds:[edx+820]
004053E1     50                       push eax
004053E2     8B8D 0CFAFFFF            mov ecx,dword ptr ss:[ebp-5F4]
004053E8     E8 74C90100              call AstroVid.00421D61
004053ED     3B85 64FBFFFF            cmp eax,dword ptr ss:[ebp-49C]
004053F3     75 63                    jnz short AstroVid.00405458
004053F5     8B8D 0CFAFFFF            mov ecx,dword ptr ss:[ebp-5F4]
004053FB     8B95 64FBFFFF            mov edx,dword ptr ss:[ebp-49C]
00405401     8991 24080000            mov dword ptr ds:[ecx+824],edx
00405407     8B85 0CFAFFFF            mov eax,dword ptr ss:[ebp-5F4]
0040540D     C780 1C080000 01000000   mov dword ptr ds:[eax+81C],1
00405417     8B8D 0CFAFFFF            mov ecx,dword ptr ss:[ebp-5F4]
0040541D     8B91 24080000            mov edx,dword ptr ds:[ecx+824]
00405423     52                       push edx
00405424     68 1CEE4B00              push AstroVid.004BEE1C              ; ASCII "Registered {%d}"
00405429     8D85 88FAFFFF            lea eax,dword ptr ss:[ebp-578]
0040542F     50                       push eax
00405430     E8 A6950600              call AstroVid.0046E9DB
00405435     83C4 0C                  add esp,0C
00405438     8D8D 88FAFFFF            lea ecx,dword ptr ss:[ebp-578]
0040543E     51                       push ecx
0040543F     8B95 0CFAFFFF            mov edx,dword ptr ss:[ebp-5F4]
00405445     8B8A 000F0000            mov ecx,dword ptr ds:[edx+F00]
0040544B     81C1 C0000000            add ecx,0C0
00405451     E8 4D2D0800              call AstroVid.004881A3
00405456     EB 0E                    jmp short AstroVid.00405466
00405458     6A 00                    push 0
0040545A     6A 00                    push 0
0040545C     68 2CEE4B00              push AstroVid.004BEE2C              ; ASCII "Sorry that registration number is incorrect.
Email info@coaa.co.uk for help."
00405461     E8 EFA80800              call AstroVid.0048FD55
00405466     C645 FC 21               mov byte ptr ss:[ebp-4],21
0040546A     8D8D C8FAFFFF            lea ecx,dword ptr ss:[ebp-538]
00405470     E8 9B8C0400              call AstroVid.0044E110
00405475     8D8D F0FDFFFF            lea ecx,dword ptr ss:[ebp-210]
0040547B     E8 508A0400              call AstroVid.0044DED0
00405480     83F8 15                  cmp eax,15
00405483     7E 17                    jle short AstroVid.0040549C
00405485     8B85 0CFAFFFF            mov eax,dword ptr ss:[ebp-5F4]
0040548B     83B8 1C080000 00         cmp dword ptr ds:[eax+81C],0
00405492     75 08                    jnz short AstroVid.0040549C
00405494     6A 00                    push 0

------------------------启动后注册------------------------------------
00421B5D     55           push ebp
00421B5E     8BEC         mov ebp,esp
00421B60     6A FF        push -1
00421B62     68 C6334A00  push AstroVid.004A33C6
00421B67     64:A1 000000>mov eax,dword ptr fs:[0]
00421B6D     50           push eax
00421B6E     64:8925 0000>mov dword ptr fs:[0],esp
00421B75     81EC 4C01000>sub esp,14C
00421B7B     898D B0FEFFF>mov dword ptr ss:[ebp-150],ecx
00421B81     6A 00        push 0
00421B83     8D8D 00FFFFF>lea ecx,dword ptr ss:[ebp-100]
00421B89     E8 72370300  call AstroVid.00455300
00421B8E     C745 FC 0000>mov dword ptr ss:[ebp-4],0
00421B95     8B85 B0FEFFF>mov eax,dword ptr ss:[ebp-150]
00421B9B     8B88 2008000>mov ecx,dword ptr ds:[eax+820]
00421BA1     51           push ecx
00421BA2     68 2C104C00  push AstroVid.004C102C              ; ASCII "AW%d"
00421BA7     8D55 A4      lea edx,dword ptr ss:[ebp-5C]
00421BAA     52           push edx
00421BAB     E8 2BCE0400  call AstroVid.0046E9DB
00421BB0     83C4 0C      add esp,0C
00421BB3     68 34104C00  push AstroVid.004C1034              ; ASCII "You can register AstroVideo for just US$29 (+VAT in EU)"
00421BB8     8D4D A0      lea ecx,dword ptr ss:[ebp-60]
00421BBB     E8 E3650600  call AstroVid.004881A3
00421BC0     8D45 A4      lea eax,dword ptr ss:[ebp-5C]
00421BC3     50           push eax
00421BC4     8D4D 98      lea ecx,dword ptr ss:[ebp-68]
00421BC7     E8 D7650600  call AstroVid.004881A3
00421BCC     8D4D 98      lea ecx,dword ptr ss:[ebp-68]
00421BCF     51           push ecx
00421BD0     68 6C104C00  push AstroVid.004C106C              ; ASCII "Registered "
00421BD5     8D95 FCFEFFF>lea edx,dword ptr ss:[ebp-104]
00421BDB     52           push edx
00421BDC     E8 42670600  call AstroVid.00488323
00421BE1     C645 FC 01   mov byte ptr ss:[ebp-4],1
00421BE5     68 78104C00  push AstroVid.004C1078
00421BEA     8D8D FCFEFFF>lea ecx,dword ptr ss:[ebp-104]
00421BF0     E8 01680600  call AstroVid.004883F6
00421BF5     8A45 9C      mov al,byte ptr ss:[ebp-64]
00421BF8     50           push eax
00421BF9     8D8D FCFEFFF>lea ecx,dword ptr ss:[ebp-104]
00421BFF     E8 19680600  call AstroVid.0048841D
00421C04     8D8D 00FFFFF>lea ecx,dword ptr ss:[ebp-100]
00421C0A     E8 90210600  call AstroVid.00483D9F                            ; 注册对话框
00421C0F     83F8 01      cmp eax,1
00421C12     0F85 E700000>jnz AstroVid.00421CFF
00421C18     8B8D B0FEFFF>mov ecx,dword ptr ss:[ebp-150]            ; CE73B0(此值应是由机器码得出,何处得出没有去细看)
00421C1E     8B91 2008000>mov edx,dword ptr ds:[ecx+820]              ; C0FF5(此值应是由机器码得出)
00421C24     52           push edx
00421C25     8B8D B0FEFFF>mov ecx,dword ptr ss:[ebp-150]
00421C2B     E8 31010000  call AstroVid.00421D61                                 ; 进入
00421C30     3B45 9C      cmp eax,dword ptr ss:[ebp-64]                          ;比较,不对则跳
00421C33     0F85 8C00000>jnz AstroVid.00421CC5                              ;暴破点!!!
00421C39     8B85 B0FEFFF>mov eax,dword ptr ss:[ebp-150]
00421C3F     8B4D 9C      mov ecx,dword ptr ss:[ebp-64]
00421C42     8988 2408000>mov dword ptr ds:[eax+824],ecx
00421C48     8B95 B0FEFFF>mov edx,dword ptr ss:[ebp-150]
00421C4E     C782 1C08000>mov dword ptr ds:[edx+81C],1
00421C58     8B85 B0FEFFF>mov eax,dword ptr ss:[ebp-150]
00421C5E     8B88 2408000>mov ecx,dword ptr ds:[eax+824]
00421C64     51           push ecx
00421C65     68 7C104C00  push AstroVid.004C107C              ; ASCII "Registered {%d}"
00421C6A     8D95 BCFEFFF>lea edx,dword ptr ss:[ebp-144]
00421C70     52           push edx
00421C71     E8 65CD0400  call AstroVid.0046E9DB
00421C76     83C4 0C      add esp,0C
00421C79     8D85 BCFEFFF>lea eax,dword ptr ss:[ebp-144]
00421C7F     50           push eax
00421C80     8B8D B0FEFFF>mov ecx,dword ptr ss:[ebp-150]
00421C86     8B89 000F000>mov ecx,dword ptr ds:[ecx+F00]
00421C8C     81C1 C000000>add ecx,0C0
00421C92     E8 0C650600  call AstroVid.004881A3
00421C97     51           push ecx
00421C98     8BD4         mov edx,esp
00421C9A     89A5 B8FEFFF>mov dword ptr ss:[ebp-148],esp
00421CA0     68 8C104C00  push AstroVid.004C108C              ; ASCII "OK"
00421CA5     8D85 FCFEFFF>lea eax,dword ptr ss:[ebp-104]
00421CAB     50           push eax
00421CAC     52           push edx
00421CAD     E8 FD650600  call AstroVid.004882AF
00421CB2     8985 ACFEFFF>mov dword ptr ss:[ebp-154],eax
00421CB8     8B8D B0FEFFF>mov ecx,dword ptr ss:[ebp-150]
00421CBE     E8 DBB40200  call AstroVid.0044D19E
00421CC3     EB 3A        jmp short AstroVid.00421CFF
00421CC5     6A 00        push 0
00421CC7     6A 00        push 0
00421CC9     68 90104C00  push AstroVid.004C1090              ; ASCII "Sorry that registration number is incorrect.
Email info@coaa.co.uk for help."
00421CCE     E8 82E00600  call AstroVid.0048FD55
00421CD3     51           push ecx
00421CD4     8BCC         mov ecx,esp
00421CD6     89A5 B4FEFFF>mov dword ptr ss:[ebp-14C],esp
00421CDC     68 E0104C00  push AstroVid.004C10E0              ; ASCII "error"
00421CE1     8D95 FCFEFFF>lea edx,dword ptr ss:[ebp-104]
00421CE7     52           push edx
00421CE8     51           push ecx
00421CE9     E8 C1650600  call AstroVid.004882AF
00421CEE     8985 A8FEFFF>mov dword ptr ss:[ebp-158],eax
00421CF4     8B8D B0FEFFF>mov ecx,dword ptr ss:[ebp-150]
00421CFA     E8 9FB40200  call AstroVid.0044D19E
00421CFF     C645 FC 00   mov byte ptr ss:[ebp-4],0
00421D03     8D8D FCFEFFF>lea ecx,dword ptr ss:[ebp-104]
00421D09     E8 0C630600  call AstroVid.0048801A
00421D0E     C745 FC FFFF>mov dword ptr ss:[ebp-4],-1
00421D15     8D8D 00FFFFF>lea ecx,dword ptr ss:[ebp-100]
00421D1B     E8 F0C30200  call AstroVid.0044E110
00421D20     8B4D F4      mov ecx,dword ptr ss:[ebp-C]
00421D23     64:890D 0000>mov dword ptr fs:[0],ecx
00421D2A     8BE5         mov esp,ebp
00421D2C     5D           pop ebp
00421D2D     C3           retn

-----------------------00421C2B     E8 31010000  call AstroVid.00421D61----------------------------
00421D2E     55     push ebp
00421D2F     8BEC   mov ebp,esp
00421D31     51     push ecx
00421D32     894D F>mov dword ptr ss:[ebp-4],ecx
00421D35     8B45 F>mov eax,dword ptr ss:[ebp-4]
00421D38     83B8 1>cmp dword ptr ds:[eax+81C],0
00421D3F     75 0E  jnz short AstroVid.00421D4F
00421D41     6A 01  push 1
00421D43     8B4D 0>mov ecx,dword ptr ss:[ebp+8]
00421D46     8B11   mov edx,dword ptr ds:[ecx]
00421D48     8B4D 0>mov ecx,dword ptr ss:[ebp+8]
00421D4B     FF12   call dword ptr ds:[edx]
00421D4D     EB 0C  jmp short AstroVid.00421D5B
00421D4F     6A 00  push 0
00421D51     8B45 0>mov eax,dword ptr ss:[ebp+8]
00421D54     8B10   mov edx,dword ptr ds:[eax]
00421D56     8B4D 0>mov ecx,dword ptr ss:[ebp+8]
00421D59     FF12   call dword ptr ds:[edx]
00421D5B     8BE5   mov esp,ebp
00421D5D     5D     pop ebp
00421D5E     C2 040>retn 4
00421D61     55     push ebp
00421D62     8BEC   mov ebp,esp
00421D64     83EC 1>sub esp,10
00421D67     894D F>mov dword ptr ss:[ebp-10],ecx       ; CE73B0
00421D6A     8B45 0>mov eax,dword ptr ss:[ebp+8]        ; C0FF5
00421D6D     8945 F>mov dword ptr ss:[ebp-8],eax
00421D70     8B4D F>mov ecx,dword ptr ss:[ebp-8]
00421D73     81C1 B>add ecx,4B7                                       ; C0FF5  AND 4B7
00421D79     894D F>mov dword ptr ss:[ebp-8],ecx           ; 结果送[ebp-8]
00421D7C     C745 F>mov dword ptr ss:[ebp-C],0
00421D83     C745 F>mov dword ptr ss:[ebp-C],0
00421D8A     EB 09  jmp short AstroVid.00421D95
00421D8C     8B55 F>mov edx,dword ptr ss:[ebp-C]
00421D8F     83C2 0>add edx,1                                          ; 循环次数加1
00421D92     8955 F>mov dword ptr ss:[ebp-C],edx
00421D95     837D F>cmp dword ptr ss:[ebp-C],10           ; 循环次数控制
00421D99     7D 27  jge short AstroVid.00421DC2
00421D9B     8B45 F>mov eax,dword ptr ss:[ebp-8]
00421D9E     D1E0   shl eax,1                                          ; 逻辑左移1 位
00421DA0     8945 F>mov dword ptr ss:[ebp-8],eax        ; 结果送[ebp-8]
00421DA3     8B4D F>mov ecx,dword ptr ss:[ebp-8]
00421DA6     81E1 0>and ecx,10000
00421DAC     81F9 0>cmp ecx,10000                       ; UNICODE "ALLUSERSPROFILE=D:\Documents and Settings\All Users"
00421DB2     75 0C  jnz short AstroVid.00421DC0
00421DB4     8B55 F>mov edx,dword ptr ss:[ebp-8]
00421DB7     81F2 7>xor edx,0C75                                    ; 与0c75异或
00421DBD     8955 F>mov dword ptr ss:[ebp-8],edx
00421DC0   ^ EB CA  jmp short AstroVid.00421D8C
00421DC2     8B45 F>mov eax,dword ptr ss:[ebp-8]        ; 结果送eax
00421DC5     25 FFF>and eax,0FFFF                              ; 高位清0
00421DCA     8945 F>mov dword ptr ss:[ebp-4],eax
00421DCD     8B45 F>mov eax,dword ptr ss:[ebp-4]       ;返回结果放入eax
00421DD0     8BE5   mov esp,ebp
00421DD2     5D     pop ebp
00421DD3     C2 040>retn 4

本人是在“00421C30     3B45 9C      cmp eax,dword ptr ss:[ebp-64]        ;比较,不对则跳”处发现在ebp-64中放的是假码运算后的结果,那算出来的开始时感到迷惑,后来才想到何不在那地方下 hr呢?于是下hr  12fa50,填假码:987654。断下后才发现是上面“注册框出现”处的那call中经过N个call后来到此的!!

-----------------------------假码运算部分-------------------------------------------------------
0047045F     55   push ebp
00470460     8BEC mov ebp,esp
00470462     83EC>sub esp,0C
00470465     53   push ebx
00470466     8365>and dword ptr ss:[ebp-8],0
0047046A     56   push esi
0047046B     57   push edi
0047046C     8B7D>mov edi,dword ptr ss:[ebp+8]          ;ebp+8中放的是假码
0047046F     8A1F mov bl,byte ptr ds:[edi]
00470471     8D77>lea esi,dword ptr ds:[edi+1]
00470474     8975>mov dword ptr ss:[ebp-4],esi
00470477     833D>cmp dword ptr ds:[4CE1DC],1
0047047E     7E 0>jle short AstroVid.0047048F
00470480     0FB6>movzx eax,bl
00470483     6A 0>push 8
00470485     50   push eax
00470486     E8 B>call AstroVid.0047983B
0047048B     59   pop ecx
0047048C     59   pop ecx
0047048D     EB 0>jmp short AstroVid.0047049E
0047048F     8B0D>mov ecx,dword ptr ds:[4CDFD0]       ; AstroVid.004CDFDA
00470495     0FB6>movzx eax,bl
00470498     8A04>mov al,byte ptr ds:[ecx+eax*2]
0047049B     83E0>and eax,8
0047049E     85C0 test eax,eax
004704A0     74 0>je short AstroVid.004704A7
004704A2     8A1E mov bl,byte ptr ds:[esi]
004704A4     46   inc esi
004704A5   ^ EB D>jmp short AstroVid.00470477
004704A7     80FB>cmp bl,2D
004704AA     8975>mov dword ptr ss:[ebp-4],esi
004704AD     75 0>jnz short AstroVid.004704B5
004704AF     834D>or dword ptr ss:[ebp+14],2
004704B3     EB 0>jmp short AstroVid.004704BA
004704B5     80FB>cmp bl,2B
004704B8     75 0>jnz short AstroVid.004704C0
004704BA     8A1E mov bl,byte ptr ds:[esi]
004704BC     46   inc esi
004704BD     8975>mov dword ptr ss:[ebp-4],esi
004704C0     8B45>mov eax,dword ptr ss:[ebp+10]
004704C3     85C0 test eax,eax
004704C5     0F8C>jl AstroVid.00470654
004704CB     83F8>cmp eax,1
004704CE     0F84>je AstroVid.00470654
004704D4     83F8>cmp eax,24
004704D7     0F8F>jg AstroVid.00470654
004704DD     6A 1>push 10
004704DF     85C0 test eax,eax
004704E1     59   pop ecx
004704E2     75 2>jnz short AstroVid.00470508
004704E4     80FB>cmp bl,30
004704E7     74 0>je short AstroVid.004704F2
004704E9     C745>mov dword ptr ss:[ebp+10],0A
004704F0     EB 3>jmp short AstroVid.00470524
004704F2     8A06 mov al,byte ptr ds:[esi]
004704F4     3C 7>cmp al,78
004704F6     74 0>je short AstroVid.00470505
004704F8     3C 5>cmp al,58
004704FA     74 0>je short AstroVid.00470505
004704FC     C745>mov dword ptr ss:[ebp+10],8
00470503     EB 1>jmp short AstroVid.00470524
00470505     894D>mov dword ptr ss:[ebp+10],ecx
00470508     394D>cmp dword ptr ss:[ebp+10],ecx
0047050B     75 1>jnz short AstroVid.00470524
0047050D     80FB>cmp bl,30
00470510     75 1>jnz short AstroVid.00470524
00470512     8A06 mov al,byte ptr ds:[esi]
00470514     3C 7>cmp al,78
00470516     74 0>je short AstroVid.0047051C
00470518     3C 5>cmp al,58
0047051A     75 0>jnz short AstroVid.00470524
0047051C     8A5E>mov bl,byte ptr ds:[esi+1]
0047051F     46   inc esi
00470520     46   inc esi
00470521     8975>mov dword ptr ss:[ebp-4],esi
00470524     83C8>or eax,FFFFFFFF
00470527     33D2 xor edx,edx
00470529     F775>div dword ptr ss:[ebp+10]
0047052C     BF 0>mov edi,103
00470531     8945>mov dword ptr ss:[ebp-C],eax
00470534     833D>cmp dword ptr ds:[4CE1DC],1         ; 算法部分
0047053B     0FB6>movzx esi,bl
0047053E     7E 0>jle short AstroVid.0047054C
00470540     6A 0>push 4
00470542     56   push esi
00470543     E8 F>call AstroVid.0047983B
00470548     59   pop ecx
00470549     59   pop ecx
0047054A     EB 0>jmp short AstroVid.00470557
0047054C     A1 D0DF4C00  mov eax,dword ptr ds:[4CDFD0]
00470551     8A0470       mov al,byte ptr ds:[eax+esi*2]      ; 查表得一值
00470554     83E0 04      and eax,4
00470557     85C0         test eax,eax
00470559     74 08        je short AstroVid.00470563          ; 此五行是判断假码中的字符是否是数字,
                                                不是则跳。跳则注册失败
0047055B     0FBECB       movsx ecx,bl
0047055E     83E9 30      sub ecx,30
00470561     EB 32        jmp short AstroVid.00470595
00470563     833D DCE14C0>cmp dword ptr ds:[4CE1DC],1
0047056A     7E 0B        jle short AstroVid.00470577
0047056C     57           push edi
0047056D     56           push esi
0047056E     E8 C8920000  call AstroVid.0047983B
00470573     59           pop ecx
00470574     59           pop ecx
00470575     EB 0B        jmp short AstroVid.00470582
00470577     A1 D0DF4C00  mov eax,dword ptr ds:[4CDFD0]
0047057C     66:8B0470    mov ax,word ptr ds:[eax+esi*2]
00470580     23C7         and eax,edi
00470582     85C0         test eax,eax
00470584     74 4A        je short AstroVid.004705D0
00470586     0FBEC3       movsx eax,bl
00470589     50           push eax
0047058A     E8 71910000  call AstroVid.00479700              ; 把小写字母变成大写字母
0047058F     59           pop ecx
00470590     8BC8         mov ecx,eax
00470592     83E9 37      sub ecx,37
00470595     3B4D 10      cmp ecx,dword ptr ss:[ebp+10]
00470598     73 36        jnb short AstroVid.004705D0
0047059A     8B75 F8      mov esi,dword ptr ss:[ebp-8]
0047059D     834D 14 08   or dword ptr ss:[ebp+14],8
004705A1     3B75 F4      cmp esi,dword ptr ss:[ebp-C]        ; 与19999999比较
004705A4     72 1>jb short AstroVid.004705BA
004705A6     75 0>jnz short AstroVid.004705B4
004705A8     83C8>or eax,FFFFFFFF
004705AB     33D2 xor edx,edx
004705AD     F775>div dword ptr ss:[ebp+10]
004705B0     3BCA cmp ecx,edx
004705B2     76 0>jbe short AstroVid.004705BA
004705B4     834D>or dword ptr ss:[ebp+14],4
004705B8     EB 0>jmp short AstroVid.004705C3
004705BA     0FAF>imul esi,dword ptr ss:[ebp+10]                ; 乘以“A”
004705BE     03F1 add esi,ecx                                                  ; 加假码的第i位
004705C0     8975>mov dword ptr ss:[ebp-8],esi                     ;把结果放到[ebp-8]
004705C3     8B45>mov eax,dword ptr ss:[ebp-4]                   ;假码的剩余部分给eax
004705C6     FF45>inc dword ptr ss:[ebp-4]                             ;循环控制
004705C9     8A18 mov bl,byte ptr ds:[eax]                               ;把假码传给bl
004705CB   ^ E9 6>jmp AstroVid.00470534
004705D0     8B45>mov eax,dword ptr ss:[ebp+14]
004705D3     FF4D>dec dword ptr ss:[ebp-4]
004705D6     8B5D>mov ebx,dword ptr ss:[ebp+C]
004705D9     A8 0>test al,8
004705DB     75 1>jnz short AstroVid.004705ED
004705DD     85DB test ebx,ebx
004705DF     74 0>je short AstroVid.004705E7
004705E1     8B45>mov eax,dword ptr ss:[ebp+8]
004705E4     8945>mov dword ptr ss:[ebp-4],eax
004705E7     8365>and dword ptr ss:[ebp-8],0
004705EB     EB 4>jmp short AstroVid.00470638
004705ED     A8 0>test al,4
004705EF     BE F>mov esi,7FFFFFFF
004705F4     75 1>jnz short AstroVid.00470611
004705F6     A8 0>test al,1
004705F8     75 3>jnz short AstroVid.00470638
004705FA     83E0>and eax,2
004705FD     74 0>je short AstroVid.00470608
004705FF     817D>cmp dword ptr ss:[ebp-8],80000000
00470606     77 0>ja short AstroVid.00470611
00470608     85C0 test eax,eax
0047060A     75 2>jnz short AstroVid.00470638
0047060C     3975>cmp dword ptr ss:[ebp-8],esi
0047060F     76 2>jbe short AstroVid.00470638
00470611     E8 8>call AstroVid.004722A3
00470616     F645>test byte ptr ss:[ebp+14],1
0047061A     C700>mov dword ptr ds:[eax],22
00470620     74 0>je short AstroVid.00470628
00470622     834D>or dword ptr ss:[ebp-8],FFFFFFFF
00470626     EB 1>jmp short AstroVid.00470638
00470628     8B45>mov eax,dword ptr ss:[ebp+14]
0047062B     24 0>and al,2
0047062D     F6D8 neg al
0047062F     1BC0 sbb eax,eax
00470631     F7D8 neg eax
00470633     03C6 add eax,esi
00470635     8945>mov dword ptr ss:[ebp-8],eax
00470638     85DB test ebx,ebx
0047063A     74 0>je short AstroVid.00470641
0047063C     8B45>mov eax,dword ptr ss:[ebp-4]
0047063F     8903 mov dword ptr ds:[ebx],eax
00470641     F645>test byte ptr ss:[ebp+14],2
00470645     74 0>je short AstroVid.0047064F
00470647     8B45>mov eax,dword ptr ss:[ebp-8]
0047064A     F7D8 neg eax
0047064C     8945>mov dword ptr ss:[ebp-8],eax
0047064F     8B45>mov eax,dword ptr ss:[ebp-8]             ;断在这,向上看看,得出算法
00470652     EB 0>jmp short AstroVid.0047065F
00470654     8B45>mov eax,dword ptr ss:[ebp+C]
00470657     85C0 test eax,eax
00470659     74 0>je short AstroVid.0047065D
0047065B     8938 mov dword ptr ds:[eax],edi
0047065D     33C0 xor eax,eax
0047065F     5F   pop edi
00470660     5E   pop esi
00470661     5B   pop ebx
00470662     C9   leave
00470663     C3   retn

小结:暴破点可有二处,第一处是启动验证,第二处是注册检验。
           0040525D     75 54                    jnz short AstroVid.004052B3
           00421C33     0F85 8C00000>jnz AstroVid.00421CC5   
          若要得到真码,自己去写注册机吧,本人较笨,不怎么会写。

[破解声明]我是一只小菜鸟,偶得一点心得,愿与大家分享:)

[版权]本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回