首页
社区
课程
招聘
[旧帖] [求助]学了N久汇编还看不懂,本想请那位大大帮忙加的..结果全是自己加注释 0.00雪花
发表于: 2007-1-4 23:19 6071

[旧帖] [求助]学了N久汇编还看不懂,本想请那位大大帮忙加的..结果全是自己加注释 0.00雪花

2007-1-4 23:19
6071
说明这个软件有重启验证,下面是说明里的一段话

3. 问:操作系统重新安装后本软件是否需要重新注册?
答:不需要重新注册,只需将备份的Data目录拷贝到执行文件同一目录,覆盖已有Data目录即可。

Data里面有三个文件,二个是数据文件,还有一个呵呵不用说了,一定就那个文件

还有注册窗口出现时,软件的安装目录里会出现一个临时文件,,*5.*

008C278C > $  55            push    ebp
008C278D   .  8BEC          mov     ebp, esp
008C278F   .  83C4 F0       add     esp, -10
008C2792   .  53            push    ebx
008C2793   .  56            push    esi
008C2794   .  57            push    edi
008C2795   .  B8 CC198C00   mov     eax, 008C19CC
008C279A   .  E8 314FB4FF   call    004076D0
008C279F   .  A1 64648D00   mov     eax, dword ptr [8D6464]
008C27A4   .  8B00          mov     eax, dword ptr [eax]
008C27A6   .  E8 4D9FBBFF   call    0047C6F8
008C27AB   .  A1 64648D00   mov     eax, dword ptr [8D6464]
008C27B0   .  8B00          mov     eax, dword ptr [eax]
008C27B2   .  BA 042A8C00   mov     edx, 008C2A04                    ;  
008C27B7   .  E8 089BBBFF   call    0047C2C4
008C27BC   .  33C0          xor     eax, eax
008C27BE   .  55            push    ebp
008C27BF   .  68 48288C00   push    008C2848
008C27C4   .  64:FF30       push    dword ptr fs:[eax]
008C27C7   .  64:8920       mov     dword ptr fs:[eax], esp
008C27CA   .  8B0D F05B8D00 mov     ecx, dword ptr [8D5BF0]          ;  Unpacked.008D9704
008C27D0   .  A1 64648D00   mov     eax, dword ptr [8D6464]
008C27D5   .  8B00          mov     eax, dword ptr [eax]
008C27D7   .  8B15 5CC58B00 mov     edx, dword ptr [8BC55C]          ;  Unpacked.008BC5A8
008C27DD   .  E8 2E9FBBFF   call    0047C710
008C27E2   .  E8 915DD1FF   call    005D8578
008C27E7   .  E8 A453D1FF   call    005D7B90
008C27EC   .  84C0          test    al, al
008C27EE      75 4E         jnz     short 008C283E                   ;  这里改Jz和JMP就能跳过注册
008C27F0   .  B8 282A8C00   mov     eax, 008C2A28                    ;  本软件未注册或试用已过期!
008C27F5   .  E8 0EEEB8FF   call    00451608
008C27FA   .  8B0D 64648D00 mov     ecx, dword ptr [8D6464]          ;  Unpacked.008D7C40
008C2800   .  8B09          mov     ecx, dword ptr [ecx]
008C2802   .  B2 01         mov     dl, 1
008C2804   .  A1 60F98500   mov     eax, dword ptr [85F960]
008C2809   .  E8 AA21BBFF   call    004749B8
008C280E   .  8B15 CC5B8D00 mov     edx, dword ptr [8D5BCC]          ;  Unpacked.008D94C4
008C2814   .  8902          mov     dword ptr [edx], eax
008C2816   .  A1 CC5B8D00   mov     eax, dword ptr [8D5BCC]
008C281B   .  8B00          mov     eax, dword ptr [eax]
008C281D   .  8B10          mov     edx, dword ptr [eax]
008C281F   .  FF92 E8000000 call    dword ptr [edx+E8]               ;  到这里时以出第五个临时文件*5.*
008C2825   .  A1 64648D00   mov     eax, dword ptr [8D6464]
008C282A   .  8B00          mov     eax, dword ptr [eax]
008C282C   .  E8 4BA0BBFF   call    0047C87C
008C2831   .  33C0          xor     eax, eax
008C2833   .  5A            pop     edx
008C2834   .  59            pop     ecx
008C2835   .  59            pop     ecx
008C2836   .  64:8910       mov     dword ptr fs:[eax], edx
008C2839   .  E9 B6010000   jmp     008C29F4
008C283E   >  33C0          xor     eax, eax

008C281F   .  FF92 E8000000 call    dword ptr [edx+E8]               ;  到这里时以出第五个临时文件*5.*
这里是008C281F跟入后的
00478FEC  /.  55            push    ebp
00478FED  |.  8BEC          mov     ebp, esp
00478FEF  |.  83C4 E0       add     esp, -20
00478FF2  |.  53            push    ebx
00478FF3  |.  56            push    esi
00478FF4  |.  33D2          xor     edx, edx
00478FF6  |.  8955 E0       mov     dword ptr [ebp-20], edx
00478FF9  |.  8945 FC       mov     dword ptr [ebp-4], eax
00478FFC  |.  BB 407C8D00   mov     ebx, 008D7C40
00479001  |.  33C0          xor     eax, eax
00479003  |.  55            push    ebp
00479004  |.  68 7C924700   push    0047927C
00479009  |.  64:FF30       push    dword ptr fs:[eax]
0047900C  |.  64:8920       mov     dword ptr fs:[eax], esp
0047900F  |.  E8 58F3FDFF   call    0045836C
00479014  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00479017  |.  8078 57 00    cmp     byte ptr [eax+57], 0
0047901B  |.  75 24         jnz     short 00479041
0047901D  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00479020  |.  8B10          mov     edx, dword ptr [eax]
00479022  |.  FF52 50       call    dword ptr [edx+50]
00479025  |.  84C0          test    al, al
00479027  |.  74 18         je      short 00479041
00479029  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
0047902C  |.  F680 EC020000>test    byte ptr [eax+2EC], 8
00479033  |.  75 0C         jnz     short 00479041
00479035  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00479038  |.  80B8 2F020000>cmp     byte ptr [eax+22F], 1
0047903F  |.  75 21         jnz     short 00479062
00479041  |>  8D55 E0       lea     edx, dword ptr [ebp-20]
00479044  |.  A1 38628D00   mov     eax, dword ptr [8D6238]
00479049  |.  E8 8AE4F8FF   call    004074D8
0047904E  |.  8B4D E0       mov     ecx, dword ptr [ebp-20]
00479051  |.  B2 01         mov     dl, 1
00479053  |.  A1 80DF4100   mov     eax, dword ptr [41DF80]
00479058  |.  E8 4364F9FF   call    0040F4A0
0047905D  |.  E8 FEB6F8FF   call    00404760
00479062  |>  E8 6DF3F8FF   call    <jmp.&user32.GetCapture>         ; [GetCapture
00479067  |.  85C0          test    eax, eax
00479069  |.  74 11         je      short 0047907C
0047906B  |.  6A 00         push    0                                ; /lParam = 0
0047906D  |.  6A 00         push    0                                ; |wParam = 0
0047906F  |.  6A 1F         push    1F                               ; |Message = WM_CANCELMODE
00479071  |.  E8 5EF3F8FF   call    <jmp.&user32.GetCapture>         ; |[GetCapture
00479076  |.  50            push    eax                              ; |hWnd
00479077  |.  E8 A8F6F8FF   call    <jmp.&user32.SendMessageA>       ; \SendMessageA
0047907C  |>  E8 5BF6F8FF   call    <jmp.&user32.ReleaseCapture>     ; [ReleaseCapture
00479081  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00479084  |.  8088 EC020000>or      byte ptr [eax+2EC], 8
0047908B  |.  E8 34F3F8FF   call    <jmp.&user32.GetActiveWindow>    ; [GetActiveWindow
00479090  |.  8945 E4       mov     dword ptr [ebp-1C], eax
00479093  |.  A1 E03F8C00   mov     eax, dword ptr [8C3FE0]
00479098  |.  8945 F0       mov     dword ptr [ebp-10], eax
0047909B  |.  A1 447C8D00   mov     eax, dword ptr [8D7C44]
004790A0  |.  8B48 78       mov     ecx, dword ptr [eax+78]
004790A3  |.  A1 447C8D00   mov     eax, dword ptr [8D7C44]
004790A8  |.  8B40 7C       mov     eax, dword ptr [eax+7C]
004790AB  |.  33D2          xor     edx, edx
004790AD  |.  E8 F27AFAFF   call    00420BA4
004790B2  |.  A1 447C8D00   mov     eax, dword ptr [8D7C44]
004790B7  |.  8B55 FC       mov     edx, dword ptr [ebp-4]
004790BA  |.  8950 78       mov     dword ptr [eax+78], edx
004790BD  |.  A1 447C8D00   mov     eax, dword ptr [8D7C44]
004790C2  |.  66:8B40 44    mov     ax, word ptr [eax+44]
004790C6  |.  66:8945 EE    mov     word ptr [ebp-12], ax
004790CA  |.  33D2          xor     edx, edx
004790CC  |.  A1 447C8D00   mov     eax, dword ptr [8D7C44]
004790D1  |.  E8 7E150000   call    0047A654
004790D6  |.  A1 447C8D00   mov     eax, dword ptr [8D7C44]
004790DB  |.  8B40 48       mov     eax, dword ptr [eax+48]
004790DE  |.  8945 E8       mov     dword ptr [ebp-18], eax
004790E1  |.  33C0          xor     eax, eax
004790E3  |.  E8 2C9CFFFF   call    00472D14
004790E8  |.  8945 F4       mov     dword ptr [ebp-C], eax
004790EB  |.  33D2          xor     edx, edx
004790ED  |.  55            push    ebp
004790EE  |.  68 5C924700   push    0047925C
004790F3  |.  64:FF32       push    dword ptr fs:[edx]
004790F6  |.  64:8922       mov     dword ptr fs:[edx], esp
004790F9  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  这里会出注册窗口段是里面什么也没有
004790FC  |.  E8 3BFEFFFF   call    00478F3C
00479101  |.  33D2          xor     edx, edx
00479103  |.  55            push    ebp
00479104  |.  68 BB914700   push    004791BB
00479109  |.  64:FF32       push    dword ptr fs:[edx]
0047910C  |.  64:8922       mov     dword ptr fs:[edx], esp
0047910F  |.  6A 00         push    0
00479111  |.  6A 00         push    0
00479113  |.  68 00B00000   push    0B000
00479118  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
0047911B  |.  E8 A474FEFF   call    004605C4
00479120  |.  50            push    eax                              ; |hWnd
00479121  |.  E8 FEF5F8FF   call    <jmp.&user32.SendMessageA>       ; \SendMessageA
00479126  |.  8B45 FC       mov     eax, dword ptr [ebp-4]
00479129  |.  33D2          xor     edx, edx
0047912B  |.  8990 4C020000 mov     dword ptr [eax+24C], edx
00479131  |>  8B03          /mov     eax, dword ptr [ebx]            ;  这里往下是关键
00479133  |.  E8 C4340000   |call    0047C5FC
00479138  |.  8B03          |mov     eax, dword ptr [ebx]            ;  注册窗口输入框
0047913A  |.  80B8 9C000000>|cmp     byte ptr [eax+9C], 0
00479141  |.  74 0F         |je      short 00479152
00479143  |.  8B45 FC       |mov     eax, dword ptr [ebp-4]
00479146  |.  C780 4C020000>|mov     dword ptr [eax+24C], 2
00479150  |.  EB 14         |jmp     short 00479166
00479152  |>  8B45 FC       |mov     eax, dword ptr [ebp-4]
00479155  |.  83B8 4C020000>|cmp     dword ptr [eax+24C], 0
0047915C  |.  74 08         |je      short 00479166
0047915E  |.  8B45 FC       |mov     eax, dword ptr [ebp-4]
00479161  |.  E8 F2F9FFFF   |call    00478B58
00479166  |>  8B45 FC       |mov     eax, dword ptr [ebp-4]
00479169  |.  8B80 4C020000 |mov     eax, dword ptr [eax+24C]
0047916F  |.  85C0          |test    eax, eax
00479171    ^ 74 BE         je      short 00479131                   ;  这里往上跳几次就出几个临时文件
00479173  |.  8945 F8       mov     dword ptr [ebp-8], eax           ;  注册失败

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (18)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
00479131  |>  8B03          /mov     eax, dword ptr [ebx]            ;  这里往下是关键
00479133  |.  E8 C4340000   |call    0047C5FC
00479138  |.  8B03          |mov     eax, dword ptr [ebx]            ;  注册窗口输入框
0047913A  |.  80B8 9C000000>|cmp     byte ptr [eax+9C], 0
00479141  |.  74 0F         |je      short 00479152
00479143  |.  8B45 FC       |mov     eax, dword ptr [ebp-4]
00479146  |.  C780 4C020000>|mov     dword ptr [eax+24C], 2
00479150  |.  EB 14         |jmp     short 00479166
00479152  |>  8B45 FC       |mov     eax, dword ptr [ebp-4]
00479155  |.  83B8 4C020000>|cmp     dword ptr [eax+24C], 0
0047915C  |.  74 08         |je      short 00479166
0047915E  |.  8B45 FC       |mov     eax, dword ptr [ebp-4]
00479161  |.  E8 F2F9FFFF   |call    00478B58
00479166  |>  8B45 FC       |mov     eax, dword ptr [ebp-4]
00479169  |.  8B80 4C020000 |mov     eax, dword ptr [eax+24C]
0047916F  |.  85C0          |test    eax, eax
00479171    ^ 74 BE         je      short 00479131                   ;  这里往上跳几次就出几个临时文件

也就是说到注册窗口出来时.那个je跳了五次
008C281F   .  FF92 E8000000 call    dword ptr [edx+E8]               ;  到这里时以出第五个临时文件*5.*
2007-1-5 10:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
008C27DD    .  E8 2E9FBBFF    call Unpacked.0047C710
008C27E2    .  E8 915DD1FF    call Unpacked.005D8578
008C27E7    .  E8 A453D1FF    call Unpacked.005D7B90

这三个call跟一跟看看
2007-1-5 11:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不太懂,为什么要跟前面的???
还有汇编太菜,,
2007-1-5 11:58
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
008C27EC    .  84C0           test al,al
008C27EE    .  75 4E          jnz short Unpacked.008C283E              ;  这里改jmp就爆破了

如果这个没错的话,算法应该再前面不远处,最后运算结果会影响al
2007-1-5 12:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
008C27DD   .  E8 2E9FBBFF   call    0047C710
008C27E2   .  E8 915DD1FF   call    005D8578
008C27E7   .  E8 A453D1FF   call    005D7B90
008C27EC   .  84C0          test    al, al
008C27EE   .  75 4E         jnz     short 008C283E     
008C27F0   .  B8 282A8C00   mov     eax, 008C2A28                    ;  本软件未注册或试用已过期!

008C27EE   .  75 4E         jnz     short 008C283E 这里改jmp是跳过了注册

008C281F   .  FF92 E8000000 call    dword ptr [edx+E8] 这才是注册窗口

008C283E > 33C0 xor eax,eax
2007-1-5 13:11
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
008C281F   .  FF92 E8000000 call    dword ptr [edx+E8]

这个call应该作用不大吧?
2007-1-5 13:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
008C281F . FF92 E8000000 call dword ptr ds:[edx+E8] ; 注册是这里面完成的可是跟进去,,就迷路了
2007-1-5 13:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我也很菜,不过我认为既然
       test al,al
       jnz short Unpacked.008C283E
是判断是否注册的标准,那么注册部分的子程序应该在这两句代码前面,应该在前面的call跟进看看而不是跟到后面的call里去
2007-1-5 13:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
还要看是什么注册方式
2007-1-5 13:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
008C27DD   .  E8 2E9FBBFF   call    0047C710
008C27E2   .  E8 915DD1FF   call    005D8578
008C27E7   .  E8 A453D1FF   call    005D7B90
我直觉这三个里面应该有个注册程序,注册程序会影响al的值,进入注册后就会
test al,al来检查是否注册,如果注册就实现下边的一句跳转指令jnz ,否则跳转不实现进入接下来的指令,接下来的指令应该是告诉我们程序过期或者没注册什么的了
2007-1-5 13:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
他发出来是想让人家给他加注释,可是光是静态分析一下就能加注释的吗?
2007-1-5 13:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
008C27DD   .  E8 2E9FBBFF   call    0047C710
008C27E2   .  E8 915DD1FF   call    005D8578
008C27E7   .  E8 A453D1FF   call    005D7B90
008C27EC   .  84C0          test    al, al
008C27EE   .  75 4E         jnz     short 008C283E
008C27F0   .  B8 282A8C00   mov     eax, 008C2A28                    ;  本软件未注册或试用已过期!
注册成功后会改变一文件,,前面的三个call,,可能是看,有没注册和过期
008C27EC   .  84C0          test    al, al
008C27EE   .  75 4E         jnz     short 008C283E要是注册的话.这里就跳过,没就不跳,,不跳就会走到
008C281F . FF92 E8000000 call dword ptr ds:[edx+E8]这里要注册
2007-1-5 13:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
,,有高人路过帮忙看看
2007-1-5 14:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
有重启验证吗?
2007-1-5 14:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
最初由 SmileBoy 发布
有重启验证吗?


有重启验证,下面是说明里的一段话

3. 问:操作系统重新安装后本软件是否需要重新注册?
答:不需要重新注册,只需将备份的Data目录拷贝到执行文件同一目录,覆盖已有Data目录即可。
2007-1-5 20:55
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
就是说软件每次启动都会检查data目录里的某个文件
2007-1-6 12:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
恩,路过,学习一下
2007-1-6 18:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
最初由 SmileBoy 发布
就是说软件每次启动都会检查data目录里的某个文件

是的,Data里面有三个文件。。我在改主帖详细看主贴。。
2007-1-6 21:48
0
游客
登录 | 注册 方可回帖
返回
//