首页
社区
课程
招聘
[原创]某通用更新程序的DIY
发表于: 2009-6-4 00:20 6608

[原创]某通用更新程序的DIY

2009-6-4 00:20
6608

【文章标题】: 某通用更新程序的DIY

【文章作者】: 啊cr
【软件名称】: 通用更新程序
【下载地址】: 附件
【编写语言】: Borland Delphi v6.0 - v7.0
【使用工具】: OD,DEDE
【操作平台】: Win
【软件介绍】: 通用更新程序
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  
  这是一个自动更新程序,软件限制只更新三个文件,下面分析并修改,使其支持更多文件更新。
  
  读取第一个文件相关参数
  

  004F8174   > \C605 1C135000>MOV BYTE PTR DS:[50131C],7C              ;  参数分隔符“|”
  004F817B   .  B2 01         MOV DL,1
  004F817D   .  A1 EC684100   MOV EAX,DWORD PTR DS:[4168EC]
  004F8182   .  E8 D5B2F0FF   CALL 通用更新.0040345C
  004F8187   .  8903          MOV DWORD PTR DS:[EBX],EAX
  004F8189   .  8BCB          MOV ECX,EBX
  004F818B   .  8A15 1C135000 MOV DL,BYTE PTR DS:[50131C]              ;  参数分隔符“|”
  004F8191   .  A1 E4125000   MOV EAX,DWORD PTR DS:[5012E4]
  004F8196   .  E8 C5FEFFFF   CALL 通用更新.004F8060
  004F819B   .  8D4D F4       LEA ECX,DWORD PTR SS:[EBP-C]
  004F819E   .  33D2          XOR EDX,EDX                              ;  EDX=0,第一个参数 文件1-文件名
  004F81A0   .  8B03          MOV EAX,DWORD PTR DS:[EBX]
  004F81A2   .  8B38          MOV EDI,DWORD PTR DS:[EAX]
  004F81A4   .  FF57 0C       CALL DWORD PTR DS:[EDI+C]
  004F81A7   .  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]
  004F81AA   .  B8 E8125000   MOV EAX,通用更新.005012E8                    ;  保存指针的地址  文件1-文件名
  004F81AF   .  E8 00C1F0FF   CALL 通用更新.004042B4
  004F81B4   .  8D4D F0       LEA ECX,DWORD PTR SS:[EBP-10]
  004F81B7   .  BA 01000000   MOV EDX,1                                ;  EDX=1,第二个参数 文件1-文件MD5
  004F81BC   .  8B03          MOV EAX,DWORD PTR DS:[EBX]
  004F81BE   .  8B38          MOV EDI,DWORD PTR DS:[EAX]
  004F81C0   .  FF57 0C       CALL DWORD PTR DS:[EDI+C]
  004F81C3   .  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]
  004F81C6   .  B8 EC125000   MOV EAX,通用更新.005012EC                    ;  保存指针的地址  文件1-文件名
  004F81CB   .  E8 E4C0F0FF   CALL 通用更新.004042B4
  004F81D0   .  8D4D EC       LEA ECX,DWORD PTR SS:[EBP-14]
  004F81D3   .  BA 02000000   MOV EDX,2                                ;  EDX=2,第三个参数 文件1-文件LINK
  004F81D8   .  8B03          MOV EAX,DWORD PTR DS:[EBX]
  004F81DA   .  8B38          MOV EDI,DWORD PTR DS:[EAX]
  004F81DC   .  FF57 0C       CALL DWORD PTR DS:[EDI+C]
  004F81DF   .  8B55 EC       MOV EDX,DWORD PTR SS:[EBP-14]
  004F81E2   .  B8 F0125000   MOV EAX,通用更新.005012F0                    ;  保存指针的地址  文件1-文件名
  004F81E7   .  E8 C8C0F0FF   CALL 通用更新.004042B4
  004F81EC   .  8D4D E8       LEA ECX,DWORD PTR SS:[EBP-18]
  004F81EF   .  BA 03000000   MOV EDX,3                                ;  文件2……
  文件2
  文件3
  004F8294   .  8B03          MOV EAX,DWORD PTR DS:[EBX]               ;  参数读取完毕
  004F8296   .  E8 F1B1F0FF   CALL 通用更新.0040348C
  004F829B   .  8D55 CC       LEA EDX,DWORD PTR SS:[EBP-34]
  004F829E   .  A1 34F54F00   MOV EAX,DWORD PTR DS:[4FF534]
  004F82A3   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
  004F82A5   .  E8 D2B4F6FF   CALL 通用更新.0046377C                       ;  获取当前程序名
  004F82AA   .  8B45 CC       MOV EAX,DWORD PTR SS:[EBP-34]
  004F82AD   .  8D55 D0       LEA EDX,DWORD PTR SS:[EBP-30]
  004F82B0   .  E8 C70FF1FF   CALL 通用更新.0040927C                       ;  获取程序路径
  004F82B5   .  8B55 D0       MOV EDX,DWORD PTR SS:[EBP-30]
  004F82B8   .  8BC6          MOV EAX,ESI                              ;  通用更新.005012E0
  004F82BA   .  E8 F5BFF0FF   CALL 通用更新.004042B4
  004F8294   > \8B03          MOV EAX,DWORD PTR DS:[EBX]               ;  参数读取完毕
  004F8296   .  E8 F1B1F0FF   CALL 通用更新.0040348C
  
  004F82BF   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  004F82C2   .  50            PUSH EAX                                 ;  通用更新.005012E8
  004F82C3   .  68 88804F00   PUSH 通用更新.004F8088
  004F82C8   .  FF36          PUSH DWORD PTR DS:[ESI]
  004F82CA   .  68 A8894F00   PUSH 通用更新.004F89A8
  004F82CF   .  FF35 E8125000 PUSH DWORD PTR DS:[5012E8]               ;  文件名
  004F82D5   .  8D45 B4       LEA EAX,DWORD PTR SS:[EBP-4C]
  004F82D8   .  BA 03000000   MOV EDX,3
  004F82DD   .  E8 FEC2F0FF   CALL 通用更新.004045E0
  004F82E2   .  8B45 B4       MOV EAX,DWORD PTR SS:[EBP-4C]
  004F82E5   .  8D55 B8       LEA EDX,DWORD PTR SS:[EBP-48]
  004F82E8   .  E8 8FF9FFFF   CALL 通用更新.004F7C7C
  004F82ED   .  8D45 B8       LEA EAX,DWORD PTR SS:[EBP-48]
  004F82F0   .  8D55 C8       LEA EDX,DWORD PTR SS:[EBP-38]
  004F82F3   .  E8 D8F8FFFF   CALL 通用更新.004F7BD0
  004F82F8   .  8B55 C8       MOV EDX,DWORD PTR SS:[EBP-38]
  004F82FB   .  B8 0C135000   MOV EAX,通用更新.0050130C
  004F8300   .  E8 AFBFF0FF   CALL 通用更新.004042B4
  004F8305   .  A1 0C135000   MOV EAX,DWORD PTR DS:[50130C]            ;  本地文件的md5
  004F830A   .  8B15 EC125000 MOV EDX,DWORD PTR DS:[5012EC]            ;  更新文件的md5
  004F8310   .  E8 57C3F0FF   CALL 通用更新.0040466C                       ;  比较
  004F8315   .  0F84 63010000 JE 通用更新.004F847E                         ;  相等不更新,更新下一个文件
  004F831B   .  8D45 B0       LEA EAX,DWORD PTR SS:[EBP-50]
  004F831E   .  8B0D E8125000 MOV ECX,DWORD PTR DS:[5012E8]
  004F8324   .  BA B4894F00   MOV EDX,通用更新.004F89B4
  004F8329   .  E8 3EC2F0FF   CALL 通用更新.0040456C
  004F832E   .  8B55 B0       MOV EDX,DWORD PTR SS:[EBP-50]
  004F8331   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  004F8334   .  8B80 F8020000 MOV EAX,DWORD PTR DS:[EAX+2F8]
  004F833A   .  8B80 20020000 MOV EAX,DWORD PTR DS:[EAX+220]
  004F8340   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
  004F8342   .  FF51 38       CALL DWORD PTR DS:[ECX+38]
  004F8345   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  004F8348   .  8B80 0C030000 MOV EAX,DWORD PTR DS:[EAX+30C]
  004F834E   .  C640 38 00    MOV BYTE PTR DS:[EAX+38],0
  004F8352   .  B2 01         MOV DL,1
  004F8354   .  A1 006C4100   MOV EAX,DWORD PTR DS:[416C00]
  004F8359   .  E8 FEB0F0FF   CALL 通用更新.0040345C
  004F835E   .  A3 20135000   MOV DWORD PTR DS:[501320],EAX            ;  通用更新.005012E8
  004F8363   .  33C0          XOR EAX,EAX                              ;  通用更新.005012E8
  004F8365   .  55            PUSH EBP
  004F8366   .  68 C9834F00   PUSH 通用更新.004F83C9
  004F836B   .  64:FF30       PUSH DWORD PTR FS:[EAX]
  004F836E   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
  004F8371   .  68 D4894F00   PUSH 通用更新.004F89D4
  004F8376   .  FF35 E8125000 PUSH DWORD PTR DS:[5012E8]               ;  文件名
  004F837C   .  68 F0894F00   PUSH 通用更新.004F89F0
  004F8381   .  8D45 AC       LEA EAX,DWORD PTR SS:[EBP-54]
  004F8384   .  BA 03000000   MOV EDX,3
  004F8389   .  E8 52C2F0FF   CALL 通用更新.004045E0
  004F838E   .  8B55 AC       MOV EDX,DWORD PTR SS:[EBP-54]
  004F8391   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  004F8394   .  8B80 F8020000 MOV EAX,DWORD PTR DS:[EAX+2F8]
  004F839A   .  8B80 20020000 MOV EAX,DWORD PTR DS:[EAX+220]
  004F83A0   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
  004F83A2   .  FF51 38       CALL DWORD PTR DS:[ECX+38]
  004F83A5   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  004F83A8   .  8B80 08030000 MOV EAX,DWORD PTR DS:[EAX+308]
  004F83AE   .  8B0D 20135000 MOV ECX,DWORD PTR DS:[501320]
  004F83B4   .  8B15 F0125000 MOV EDX,DWORD PTR DS:[5012F0]            ;  远程地址
  004F83BA   .  E8 011DF8FF   CALL 通用更新.0047A0C0                       ;  下载
  004F83BF   .  33C0          XOR EAX,EAX                              ;  通用更新.005012E8
  004F83C1   .  5A            POP EDX                                  ;  0012F3F4
  004F83C2   .  59            POP ECX                                  ;  0012F3F4
  004F83C3   .  59            POP ECX                                  ;  0012F3F4
  004F83C4   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
  004F83C7   .  EB 50         JMP SHORT 通用更新.004F8419
  004F83C9   .^ E9 5EB5F0FF   JMP 通用更新.0040392C
  004F83CE   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  004F83D1   .  8B80 F8020000 MOV EAX,DWORD PTR DS:[EAX+2F8]
  004F83D7   .  8B80 20020000 MOV EAX,DWORD PTR DS:[EAX+220]
  004F83DD   .  BA 048A4F00   MOV EDX,通用更新.004F8A04
  004F83E2   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
  004F83E4   .  FF51 38       CALL DWORD PTR DS:[ECX+38]
  004F83E7   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  004F83EA   .  8B80 F8020000 MOV EAX,DWORD PTR DS:[EAX+2F8]
  004F83F0   .  8B80 20020000 MOV EAX,DWORD PTR DS:[EAX+220]
  004F83F6   .  BA 78894F00   MOV EDX,通用更新.004F8978
  004F83FB   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
  004F83FD   .  FF51 38       CALL DWORD PTR DS:[ECX+38]
  004F8400   .  A1 20135000   MOV EAX,DWORD PTR DS:[501320]
  004F8405   .  E8 82B0F0FF   CALL 通用更新.0040348C
  004F840A   .  E8 85B8F0FF   CALL 通用更新.00403C94
  004F840F   .  E9 9F040000   JMP 通用更新.004F88B3
  004F8414   .  E8 7BB8F0FF   CALL 通用更新.00403C94
  004F8419   >  FF36          PUSH DWORD PTR DS:[ESI]
  004F841B   .  68 A8894F00   PUSH 通用更新.004F89A8
  004F8420   .  FF35 E8125000 PUSH DWORD PTR DS:[5012E8]               ;  文件名
  004F8426   .  8D45 A8       LEA EAX,DWORD PTR SS:[EBP-58]
  004F8429   .  BA 03000000   MOV EDX,3
  004F842E   .  E8 ADC1F0FF   CALL 通用更新.004045E0
  004F8433   .  8B55 A8       MOV EDX,DWORD PTR SS:[EBP-58]
  004F8436   .  A1 20135000   MOV EAX,DWORD PTR DS:[501320]
  004F843B   .  E8 B033F2FF   CALL 通用更新.0041B7F0
  004F8440   .  68 2C8A4F00   PUSH 通用更新.004F8A2C
  004F8445   .  FF35 E8125000 PUSH DWORD PTR DS:[5012E8]               ;  文件名
  004F844B   .  68 3C8A4F00   PUSH 通用更新.004F8A3C                       ;  ASCII " ...Ok!"
  004F8450   .  8D45 A4       LEA EAX,DWORD PTR SS:[EBP-5C]
  004F8453   .  BA 03000000   MOV EDX,3
  004F8458   .  E8 83C1F0FF   CALL 通用更新.004045E0
  004F845D   .  8B55 A4       MOV EDX,DWORD PTR SS:[EBP-5C]
  004F8460   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  004F8463   .  8B80 F8020000 MOV EAX,DWORD PTR DS:[EAX+2F8]
  004F8469   .  8B80 20020000 MOV EAX,DWORD PTR DS:[EAX+220]
  004F846F   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
  004F8471   .  FF51 38       CALL DWORD PTR DS:[ECX+38]
  004F8474   .  A1 20135000   MOV EAX,DWORD PTR DS:[501320]
  004F8479   .  E8 0EB0F0FF   CALL 通用更新.0040348C                       ;  第一个文件下载结束
  参数读取2-3
  004F81EC      90            NOP
  004F8293      90            NOP
  
  文件下载2-3
  004F847E      90            NOP
  004F8826      90            NOP
  004F81EC     /E9 AA000000   JMP 通用更新.004F829B
  004F847E    ^\E9 18FDFFFF   JMP 通用更新.004F819B
  004F8315    ^\0F84 80FEFFFF JE 通用更新.004F819B                         ;  相等不更新,更新下一个文件
  004F819E   .  33D2          XOR EDX,EDX                              ;  EDX=0,第一个参数 文件1-文件名
  004F81B7   .  BA 01000000   MOV EDX,1                                ;  EDX=1,第二个参数 文件1-文件MD5
  004F81D3   .  BA 02000000   MOV EDX,2                                ;  EDX=2,第三个参数 文件1-文件LINK

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (5)
雪    币: 8169
活跃值: (3326)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
收藏cr牛的作品
2009-6-4 06:53
0
雪    币: 164
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
学到很多东西!
2009-6-4 08:41
0
雪    币: 106
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
收藏cr牛的作品   学到很多东西!
2009-6-4 23:30
0
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
5
Support.
2009-6-5 14:21
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
写的不错。收获不少
2009-6-5 14:42
0
游客
登录 | 注册 方可回帖
返回
//