软件名称是:电视剧下载(电视剧、电视台) V1.44
下载地址是:
http://www4.skycn.com/soft/20221.html
我的问题在最下面。
0048E73D . 57 PUSH EDI ; 通过 DEDE 分析,应该在这儿下断点。
0048E73E . 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
0048E741 . 33C0 XOR EAX,EAX
0048E743 . 55 PUSH EBP
0048E744 . 68 CDE94800 PUSH 电视剧下.0048E9CD
0048E749 . 64:FF30 PUSH DWORD PTR FS:[EAX]
0048E74C . 64:8920 MOV DWORD PTR FS:[EAX],ESP
0048E74F . 803D D45C4A00 00 CMP BYTE PTR DS:[4A5CD4],0
0048E756 74 1A JE SHORT 电视剧下.0048E772 ; 如果先前曾经成功注册过,则给个提示。一开始还以为这儿是关键判断呢,往后看才知道这儿不是。
0048E758 . 6A 00 PUSH 0 ; /Arg1 = 00000000
0048E75A . 66:8B0D DCE94800 MOV CX,WORD PTR DS:[48E9DC] ; |
0048E761 . B2 02 MOV DL,2 ; |
0048E763 . B8 E8E94800 MOV EAX,电视剧下.0048E9E8 ; |
0048E768 . E8 3B05FAFF CALL 电视剧下.0042ECA8 ; \电视剧下.0042ECA8
0048E76D . E9 FE010000 JMP 电视剧下.0048E970
0048E772 > 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
0048E775 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0048E778 . 8B80 3C030000 MOV EAX,DWORD PTR DS:[EAX+33C]
0048E77E . E8 C56DFBFF CALL 电视剧下.00445548 ; 取出假码
0048E783 . 837D F0 00 CMP DWORD PTR SS:[EBP-10],0
0048E787 . 74 1E JE SHORT 电视剧下.0048E7A7 ; 如果假码长度为0则跳到错误提示。
0048E789 . 8D55 EC LEA EDX,DWORD PTR SS:[EBP-14]
0048E78C . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0048E78F . 8B80 3C030000 MOV EAX,DWORD PTR DS:[EAX+33C]
0048E795 . E8 AE6DFBFF CALL 电视剧下.00445548
0048E79A . 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14]
0048E79D . E8 F25BF7FF CALL 电视剧下.00404394
0048E7A2 . 83F8 08 CMP EAX,8 ; 输入的注册码长度必须小于或等于8位,否则跳往死亡。
0048E7A5 . 7E 0F JLE SHORT 电视剧下.0048E7B6 ; 必须跳,写内存注册机的时候,先修改此处内存。改 7E 为 EB。
0048E7A7 > B8 10EA4800 MOV EAX,电视剧下.0048EA10
0048E7AC . E8 EF05FAFF CALL 电视剧下.0042EDA0
0048E7B1 . E9 BA010000 JMP 电视剧下.0048E970
0048E7B6 > 8D45 E4 LEA EAX,DWORD PTR SS:[EBP-1C]
0048E7B9 . 50 PUSH EAX
0048E7BA . 8D55 E0 LEA EDX,DWORD PTR SS:[EBP-20]
0048E7BD . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0048E7C0 . 8B80 40030000 MOV EAX,DWORD PTR DS:[EAX+340]
0048E7C6 . E8 7D6DFBFF CALL 电视剧下.00445548 ; 取机器码
0048E7CB . 8B45 E0 MOV EAX,DWORD PTR SS:[EBP-20]
0048E7CE . B9 06000000 MOV ECX,6
0048E7D3 . BA 01000000 MOV EDX,1
0048E7D8 . E8 175EF7FF CALL 电视剧下.004045F4
0048E7DD . 8B4D E4 MOV ECX,DWORD PTR SS:[EBP-1C]
0048E7E0 . 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
0048E7E3 . BA 3CEA4800 MOV EDX,电视剧下.0048EA3C ; ASCII "0x"
0048E7E8 . E8 F35BF7FF CALL 电视剧下.004043E0
0048E7ED . 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18]
0048E7F0 . E8 7F9FF7FF CALL 电视剧下.00408774
0048E7F5 . 8BF0 MOV ESI,EAX
0048E7F7 . 33C0 XOR EAX,EAX
0048E7F9 . 55 PUSH EBP
0048E7FA . 68 27E94800 PUSH 电视剧下.0048E927
0048E7FF . 64:FF30 PUSH DWORD PTR FS:[EAX]
0048E802 . 64:8920 MOV DWORD PTR FS:[EAX],ESP
0048E805 . 8D55 DC LEA EDX,DWORD PTR SS:[EBP-24]
0048E808 . 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0048E80B . 8B80 3C030000 MOV EAX,DWORD PTR DS:[EAX+33C]
0048E811 . E8 326DFBFF CALL 电视剧下.00445548
0048E816 . 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24] ; 取出假码
0048E819 . E8 569FF7FF CALL 电视剧下.00408774 ; 这个CALL计算内容好多,估计有一个是根据机器码生成一串数字,赋给 ESI。
0048E81E . 8BD8 MOV EBX,EAX
0048E820 8BC3 MOV EAX,EBX
0048E822 2BC6 SUB EAX,ESI ; 用假码与ESI的值相减,结果如果是112233即正确,因此,真正的注册码应该是ESI+112233=12063035
0048E824 3B05 B43A4A00 CMP EAX,DWORD PTR DS:[4A3AB4]
0048E82A 74 38 JE SHORT 电视剧下.0048E864 ; 跳往注册成功!不跳必然死掉。
请教:从最后一行往上数第3行是判断注册码正确与否的关键比较,因此,真正的注册码应该是 ESI 的值与常数 112233 相加,但写注册机的时候如何让它弹出相加后的值呢?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)