飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4290|回复: 1

批量缩略图工具 V1.1简单算法分析

[复制链接]
  • TA的每日心情
    慵懒
    2019-1-18 17:27
  • 签到天数: 30 天

    [LV.5]常住居民I

    发表于 2006-3-27 11:28:34 | 显示全部楼层 |阅读模式
    【文章标题】: 批量缩略图工具 V1.1简单算法分析
    【文章作者】: lzq1973[PYG][CZG]
    【作者邮箱】: [email protected]
    【作者QQ号】: 150787972
    【软件名称】: 批量缩略图工具 V1.1
    【软件大小】: 439 KB
    【下载地址】: http://www1.skycn.com/soft/25515.html
    【加壳方式】: 无
    【保护方式】: 注册码
    【编写语言】: Borland Delphi 6.0 - 7.0
    【使用工具】: OD、PEID
    【操作平台】: WIN2000
    【软件介绍】: 在网页制作中常常需要为大批量图片生成缩略图,“批量缩略图工具”就是这样一个工具,为JPG文件批量生成缩略图。

    【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
    --------------------------------------------------------------------------------
    【详细过程】
          以前(0.8时)就对它动过刀,那时手生的很,导致好多人说破解不完全,今又看到了新版本,于是看看近来俺是不是有点进步。
          注册信息保存在BatchPic.ini,注册码必须为8位。
          OD载入,查找相关字符串中断在这里
      
      004A5AD8  /.  55            PUSH EBP
      004A5AD9  |.  8BEC          MOV EBP,ESP
      004A5ADB  |.  33C9          XOR ECX,ECX
      004A5ADD  |.  51            PUSH ECX
      004A5ADE  |.  51            PUSH ECX
      004A5ADF  |.  51            PUSH ECX
      004A5AE0  |.  51            PUSH ECX
      004A5AE1  |.  51            PUSH ECX
      004A5AE2  |.  51            PUSH ECX
      004A5AE3  |.  51            PUSH ECX
      004A5AE4  |.  53            PUSH EBX
      004A5AE5  |.  56            PUSH ESI
      004A5AE6  |.  8BD8          MOV EBX,EAX
      004A5AE8  |.  33C0          XOR EAX,EAX                              ;  EAX=00D7566C, (ASCII "lTJ")
      004A5AEA  |.  55            PUSH EBP
      004A5AEB  |.  68 6D5C4A00   PUSH BatchPic.004A5C6D
      004A5AF0  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
      004A5AF3  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
      004A5AF6  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
      004A5AF9  |.  8B83 28030000 MOV EAX,DWORD PTR DS:[EBX+328]
      004A5AFF  |.  E8 B099FBFF   CALL BatchPic.0045F4B4
      004A5B04  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  假码
      004A5B07  |.  E8 1CE9F5FF   CALL BatchPic.00404428
      004A5B0C  |.  83F8 08       CMP EAX,8                                ;  注册码长度为8
      004A5B0F  |.  74 3F         JE SHORT BatchPic.004A5B50               ;  长度相等就跳
      004A5B11  |.  6A 10         PUSH 10
      004A5B13  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
      004A5B16  |.  A1 BCAF4A00   MOV EAX,DWORD PTR DS:[4AAFBC]
      004A5B1B  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
      004A5B1D  |.  E8 4E93FDFF   CALL BatchPic.0047EE70
      004A5B22  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
      004A5B25  |.  E8 FEEAF5FF   CALL BatchPic.00404628
      004A5B2A  |.  50            PUSH EAX
      004A5B2B  |.  68 7C5C4A00   PUSH BatchPic.004A5C7C                   ;  注册码错误!
      004A5B30  |.  8BC3          MOV EAX,EBX
      004A5B32  |.  E8 9D01FCFF   CALL BatchPic.00465CD4
      004A5B37  |.  50            PUSH EAX                                 ; |hOwner
      004A5B38  |.  E8 AF11F6FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
      004A5B3D  |.  8B83 28030000 MOV EAX,DWORD PTR DS:[EBX+328]
      004A5B43  |.  8B10          MOV EDX,DWORD PTR DS:[EAX]
      004A5B45  |.  FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
      004A5B4B  |.  E9 DA000000   JMP BatchPic.004A5C2A
      004A5B50  |>  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
      004A5B53  |.  8B83 28030000 MOV EAX,DWORD PTR DS:[EBX+328]
      004A5B59  |.  E8 5699FBFF   CALL BatchPic.0045F4B4
      004A5B5E  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  假码
      004A5B61  |.  50            PUSH EAX
      004A5B62  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
      004A5B65  |.  E8 120E0000   CALL BatchPic.004A697C
      004A5B6A  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]            ;  机器码
      004A5B6D  |.  5A            POP EDX
      004A5B6E  |.  E8 D10C0000   CALL BatchPic.004A6844                   ;  关键(F7跟进)
      004A5B73  |.  84C0          TEST AL,AL
      004A5B75  |.  74 79         JE SHORT BatchPic.004A5BF0
      004A5B77  |.  A1 FCAC4A00   MOV EAX,DWORD PTR DS:[4AACFC]
      004A5B7C  |.  C600 01       MOV BYTE PTR DS:[EAX],1
      004A5B7F  |.  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
      004A5B82  |.  8B83 28030000 MOV EAX,DWORD PTR DS:[EBX+328]
      004A5B88  |.  E8 2799FBFF   CALL BatchPic.0045F4B4
      004A5B8D  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
      004A5B90  |.  50            PUSH EAX
      004A5B91  |.  A1 CCAF4A00   MOV EAX,DWORD PTR DS:[4AAFCC]
      004A5B96  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
      004A5B98  |.  B9 945C4A00   MOV ECX,BatchPic.004A5C94                ;  key
      004A5B9D  |.  BA A05C4A00   MOV EDX,BatchPic.004A5CA0                ;  regcode
      004A5BA2  |.  8B30          MOV ESI,DWORD PTR DS:[EAX]
      004A5BA4  |.  FF56 04       CALL DWORD PTR DS:[ESI+4]
      004A5BA7  |.  6A 40         PUSH 40
      004A5BA9  |.  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
      004A5BAC  |.  A1 BCAF4A00   MOV EAX,DWORD PTR DS:[4AAFBC]
      004A5BB1  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
      004A5BB3  |.  E8 B892FDFF   CALL BatchPic.0047EE70
      004A5BB8  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
      004A5BBB  |.  E8 68EAF5FF   CALL BatchPic.00404628
      004A5BC0  |.  50            PUSH EAX
      004A5BC1  |.  68 A85C4A00   PUSH BatchPic.004A5CA8                   ;  注册成功!
      004A5BC6  |.  8BC3          MOV EAX,EBX
      004A5BC8  |.  E8 0701FCFF   CALL BatchPic.00465CD4
      004A5BCD  |.  50            PUSH EAX                                 ; |hOwner
      004A5BCE  |.  E8 1911F6FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
      004A5BD3  |.  A1 ACAE4A00   MOV EAX,DWORD PTR DS:[4AAEAC]
      004A5BD8  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
      004A5BDA  |.  8B80 84030000 MOV EAX,DWORD PTR DS:[EAX+384]
      004A5BE0  |.  33D2          XOR EDX,EDX
      004A5BE2  |.  E8 ED97FBFF   CALL BatchPic.0045F3D4
      004A5BE7  |.  8BC3          MOV EAX,EBX
      004A5BE9  |.  E8 2E60FDFF   CALL BatchPic.0047BC1C
      004A5BEE  |.  EB 3A         JMP SHORT BatchPic.004A5C2A
      004A5BF0  |>  6A 10         PUSH 10
      004A5BF2  |.  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]
      004A5BF5  |.  A1 BCAF4A00   MOV EAX,DWORD PTR DS:[4AAFBC]
      004A5BFA  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
      004A5BFC  |.  E8 6F92FDFF   CALL BatchPic.0047EE70
      004A5C01  |.  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
      004A5C04  |.  E8 1FEAF5FF   CALL BatchPic.00404628
      004A5C09  |.  50            PUSH EAX
      004A5C0A  |.  68 7C5C4A00   PUSH BatchPic.004A5C7C                   ;  注册码错误!
      004A5C0F  |.  8BC3          MOV EAX,EBX
      004A5C11  |.  E8 BE00FCFF   CALL BatchPic.00465CD4
      004A5C16  |.  50            PUSH EAX                                 ; |hOwner
      004A5C17  |.  E8 D010F6FF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
      004A5C1C  |.  8B83 28030000 MOV EAX,DWORD PTR DS:[EBX+328]
      004A5C22  |.  8B10          MOV EDX,DWORD PTR DS:[EAX]
      004A5C24  |.  FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
      004A5C2A  |>  33C0          XOR EAX,EAX
      004A5C2C  |.  5A            POP EDX
      004A5C2D  |.  59            POP ECX
      004A5C2E  |.  59            POP ECX
      004A5C2F  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
      004A5C32  |.  68 745C4A00   PUSH BatchPic.004A5C74
      004A5C37  |>  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
      004A5C3A  |.  BA 02000000   MOV EDX,2
      004A5C3F  |.  E8 48E5F5FF   CALL BatchPic.0040418C
      004A5C44  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
      004A5C47  |.  E8 1CE5F5FF   CALL BatchPic.00404168
      004A5C4C  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
      004A5C4F  |.  E8 14E5F5FF   CALL BatchPic.00404168
      004A5C54  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
      004A5C57  |.  E8 0CE5F5FF   CALL BatchPic.00404168
      004A5C5C  |.  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
      004A5C5F  |.  E8 04E5F5FF   CALL BatchPic.00404168
      004A5C64  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
      004A5C67  |.  E8 FCE4F5FF   CALL BatchPic.00404168
      004A5C6C  \.  C3            RETN
      004A5C6D   .^ E9 76DEF5FF   JMP BatchPic.00403AE8
      004A5C72   .^ EB C3         JMP SHORT BatchPic.004A5C37
      004A5C74   .  5E            POP ESI
      004A5C75   .  5B            POP EBX
      004A5C76   .  8BE5          MOV ESP,EBP
      004A5C78   .  5D            POP EBP
      004A5C79   .  C3            RETN
      
      ------ 在这里 004A5B6E  |.  E8 D10C0000   CALL BatchPic.004A6844  F7跟进-------------
      
      
      004A6844  /$  55            PUSH EBP
      004A6845  |.  8BEC          MOV EBP,ESP
      004A6847  |.  83C4 F8       ADD ESP,-8
      004A684A  |.  53            PUSH EBX                                 ;  (ASCII "lTJ")
      004A684B  |.  56            PUSH ESI
      004A684C  |.  8955 F8       MOV DWORD PTR SS:[EBP-8],EDX             ;  假码
      004A684F  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX             ;  机器码
      004A6852  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
      004A6855  |.  E8 BEDDF5FF   CALL BatchPic.00404618
      004A685A  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
      004A685D  |.  E8 B6DDF5FF   CALL BatchPic.00404618
      004A6862  |.  33C0          XOR EAX,EAX
      004A6864  |.  55            PUSH EBP
      004A6865  |.  68 C0684A00   PUSH BatchPic.004A68C0
      004A686A  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
      004A686D  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
      004A6870  |.  B3 01         MOV BL,1                                 ;  BL=6C ('l')
      004A6872  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  假码
      004A6875  |.  E8 AEDBF5FF   CALL BatchPic.00404428
      004A687A  |.  83F8 08       CMP EAX,8
      004A687D  |.  74 04         JE SHORT BatchPic.004A6883
      004A687F  |.  33DB          XOR EBX,EBX
      004A6881  |.  EB 22         JMP SHORT BatchPic.004A68A5
      004A6883  |>  BE 01000000   MOV ESI,1
      004A6888  |>  8B45 FC       /MOV EAX,DWORD PTR SS:[EBP-4]            ;  机器码堆栈  (ASCII "35599323")
      004A688B  |.  8A4430 FF     |MOV AL,BYTE PTR DS:[EAX+ESI-1]          ;  逐位取,DS:[00D7942C]=33 ('3')
      004A688F  |.  E8 50FFFFFF   |CALL BatchPic.004A67E4                  ;  这里就是逐位计算注册码的
      004A6894  |.  8B55 F8       |MOV EDX,DWORD PTR SS:[EBP-8]            ;  假码
      004A6897  |.  3A4432 FF     |CMP AL,BYTE PTR DS:[EDX+ESI-1]
      004A689B  |.  74 02         |JE SHORT BatchPic.004A689F
      004A689D  |.  33DB          |XOR EBX,EBX
      004A689F  |>  46            |INC ESI
      004A68A0  |.  83FE 09       |CMP ESI,9
      004A68A3  |.^ 75 E3         \JNZ SHORT BatchPic.004A6888
      004A68A5  |>  33C0          XOR EAX,EAX
      004A68A7  |.  5A            POP EDX
      004A68A8  |.  59            POP ECX
      004A68A9  |.  59            POP ECX
      004A68AA  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
      004A68AD  |.  68 C7684A00   PUSH BatchPic.004A68C7
      004A68B2  |>  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
      004A68B5  |.  BA 02000000   MOV EDX,2
      004A68BA  |.  E8 CDD8F5FF   CALL BatchPic.0040418C
      004A68BF  \.  C3            RETN
      004A68C0   .^ E9 23D2F5FF   JMP BatchPic.00403AE8
      004A68C5   .^ EB EB         JMP SHORT BatchPic.004A68B2
      004A68C7   .  8BC3          MOV EAX,EBX
      004A68C9   .  5E            POP ESI
      004A68CA   .  5B            POP EBX
      004A68CB   .  59            POP ECX
      004A68CC   .  59            POP ECX
      004A68CD   .  5D            POP EBP
      004A68CE   .  C3            RETN
      
      -------- 在这里 004A688F  |.  E8 50FFFFFF   |CALL BatchPic.004A67E4  F7跟进--------
      
      004A67E4  /$  25 FF000000   AND EAX,0FF                              ;  与运算
      004A67E9  |.  83C0 D0       ADD EAX,-30                              ;  Switch (cases 30..39)
      004A67EC  |.  83F8 09       CMP EAX,9
      004A67EF  |.  77 4D         JA SHORT BatchPic.004A683E
      004A67F1  |.  FF2485 F8674A>JMP DWORD PTR DS:[EAX*4+4A67F8]
      004A67F8  |.  20684A00      DD BatchPic.004A6820                     ;  分支表 被用于 004A67F1
      004A67FC  |.  23684A00      DD BatchPic.004A6823
      004A6800  |.  26684A00      DD BatchPic.004A6826
      004A6804  |.  29684A00      DD BatchPic.004A6829
      004A6808  |.  2C684A00      DD BatchPic.004A682C
      004A680C  |.  2F684A00      DD BatchPic.004A682F
      004A6810  |.  32684A00      DD BatchPic.004A6832
      004A6814  |.  35684A00      DD BatchPic.004A6835
      004A6818  |.  38684A00      DD BatchPic.004A6838
      004A681C  |.  3B684A00      DD BatchPic.004A683B
      004A6820  |>  B0 38         MOV AL,38                                ;  Case 30 ('0') of switch 004A67E9
      004A6822  |.  C3            RETN
      004A6823  |>  B0 36         MOV AL,36                                ;  Case 31 ('1') of switch 004A67E9
      004A6825  |.  C3            RETN
      004A6826  |>  B0 34         MOV AL,34                                ;  Case 32 ('2') of switch 004A67E9
      004A6828  |.  C3            RETN
      004A6829  |>  B0 30         MOV AL,30                                ;  Case 33 ('3') of switch 004A67E9
      004A682B  |.  C3            RETN
      004A682C  |>  B0 35         MOV AL,35                                ;  Case 34 ('4') of switch 004A67E9
      004A682E  |.  C3            RETN
      004A682F  |>  B0 32         MOV AL,32                                ;  Case 35 ('5') of switch 004A67E9
      004A6831  |.  C3            RETN
      004A6832  |>  B0 39         MOV AL,39                                ;  Case 36 ('6') of switch 004A67E9
      004A6834  |.  C3            RETN
      004A6835  |>  B0 31         MOV AL,31                                ;  Case 37 ('7') of switch 004A67E9
      004A6837  |.  C3            RETN
      004A6838  |>  B0 33         MOV AL,33                                ;  Case 38 ('8') of switch 004A67E9
      004A683A  |.  C3            RETN
      004A683B  |>  B0 37         MOV AL,37                                ;  Case 39 ('9') of switch 004A67E9
      004A683D  |.  C3            RETN
      004A683E  |>  33C0          XOR EAX,EAX                              ;  Default case of switch 004A67E9
      004A6840  \.  C3            RETN
      
      好了,就到这里吧~~(一休哥要休息了)
      
    --------------------------------------------------------------------------------
    【经验总结】
      总的说来,还是很简单的,注册码是通过两组数字相对应而来的
      
      机器码组成部分:    0     1     2     3     4     5     6     7     8     9
      
      注册码组成部分:    8     6     4     0     5     2     9     1     3     7
      
      如
      我的机器码为:35599323
      那注册码就是:02277040
      
    --------------------------------------------------------------------------------
    【版权声明】: 本文属于大家的, 转载请注明作者并保持文章的完整, 谢谢!

                                                           2006年03月27日 11:00:13
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-1-9 19:21:47 | 显示全部楼层

    回复 1# lzq1973 的帖子

    感谢楼主!!!/:014
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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