- UID
- 2198
注册时间2005-6-29
阅读权限255
最后登录1970-1-1
副坛主
该用户从未签到
|
软件大小: 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的赋值语句,如果程序在重验证和注册中使用不同的函数来验证,将增大暴破难度。 |
评分
-
查看全部评分
|