飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3504|回复: 7

[原创] 手机图片电子书籍生成器 V4.0 注册分析

[复制链接]

该用户从未签到

发表于 2007-8-12 01:46:49 | 显示全部楼层 |阅读模式
软件大小: 183 KB
软件语言: 简体中文
软件类别: 国产软件 / 共享版 / 电子阅读
应用平台: Win9x/NT/2000/XP/2003
更新时间: 2006-12-27 12:13:06

天空下载: http://www1.skycn.com/soft/25892.html

软件介绍:
    本软件能够把电脑上的电子书籍、文本文件、ASCII码文件大规模的转化成能在手机和数码相机上适用的图片,图文中的字体、背影颜色和字的颜色可随意设置,极为方遍渴望读书的朋友阅读。对于一些喜欢看网络小说、新闻的朋友是不错的选择。软件功能:把电子书籍、网络小说等文字内容转化成图片书籍。使用本软件的条件为:1、手机可以浏览图片或有数码相机,并能够把电脑上的图片传输到手机和数码相机上。2、手机或数码相机的可用于存储的空间大于10M。3、不需要有电脑,在网吧即可完成操作。手机图片电子书籍生成器 2.00,又称移动版,是有VC  编写,不需要.net平台的支持,可以在WIN98,2000,XP中运行。对于没有电脑的朋友,可能把安装后的文件夹考到手机内存卡或数码相机存储卡中使用,也可以只在内存卡中存储注册文件,需要使用软件时,其它文件从网上下载文件压缩包(不需安装,下载即可使用),如果已经注册,把程序包解压后放对注册盘中,把注册文件拷入应用程序所在目录,即可使用。

破文声名:软件暴破不难,软件的注册和验证流程很典型,所以本文重点放在来分析软件的验证过程,写给新手,高手可飘过。

00404C70   .  6A FF         PUSH -1                                     ;  我们在这里下断点
00404C72   .  68 D8574400   PUSH 手机图片.004457D8                       ;  歌QE; SE 处理程序安装
00404C77   .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00404C7D   .  50            PUSH EAX
00404C7E   .  64:8925 00000>MOV DWORD PTR FS:[0],ESP
00404C85   .  83EC 20       SUB ESP,20
00404C88   .  55            PUSH EBP
00404C89   .  56            PUSH ESI
00404C8A   .  8BF1          MOV ESI,ECX
00404C8C   .  57            PUSH EDI
00404C8D   .  8D4C24 18     LEA ECX,DWORD PTR SS:[ESP+18]
00404C91   .  E8 1AD6FFFF   CALL 手机图片.004022B0
00404C96   .  C74424 34 000>MOV DWORD PTR SS:[ESP+34],0
00404C9E   .  E8 0C280200   CALL 手机图片.004274AF
00404CA3   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
00404CA5   .  8BC8          MOV ECX,EAX
00404CA7   .  FF52 0C       CALL DWORD PTR DS:[EDX+C]
00404CAA   .  83C0 10       ADD EAX,10
00404CAD   .  894424 0C     MOV DWORD PTR SS:[ESP+C],EAX
00404CB1   .  C64424 34 01  MOV BYTE PTR SS:[ESP+34],1
00404CB6   .  E8 F4270200   CALL 手机图片.004274AF
00404CBB   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
00404CBD   .  8BC8          MOV ECX,EAX
00404CBF   .  FF52 0C       CALL DWORD PTR DS:[EDX+C]
00404CC2   .  8D78 10       LEA EDI,DWORD PTR DS:[EAX+10]
00404CC5   .  897C24 10     MOV DWORD PTR SS:[ESP+10],EDI
00404CC9   .  6A 01         PUSH 1
00404CCB   .  8BCE          MOV ECX,ESI
00404CCD   .  C64424 38 02  MOV BYTE PTR SS:[ESP+38],2
00404CD2   .  E8 C1EE0100   CALL 手机图片.00423B98
00404CD7   .  8D46 78       LEA EAX,DWORD PTR DS:[ESI+78]
00404CDA   .  50            PUSH EAX
00404CDB   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
00404CDF   .  E8 1CCDFFFF   CALL 手机图片.00401A00
00404CE4   .  8B46 74       MOV EAX,DWORD PTR DS:[ESI+74]
00404CE7   .  51            PUSH ECX
00404CE8   .  83E8 10       SUB EAX,10
00404CEB   .  896424 18     MOV DWORD PTR SS:[ESP+18],ESP
00404CEF   .  8BEC          MOV EBP,ESP
00404CF1   .  50            PUSH EAX
00404CF2   .  E8 59C8FFFF   CALL 手机图片.00401550
00404CF7   .  83C0 10       ADD EAX,10
00404CFA   .  83C4 04       ADD ESP,4
00404CFD   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
00404D01   .  8945 00       MOV DWORD PTR SS:[EBP],EAX
00404D04   .  E8 97E0FFFF   CALL 手机图片.00402DA0                       ;  算法CALL 我们F7跟进
00404D09   .  84C0          TEST AL,AL
00404D0B   .  74 4A         JE SHORT 手机图片.00404D57
00404D0D   .  8B46 74       MOV EAX,DWORD PTR DS:[ESI+74]
00404D10   .  51            PUSH ECX
00404D11   .  83E8 10       SUB EAX,10
00404D14   .  896424 18     MOV DWORD PTR SS:[ESP+18],ESP
00404D18   .  8BEC          MOV EBP,ESP
00404D1A   .  50            PUSH EAX
00404D1B   .  E8 30C8FFFF   CALL 手机图片.00401550
00404D20   .  83C0 10       ADD EAX,10
00404D23   .  83C4 04       ADD ESP,4
00404D26   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
00404D2A   .  8945 00       MOV DWORD PTR SS:[EBP],EAX
00404D2D   .  E8 6EE4FFFF   CALL 手机图片.004031A0                      ;  该CALL保存我们输入的注册信息 我们F7跟进
00404D32   .  6A 00         PUSH 0
00404D34   .  6A 00         PUSH 0
00404D36   .  68 B0964400   PUSH 手机图片.004496B0                       ;  注册成功!
00404D3B   .  8BCE          MOV ECX,ESI
00404D3D   .  E8 07EC0100   CALL 手机图片.00423949
00404D42   .  8B16          MOV EDX,DWORD PTR DS:[ESI]
00404D44   .  8BCE          MOV ECX,ESI
00404D46   .  FF92 4C010000 CALL DWORD PTR DS:[EDX+14C]
00404D4C   .  6A 00         PUSH 0
00404D4E   .  8BCE          MOV ECX,ESI
00404D50   .  E8 43EE0100   CALL 手机图片.00423B98
00404D55   .  EB 10         JMP SHORT 手机图片.00404D67
00404D57   >  6A 00         PUSH 0
00404D59   .  6A 00         PUSH 0
00404D5B   .  68 A0964400   PUSH 手机图片.004496A0                       ;  非法注册码!
00404D60   .  8BCE          MOV ECX,ESI
00404D62   .  E8 E2EB0100   CALL 手机图片.00423949

我们F7跟进算法CALL后,看到信息窗口有三处调用,一会我们来说明一下这三处调用起什么作用。
局部调用来自 00403265, 00403789, 00404D04(该地址是注册时候的验证)

00402DA0   $  6A FF         PUSH -1
00402DA2   .  68 18554400   PUSH 手机图片.00445518                       ;  SE 处理程序安装
00402DA7   .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00402DAD   .  50            PUSH EAX
00402DAE   .  64:8925 00000>MOV DWORD PTR FS:[0],ESP
00402DB5   .  83EC 20       SUB ESP,20
00402DB8   .  53            PUSH EBX
00402DB9   .  55            PUSH EBP
00402DBA   .  56            PUSH ESI
00402DBB   .  57            PUSH EDI
00402DBC   .  8BF1          MOV ESI,ECX
00402DBE   .  C74424 38 000>MOV DWORD PTR SS:[ESP+38],0
00402DC6   .  E8 E4460200   CALL 手机图片.004274AF
00402DCB   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
00402DCD   .  8BC8          MOV ECX,EAX
00402DCF   .  FF52 0C       CALL DWORD PTR DS:[EDX+C]
00402DD2   .  83C0 10       ADD EAX,10
00402DD5   .  894424 14     MOV DWORD PTR SS:[ESP+14],EAX
00402DD9   .  C64424 38 01  MOV BYTE PTR SS:[ESP+38],1
00402DDE   .  E8 CC460200   CALL 手机图片.004274AF
00402DE3   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
00402DE5   .  8BC8          MOV ECX,EAX
00402DE7   .  FF52 0C       CALL DWORD PTR DS:[EDX+C]
00402DEA   .  83C0 10       ADD EAX,10
00402DED   .  894424 18     MOV DWORD PTR SS:[ESP+18],EAX
00402DF1   .  C64424 38 02  MOV BYTE PTR SS:[ESP+38],2
00402DF6   .  E8 B4460200   CALL 手机图片.004274AF
00402DFB   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
00402DFD   .  8BC8          MOV ECX,EAX
00402DFF   .  FF52 0C       CALL DWORD PTR DS:[EDX+C]
00402E02   .  83C0 10       ADD EAX,10
00402E05   .  894424 20     MOV DWORD PTR SS:[ESP+20],EAX
00402E09   .  C64424 38 03  MOV BYTE PTR SS:[ESP+38],3
00402E0E   .  E8 9C460200   CALL 手机图片.004274AF
00402E13   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
00402E15   .  8BC8          MOV ECX,EAX
00402E17   .  FF52 0C       CALL DWORD PTR DS:[EDX+C]
00402E1A   .  83C0 10       ADD EAX,10
00402E1D   .  894424 10     MOV DWORD PTR SS:[ESP+10],EAX
00402E21   .  C64424 38 04  MOV BYTE PTR SS:[ESP+38],4
00402E26   .  E8 84460200   CALL 手机图片.004274AF
00402E2B   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
00402E2D   .  8BC8          MOV ECX,EAX
00402E2F   .  FF52 0C       CALL DWORD PTR DS:[EDX+C]
00402E32   .  83C0 10       ADD EAX,10
00402E35   .  894424 1C     MOV DWORD PTR SS:[ESP+1C],EAX
00402E39   .  8B46 08       MOV EAX,DWORD PTR DS:[ESI+8]
00402E3C   .  51            PUSH ECX
00402E3D   .  83E8 10       SUB EAX,10
00402E40   .  B3 05         MOV BL,5
00402E42   .  896424 2C     MOV DWORD PTR SS:[ESP+2C],ESP
00402E46   .  8BFC          MOV EDI,ESP
00402E48   .  50            PUSH EAX
00402E49   .  885C24 40     MOV BYTE PTR SS:[ESP+40],BL
00402E4D   .  E8 FEE6FFFF   CALL 手机图片.00401550
00402E52   .  83C0 10       ADD EAX,10
00402E55   .  8907          MOV DWORD PTR DS:[EDI],EAX
00402E57   .  8B6C24 48     MOV EBP,DWORD PTR SS:[ESP+48]
00402E5B   .  83C5 F0       ADD EBP,-10
00402E5E   .  896424 34     MOV DWORD PTR SS:[ESP+34],ESP
00402E62   .  8BFC          MOV EDI,ESP
00402E64   .  55            PUSH EBP
00402E65   .  C64424 44 06  MOV BYTE PTR SS:[ESP+44],6
00402E6A   .  E8 E1E6FFFF   CALL 手机图片.00401550
00402E6F   .  83C0 10       ADD EAX,10
00402E72   .  8907          MOV DWORD PTR DS:[EDI],EAX
00402E74   .  83C4 04       ADD ESP,4
00402E77   .  8D4424 2C     LEA EAX,DWORD PTR SS:[ESP+2C]
00402E7B   .  50            PUSH EAX
00402E7C   .  8BCE          MOV ECX,ESI
00402E7E   .  885C24 44     MOV BYTE PTR SS:[ESP+44],BL
00402E82   .  E8 99FAFFFF   CALL 手机图片.00402920
00402E87   .  50            PUSH EAX
00402E88   .  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
00402E8C   .  C64424 3C 07  MOV BYTE PTR SS:[ESP+3C],7
00402E91   .  E8 6AEBFFFF   CALL 手机图片.00401A00
00402E96   .  8B4424 24     MOV EAX,DWORD PTR SS:[ESP+24]
00402E9A   .  885C24 38     MOV BYTE PTR SS:[ESP+38],BL
00402E9E   .  83C0 F0       ADD EAX,-10
00402EA1   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
00402EA4   .  83CA FF       OR EDX,FFFFFFFF
00402EA7   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
00402EAB   .  4A            DEC EDX
00402EAC   .  85D2          TEST EDX,EDX
00402EAE   .  7F 08         JG SHORT 手机图片.00402EB8
00402EB0   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
00402EB2   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
00402EB4   .  50            PUSH EAX
00402EB5   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00402EB8   >  8B4424 10     MOV EAX,DWORD PTR SS:[ESP+10]
00402EBC   .  8B78 F4       MOV EDI,DWORD PTR DS:[EAX-C]
00402EBF   .  6A 02         PUSH 2
00402EC1   .  6A 00         PUSH 0
00402EC3   .  8D4C24 2C     LEA ECX,DWORD PTR SS:[ESP+2C]
00402EC7   .  51            PUSH ECX
00402EC8   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
00402ECC   .  E8 AFEFFFFF   CALL 手机图片.00401E80
00402ED1   .  50            PUSH EAX
00402ED2   .  8D4C24 18     LEA ECX,DWORD PTR SS:[ESP+18]
00402ED6   .  C64424 3C 08  MOV BYTE PTR SS:[ESP+3C],8
00402EDB   .  E8 20EBFFFF   CALL 手机图片.00401A00
00402EE0   .  8B4424 24     MOV EAX,DWORD PTR SS:[ESP+24]
00402EE4   .  83C0 F0       ADD EAX,-10
00402EE7   .  885C24 38     MOV BYTE PTR SS:[ESP+38],BL
00402EEB   .  8D50 0C       LEA EDX,DWORD PTR DS:[EAX+C]
00402EEE   .  83C9 FF       OR ECX,FFFFFFFF
00402EF1   .  F0:0FC10A     LOCK XADD DWORD PTR DS:[EDX],ECX         ;  LOCK 前缀
00402EF5   .  49            DEC ECX
00402EF6   .  85C9          TEST ECX,ECX
00402EF8   .  7F 08         JG SHORT 手机图片.00402F02
00402EFA   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
00402EFC   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
00402EFE   .  50            PUSH EAX
00402EFF   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00402F02   >  6A 02         PUSH 2
00402F04   .  6A 02         PUSH 2
00402F06   .  8D4424 2C     LEA EAX,DWORD PTR SS:[ESP+2C]
00402F0A   .  50            PUSH EAX
00402F0B   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
00402F0F   .  E8 6CEFFFFF   CALL 手机图片.00401E80
00402F14   .  50            PUSH EAX
00402F15   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
00402F19   .  C64424 3C 09  MOV BYTE PTR SS:[ESP+3C],9
00402F1E   .  E8 DDEAFFFF   CALL 手机图片.00401A00
00402F23   .  8B4424 24     MOV EAX,DWORD PTR SS:[ESP+24]
00402F27   .  83C0 F0       ADD EAX,-10
00402F2A   .  885C24 38     MOV BYTE PTR SS:[ESP+38],BL
00402F2E   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
00402F31   .  83CA FF       OR EDX,FFFFFFFF
00402F34   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
00402F38   .  4A            DEC EDX
00402F39   .  85D2          TEST EDX,EDX
00402F3B   .  7F 08         JG SHORT 手机图片.00402F45
00402F3D   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
00402F3F   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
00402F41   .  50            PUSH EAX
00402F42   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00402F45   >  83C7 FC       ADD EDI,-4
00402F48   .  57            PUSH EDI
00402F49   .  6A 04         PUSH 4
00402F4B   .  8D4424 2C     LEA EAX,DWORD PTR SS:[ESP+2C]
00402F4F   .  50            PUSH EAX
00402F50   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
00402F54   .  E8 27EFFFFF   CALL 手机图片.00401E80
00402F59   .  50            PUSH EAX
00402F5A   .  8D4C24 24     LEA ECX,DWORD PTR SS:[ESP+24]
00402F5E   .  C64424 3C 0A  MOV BYTE PTR SS:[ESP+3C],0A
00402F63   .  E8 98EAFFFF   CALL 手机图片.00401A00
00402F68   .  8B4424 24     MOV EAX,DWORD PTR SS:[ESP+24]
00402F6C   .  83C0 F0       ADD EAX,-10
00402F6F   .  83CF FF       OR EDI,FFFFFFFF
00402F72   .  885C24 38     MOV BYTE PTR SS:[ESP+38],BL
00402F76   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
00402F79   .  8BD7          MOV EDX,EDI
00402F7B   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
00402F7F   .  4A            DEC EDX
00402F80   .  85D2          TEST EDX,EDX
00402F82   .  7F 08         JG SHORT 手机图片.00402F8C
00402F84   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
00402F86   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
00402F88   .  50            PUSH EAX
00402F89   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00402F8C   >  8B06          MOV EAX,DWORD PTR DS:[ESI]
00402F8E   .  51            PUSH ECX
00402F8F   .  83E8 10       SUB EAX,10
00402F92   .  896424 30     MOV DWORD PTR SS:[ESP+30],ESP
00402F96   .  8BDC          MOV EBX,ESP
00402F98   .  50            PUSH EAX
00402F99   .  E8 B2E5FFFF   CALL 手机图片.00401550
00402F9E   .  83C0 10       ADD EAX,10
00402FA1   .  83C4 04       ADD ESP,4
00402FA4   .  8BCE          MOV ECX,ESI
00402FA6   .  8903          MOV DWORD PTR DS:[EBX],EAX
00402FA8   .  E8 B3F1FFFF   CALL 手机图片.00402160
00402FAD   .  50            PUSH EAX
00402FAE   .  8D4424 20     LEA EAX,DWORD PTR SS:[ESP+20]
00402FB2   .  68 088A4400   PUSH 手机图片.00448A08                       ;  ASCII "%d"
00402FB7   .  50            PUSH EAX
00402FB8   .  E8 F3EAFFFF   CALL 手机图片.00401AB0
00402FBD   .  8B7424 28     MOV ESI,DWORD PTR SS:[ESP+28]
00402FC1   .  8B5C24 2C     MOV EBX,DWORD PTR SS:[ESP+2C]
00402FC5   .  56            PUSH ESI
00402FC6   .  53            PUSH EBX
00402FC7   .  E8 B6010100   CALL 手机图片.00413182
00402FCC   .  83C4 14       ADD ESP,14
00402FCF   .  85C0          TEST EAX,EAX
00402FD1   .  0F85 EC000000 JNZ 手机图片.004030C3                        ;  暴破掉I  NOP掉
00402FD7   .  8B4C24 14     MOV ECX,DWORD PTR SS:[ESP+14]
00402FDB   .  68 108A4400   PUSH 手机图片.00448A10                       ;  ASCII "88"
00402FE0   .  51            PUSH ECX
00402FE1   .  E8 9C010100   CALL 手机图片.00413182
00402FE6   .  83C4 08       ADD ESP,8
00402FE9   .  85C0          TEST EAX,EAX
00402FEB   .  0F85 D2000000 JNZ 手机图片.004030C3                        ;  暴破掉II  NOP掉
00402FF1   .  8D46 F0       LEA EAX,DWORD PTR DS:[ESI-10]
00402FF4   .  C64424 38 04  MOV BYTE PTR SS:[ESP+38],4
00402FF9   .  8D50 0C       LEA EDX,DWORD PTR DS:[EAX+C]
00402FFC   .  8BCF          MOV ECX,EDI
00402FFE   .  F0:0FC10A     LOCK XADD DWORD PTR DS:[EDX],ECX         ;  LOCK 前缀
00403002   .  49            DEC ECX
00403003   .  85C9          TEST ECX,ECX
00403005   .  7F 08         JG SHORT 手机图片.0040300F
00403007   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
00403009   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
0040300B   .  50            PUSH EAX
0040300C   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
0040300F   >  8B4424 10     MOV EAX,DWORD PTR SS:[ESP+10]
00403013   .  83C0 F0       ADD EAX,-10
00403016   .  C64424 38 03  MOV BYTE PTR SS:[ESP+38],3
0040301B   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
0040301E   .  8BD7          MOV EDX,EDI
00403020   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
00403024   .  4A            DEC EDX
00403025   .  85D2          TEST EDX,EDX
00403027   .  7F 08         JG SHORT 手机图片.00403031
00403029   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
0040302B   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
0040302D   .  50            PUSH EAX
0040302E   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00403031   >  8D43 F0       LEA EAX,DWORD PTR DS:[EBX-10]
00403034   .  C64424 38 02  MOV BYTE PTR SS:[ESP+38],2
00403039   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
0040303C   .  8BD7          MOV EDX,EDI
0040303E   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
00403042   .  4A            DEC EDX
00403043   .  85D2          TEST EDX,EDX
00403045   .  7F 08         JG SHORT 手机图片.0040304F
00403047   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
00403049   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
0040304B   .  50            PUSH EAX
0040304C   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
0040304F   >  8B4424 18     MOV EAX,DWORD PTR SS:[ESP+18]
00403053   .  83C0 F0       ADD EAX,-10
00403056   .  C64424 38 01  MOV BYTE PTR SS:[ESP+38],1
0040305B   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
0040305E   .  8BD7          MOV EDX,EDI
00403060   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
00403064   .  4A            DEC EDX
00403065   .  85D2          TEST EDX,EDX
00403067   .  7F 08         JG SHORT 手机图片.00403071
00403069   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
0040306B   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
0040306D   .  50            PUSH EAX
0040306E   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00403071   >  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]
00403075   .  83C0 F0       ADD EAX,-10
00403078   .  C64424 38 00  MOV BYTE PTR SS:[ESP+38],0
0040307D   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
00403080   .  8BD7          MOV EDX,EDI
00403082   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
00403086   .  4A            DEC EDX
00403087   .  85D2          TEST EDX,EDX
00403089   .  7F 08         JG SHORT 手机图片.00403093
0040308B   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
0040308D   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
0040308F   .  50            PUSH EAX
00403090   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00403093   >  897C24 38     MOV DWORD PTR SS:[ESP+38],EDI
00403097   .  8D45 0C       LEA EAX,DWORD PTR SS:[EBP+C]
0040309A   .  F0:0FC138     LOCK XADD DWORD PTR DS:[EAX],EDI         ;  LOCK 前缀
0040309E   .  4F            DEC EDI
0040309F   .  85FF          TEST EDI,EDI
004030A1   .  7F 09         JG SHORT 手机图片.004030AC
004030A3   .  8B4D 00       MOV ECX,DWORD PTR SS:[EBP]
004030A6   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
004030A8   .  55            PUSH EBP
004030A9   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
004030AC   >  B0 01         MOV AL,1                                 ;  这里实现了对AL=1的赋值,也就是为何上方我们要NOP掉那两个跳转
004030AE   .  8B4C24 30     MOV ECX,DWORD PTR SS:[ESP+30]
004030B2   .  64:890D 00000>MOV DWORD PTR FS:[0],ECX
004030B9   .  5F            POP EDI
004030BA   .  5E            POP ESI
004030BB   .  5D            POP EBP
004030BC   .  5B            POP EBX
004030BD   .  83C4 2C       ADD ESP,2C
004030C0   .  C2 0400       RETN 4
004030C3   >  8D46 F0       LEA EAX,DWORD PTR DS:[ESI-10]            ;  如果上方不暴破的话,跳转跳到这里
004030C6   .  C64424 38 04  MOV BYTE PTR SS:[ESP+38],4
004030CB   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
004030CE   .  8BD7          MOV EDX,EDI
004030D0   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
004030D4   .  4A            DEC EDX
004030D5   .  85D2          TEST EDX,EDX
004030D7   .  7F 08         JG SHORT 手机图片.004030E1
004030D9   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
004030DB   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
004030DD   .  50            PUSH EAX
004030DE   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
004030E1   >  8B4424 10     MOV EAX,DWORD PTR SS:[ESP+10]
004030E5   .  83C0 F0       ADD EAX,-10
004030E8   .  C64424 38 03  MOV BYTE PTR SS:[ESP+38],3
004030ED   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
004030F0   .  8BD7          MOV EDX,EDI
004030F2   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
004030F6   .  4A            DEC EDX
004030F7   .  85D2          TEST EDX,EDX
004030F9   .  7F 08         JG SHORT 手机图片.00403103
004030FB   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
004030FD   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
004030FF   .  50            PUSH EAX
00403100   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00403103   >  8D43 F0       LEA EAX,DWORD PTR DS:[EBX-10]
00403106   .  C64424 38 02  MOV BYTE PTR SS:[ESP+38],2
0040310B   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
0040310E   .  8BD7          MOV EDX,EDI
00403110   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
00403114   .  4A            DEC EDX
00403115   .  85D2          TEST EDX,EDX
00403117   .  7F 08         JG SHORT 手机图片.00403121
00403119   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
0040311B   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
0040311D   .  50            PUSH EAX
0040311E   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00403121   >  8B4424 18     MOV EAX,DWORD PTR SS:[ESP+18]
00403125   .  83C0 F0       ADD EAX,-10
00403128   .  C64424 38 01  MOV BYTE PTR SS:[ESP+38],1
0040312D   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
00403130   .  8BD7          MOV EDX,EDI
00403132   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
00403136   .  4A            DEC EDX
00403137   .  85D2          TEST EDX,EDX
00403139   .  7F 08         JG SHORT 手机图片.00403143
0040313B   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
0040313D   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
0040313F   .  50            PUSH EAX
00403140   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00403143   >  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]
00403147   .  83C0 F0       ADD EAX,-10
0040314A   .  C64424 38 00  MOV BYTE PTR SS:[ESP+38],0
0040314F   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
00403152   .  8BD7          MOV EDX,EDI
00403154   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
00403158   .  4A            DEC EDX
00403159   .  85D2          TEST EDX,EDX
0040315B   .  7F 08         JG SHORT 手机图片.00403165
0040315D   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
0040315F   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
00403161   .  50            PUSH EAX
00403162   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00403165   >  897C24 38     MOV DWORD PTR SS:[ESP+38],EDI
00403169   .  8D45 0C       LEA EAX,DWORD PTR SS:[EBP+C]
0040316C   .  F0:0FC138     LOCK XADD DWORD PTR DS:[EAX],EDI         ;  LOCK 前缀
00403170   .  4F            DEC EDI
00403171   .  85FF          TEST EDI,EDI
00403173   .  7F 09         JG SHORT 手机图片.0040317E
00403175   .  8B4D 00       MOV ECX,DWORD PTR SS:[EBP]
00403178   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
0040317A   .  55            PUSH EBP
0040317B   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
0040317E   >  8B4C24 30     MOV ECX,DWORD PTR SS:[ESP+30]
00403182   .  5F            POP EDI
00403183   .  5E            POP ESI
00403184   .  5D            POP EBP
00403185   .  32C0          XOR AL,AL                                ;  我们还记得标志位比较的就是AL  这里只要不让AL清零即可 修改方法有很多  但要注意不要超过两个字节  我这里采用的是INC AL
00403187   .  64:890D 00000>MOV DWORD PTR FS:[0],ECX
0040318E   .  5B            POP EBX
0040318F   .  83C4 2C       ADD ESP,2C
00403192   .  C2 0400       RETN 4

跟进保存注册文件的CALL 00404D2D   :

004031A0   $  6A FF         PUSH -1                                  ;  该函数来保存输入的注册信息
004031A2   .  68 50554400   PUSH 手机图片.00445550                       ;  SE 处理程序安装
004031A7   .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
004031AD   .  50            PUSH EAX
004031AE   .  64:8925 00000>MOV DWORD PTR FS:[0],ESP
004031B5   .  83EC 1C       SUB ESP,1C
004031B8   .  53            PUSH EBX
004031B9   .  55            PUSH EBP
004031BA   .  56            PUSH ESI
004031BB   .  57            PUSH EDI
004031BC   .  8BF1          MOV ESI,ECX
004031BE   .  C74424 34 000>MOV DWORD PTR SS:[ESP+34],0
004031C6   .  E8 E4420200   CALL 手机图片.004274AF
004031CB   .  8B10          MOV EDX,DWORD PTR DS:[EAX]
004031CD   .  8BC8          MOV ECX,EAX
004031CF   .  FF52 0C       CALL DWORD PTR DS:[EDX+C]
004031D2   .  83C0 10       ADD EAX,10
004031D5   .  894424 10     MOV DWORD PTR SS:[ESP+10],EAX
004031D9   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
004031DD   .  C64424 34 01  MOV BYTE PTR SS:[ESP+34],1
004031E2   .  E8 9A470200   CALL 手机图片.00427981
004031E7   .  8B06          MOV EAX,DWORD PTR DS:[ESI]
004031E9   .  50            PUSH EAX
004031EA   .  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
004031EE   .  68 548A4400   PUSH 手机图片.00448A54                       ;  ASCII "%s"
004031F3   .  B3 02         MOV BL,2
004031F5   .  51            PUSH ECX
004031F6   .  885C24 40     MOV BYTE PTR SS:[ESP+40],BL
004031FA   .  E8 B1E8FFFF   CALL 手机图片.00401AB0
004031FF   .  68 488A4400   PUSH 手机图片.00448A48                       ;  ASCII "\RegPc.SJS"
00403204   .  8D5424 20     LEA EDX,DWORD PTR SS:[ESP+20]
00403208   .  52            PUSH EDX
00403209   .  8D4424 28     LEA EAX,DWORD PTR SS:[ESP+28]
0040320D   .  50            PUSH EAX
0040320E   .  E8 8DEEFFFF   CALL 手机图片.004020A0
00403213   .  83C4 18       ADD ESP,18
00403216   .  50            PUSH EAX
00403217   .  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
0040321B   .  C64424 38 03  MOV BYTE PTR SS:[ESP+38],3
00403220   .  E8 DBE7FFFF   CALL 手机图片.00401A00
00403225   .  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]
00403229   .  83C0 F0       ADD EAX,-10
0040322C   .  885C24 34     MOV BYTE PTR SS:[ESP+34],BL
00403230   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
00403233   .  83CA FF       OR EDX,FFFFFFFF
00403236   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
0040323A   .  4A            DEC EDX
0040323B   .  85D2          TEST EDX,EDX
0040323D   .  7F 08         JG SHORT 手机图片.00403247
0040323F   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
00403241   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
00403243   .  50            PUSH EAX
00403244   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00403247   >  8B7C24 3C     MOV EDI,DWORD PTR SS:[ESP+3C]
0040324B   .  51            PUSH ECX
0040324C   .  8D6F F0       LEA EBP,DWORD PTR DS:[EDI-10]
0040324F   .  896424 1C     MOV DWORD PTR SS:[ESP+1C],ESP
00403253   .  8BDC          MOV EBX,ESP
00403255   .  55            PUSH EBP
00403256   .  E8 F5E2FFFF   CALL 手机图片.00401550
0040325B   .  83C0 10       ADD EAX,10
0040325E   .  83C4 04       ADD ESP,4
00403261   .  8BCE          MOV ECX,ESI
00403263   .  8903          MOV DWORD PTR DS:[EBX],EAX
00403265   .  E8 36FBFFFF   CALL 手机图片.00402DA0                       ;  这里有来调用算法CALL
0040326A   .  84C0          TEST AL,AL
0040326C   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
00403270   .  0F84 A3000000 JE 手机图片.00403319                         ;  这里为什么又来调用算法CALL呢? 就是再次来判断是否正确来决定是否保存注册信息
00403276   .  8B7424 10     MOV ESI,DWORD PTR SS:[ESP+10]
0040327A   .  6A 00         PUSH 0                                   ; /Arg3 = 00000000
0040327C   .  68 00100000   PUSH 1000                                ; |Arg2 = 00001000
00403281   .  56            PUSH ESI                                 ; |Arg1
00403282   .  E8 424A0200   CALL 手机图片.00427CC9                       ; \手机图片.00427CC9
00403287   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
0040328B   .  E8 8F460200   CALL 手机图片.0042791F
00403290   .  6A 00         PUSH 0                                   ; /Arg3 = 00000000
00403292   .  6A 01         PUSH 1                                   ; |Arg2 = 00000001
00403294   .  56            PUSH ESI                                 ; |Arg1
00403295   .  8D4C24 28     LEA ECX,DWORD PTR SS:[ESP+28]            ; |
00403299   .  E8 2B4A0200   CALL 手机图片.00427CC9                       ; \手机图片.00427CC9
0040329E   .  8B47 F4       MOV EAX,DWORD PTR DS:[EDI-C]
004032A1   .  50            PUSH EAX                                 ; /Arg2
004032A2   .  57            PUSH EDI                                 ; |Arg1
004032A3   .  8D4C24 24     LEA ECX,DWORD PTR SS:[ESP+24]            ; |
004032A7   .  E8 28440200   CALL 手机图片.004276D4                       ; \手机图片.004276D4
004032AC   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
004032B0   .  E8 6A460200   CALL 手机图片.0042791F
004032B5   .  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]
004032B9   .  C64424 34 01  MOV BYTE PTR SS:[ESP+34],1
004032BE   .  E8 FD460200   CALL 手机图片.004279C0
004032C3   .  8D46 F0       LEA EAX,DWORD PTR DS:[ESI-10]
004032C6   .  C64424 34 00  MOV BYTE PTR SS:[ESP+34],0
004032CB   .  8D48 0C       LEA ECX,DWORD PTR DS:[EAX+C]
004032CE   .  83CA FF       OR EDX,FFFFFFFF
004032D1   .  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX],EDX         ;  LOCK 前缀
004032D5   .  4A            DEC EDX
004032D6   .  85D2          TEST EDX,EDX
004032D8   .  7F 08         JG SHORT 手机图片.004032E2
004032DA   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
004032DC   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
004032DE   .  50            PUSH EAX
004032DF   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
004032E2   >  C74424 34 FFF>MOV DWORD PTR SS:[ESP+34],-1
004032EA   .  8D45 0C       LEA EAX,DWORD PTR SS:[EBP+C]
004032ED   .  83C9 FF       OR ECX,FFFFFFFF
004032F0   .  F0:0FC108     LOCK XADD DWORD PTR DS:[EAX],ECX         ;  LOCK 前缀
004032F4   .  49            DEC ECX
004032F5   .  85C9          TEST ECX,ECX
004032F7   .  7F 09         JG SHORT 手机图片.00403302
004032F9   .  8B4D 00       MOV ECX,DWORD PTR SS:[EBP]
004032FC   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
004032FE   .  55            PUSH EBP
004032FF   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
00403302   >  B0 01         MOV AL,1
00403304   .  8B4C24 2C     MOV ECX,DWORD PTR SS:[ESP+2C]
00403308   .  64:890D 00000>MOV DWORD PTR FS:[0],ECX
0040330F   .  5F            POP EDI
00403310   .  5E            POP ESI
00403311   .  5D            POP EBP
00403312   .  5B            POP EBX
00403313   .  83C4 28       ADD ESP,28
00403316   .  C2 0400       RETN 4

当系统保存注册文件\RegPc.SJS后,我们继续在算法CALL句柄地址下断,然后再点“注册”。我们在算法CALL断下,退出后来到这里:

00403789   .  E8 12F6FFFF   CALL 手机图片.00402DA0
0040378E   .  83C5 F0       ADD EBP,-10                              // 退出算法CALL后来到这里
00403791   .  83C9 FF       OR ECX,FFFFFFFF
00403794   .  84C0          TEST AL,AL
00403796   .  C64424 28 00  MOV BYTE PTR SS:[ESP+28],0
0040379B   .  8D45 0C       LEA EAX,DWORD PTR SS:[EBP+C]
0040379E   .  74 46         JE SHORT 手机图片.004037E6
004037A0   .  F0:0FC108     LOCK XADD DWORD PTR DS:[EAX],ECX         ;  LOCK 前缀
004037A4   .  49            DEC ECX
004037A5   .  85C9          TEST ECX,ECX
004037A7   .  7F 09         JG SHORT 手机图片.004037B2
004037A9   .  8B4D 00       MOV ECX,DWORD PTR SS:[EBP]
004037AC   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
004037AE   .  55            PUSH EBP
004037AF   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
004037B2   >  C74424 28 FFF>MOV DWORD PTR SS:[ESP+28],-1
004037BA   .  8D47 0C       LEA EAX,DWORD PTR DS:[EDI+C]
004037BD   .  83C9 FF       OR ECX,FFFFFFFF
004037C0   .  F0:0FC108     LOCK XADD DWORD PTR DS:[EAX],ECX         ;  LOCK 前缀
004037C4   .  49            DEC ECX
004037C5   .  85C9          TEST ECX,ECX
004037C7   .  7F 08         JG SHORT 手机图片.004037D1
004037C9   .  8B0F          MOV ECX,DWORD PTR DS:[EDI]
004037CB   .  8B11          MOV EDX,DWORD PTR DS:[ECX]
004037CD   .  57            PUSH EDI
004037CE   .  FF52 04       CALL DWORD PTR DS:[EDX+4]
004037D1   >  B0 01         MOV AL,1
004037D3   .  8B4C24 20     MOV ECX,DWORD PTR SS:[ESP+20]
004037D7   .  64:890D 00000>MOV DWORD PTR FS:[0],ECX
004037DE   .  5F            POP EDI
004037DF   .  5E            POP ESI
004037E0   .  5D            POP EBP
004037E1   .  5B            POP EBX
004037E2   .  83C4 1C       ADD ESP,1C
004037E5   .  C3            RETN


00406397   .  E8 F4D2FFFF   CALL 手机图片.00403690
0040639C   .  84C0          TEST AL,AL                                   // 退出后来到这里
0040639E   .  6A 00         PUSH 0
004063A0   .  74 10         JE SHORT 手机图片.004063B2
004063A2   .  6A 00         PUSH 0
004063A4   .  68 3C9F4400   PUSH 手机图片.00449F3C                       ;  您已经注册了!
004063A9   .  8BCE          MOV ECX,ESI
004063AB   .  E8 99D50100   CALL 手机图片.00423949
004063B0   .  EB 38         JMP SHORT 手机图片.004063EA

放我们把程序跟踪完毕之后,就可以搞明白为什么算法CALL有三处调用,也就明白了软件的验证过程。
00403265(这里判断是否保存注册信息),
00403789(这里判断是否注册),
00404D04(该地址是注册时候的验证)

软件的验证采用了标志位比较,导致难度直线下降,使我们轻松暴破。本问旨在通过分析这个典型的软件来向新手阐述软件的验证思路,并来说明算法CALL在软件验证中的调用原因和作用。通过本文的分析我们也看出暴破的关键在于修改算法CALL中对AL的赋值语句,如果程序在重验证和注册中使用不同的函数来验证,将增大暴破难度。
04.gif

评分

参与人数 1威望 +20 飘云币 +20 收起 理由
tigerisme + 20 + 20 精彩

查看全部评分

PYG19周年生日快乐!

该用户从未签到

发表于 2007-8-12 11:05:17 | 显示全部楼层
精彩!!!

学习啦!
PYG19周年生日快乐!

该用户从未签到

发表于 2007-8-14 01:47:01 | 显示全部楼层
很不错。。。支持楼主
PYG19周年生日快乐!

该用户从未签到

发表于 2007-8-16 00:30:12 | 显示全部楼层
学习了,谢谢楼主的大作。
PYG19周年生日快乐!

该用户从未签到

发表于 2007-8-16 06:37:08 | 显示全部楼层
太棒了,对我这样的初学者帮助很大。谢谢楼主。
PYG19周年生日快乐!

该用户从未签到

发表于 2007-9-9 17:45:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2023-12-1 17:08
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-9-9 17:57:05 | 显示全部楼层
    学习....哎。对破解还一知半解....
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-5-8 22:10
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-9-13 22:10:14 | 显示全部楼层
    很不错。。。支持楼主。。。。受用
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表