WPE|52wpe|我爱WPE

 找回密码
 注册会员
搜索
  • 2078查看
  • 0回复

主题

好友

4976

积分

论坛元老

发表于 2010-3-7 10:03:35 |显示全部楼层
【文章标题】: 新年捏到一批软柿子
【文章作者】: BeyondMe
【作者邮箱】: futuring@126.com
【作者主页】: http://hi.baidu.com/beyond0769
【软件名称】: Easy Disk Drive Safeguard 3.3
【下载地址】: http://www.softheap.com/
【加壳方式】: 无
【编写语言】: Delphi
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  好久没有玩算法,今天下载了一个小软件Easy Disk Drive Safeguard,准备分析一下,结果发现是软柿子一个。
  只能说今年运气好哇,更有甚者,软柿子不只一个,Easy Disk Drive Safeguard的主页 http://www.softheap.com/ 所有的软件几乎都是一个算法,
  看来是专业为我们菜鸟准备的,^_^
  
  Delphi编写的,OD载入运行,输入假码出现错误提示,bp MessageBoxA 下载成功,alt+F9返回到程序领空,跳出来主算法过程如下:
  
  

  0046AB08  /$  55            PUSH EBP                          ;  主算法过程
  0046AB09  |.  8BEC          MOV EBP,ESP
  0046AB0B  |.  B9 06000000   MOV ECX,6
  0046AB10  |>  6A 00         /PUSH 0
  0046AB12  |.  6A 00         |PUSH 0
  0046AB14  |.  49            |DEC ECX
  0046AB15  |.^ 75 F9         \JNZ SHORT disklock.0046AB10
  0046AB17  |.  51            PUSH ECX
  0046AB18  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
  0046AB1B  |.  33C0          XOR EAX,EAX
  0046AB1D  |.  55            PUSH EBP
  0046AB1E  |.  68 A8AC4600   PUSH disklock.0046ACA8
  0046AB23  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
  0046AB26  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
  0046AB29  |.  8D55 EC       LEA EDX,DWORD PTR SS:[EBP-14]
  0046AB2C  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  0046AB2F  |.  8B80 AC030000 MOV EAX,DWORD PTR DS:[EAX+3AC]
  0046AB35  |.  E8 2260FDFF   CALL disklock.00440B5C            ;  读取假码
  0046AB3A  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
  0046AB3D  |.  8D55 F0       LEA EDX,DWORD PTR SS:[EBP-10]
  0046AB40  |.  E8 EBB6FFFF   CALL disklock.00466230
  0046AB45  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]
  0046AB48  |.  B8 884D4700   MOV EAX,disklock.00474D88
  0046AB4D  |.  E8 EA9EF9FF   CALL disklock.00404A3C
  0046AB52  |.  E8 11FDFFFF   CALL disklock.0046A868            ;  关键算法函数
  0046AB57  |.  8845 FB       MOV BYTE PTR SS:[EBP-5],AL        ;  AL保存函数返回值
  0046AB5A  |.  807D FB 00    CMP BYTE PTR SS:[EBP-5],0         ;  如果AL=0则注册失败,=1注册成功
  0046AB5E  |.  0F84 F2000000 JE disklock.0046AC56              ;  不能跳
  0046AB64  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  0046AB67  |.  C680 CC030000>MOV BYTE PTR DS:[EAX+3CC],1
  0046AB6E  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
  0046AB71  |.  50            PUSH EAX
  0046AB72  |.  8D55 E8       LEA EDX,DWORD PTR SS:[EBP-18]
  0046AB75  |.  B8 C0AC4600   MOV EAX,disklock.0046ACC0         ;  ASCII "B9BB8C819888AB829FBA848389829ABE849788"
  0046AB7A  |.  E8 91BBFFFF   CALL disklock.00466710
  0046AB7F  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
  0046AB82  |.  50            PUSH EAX
  0046AB83  |.  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]
  0046AB86  |.  B8 F0AC4600   MOV EAX,disklock.0046ACF0         ;  ASCII "BE828B999A8C9F88B1C8BDBFA2AAA3ACA0A8C8"
  0046AB8B  |.  E8 D8FDFFFF   CALL disklock.0046A968
  0046AB90  |.  8B55 E4       MOV EDX,DWORD PTR SS:[EBP-1C]
  0046AB93  |.  A1 844D4700   MOV EAX,DWORD PTR DS:[474D84]
  0046AB98  |.  59            POP ECX
  0046AB99  |.  E8 2EBDFFFF   CALL disklock.004668CC
  0046AB9E  |.  8D55 E0       LEA EDX,DWORD PTR SS:[EBP-20]
  0046ABA1  |.  A1 884D4700   MOV EAX,DWORD PTR DS:[474D88]
  0046ABA6  |.  E8 ADBAFFFF   CALL disklock.00466658
  0046ABAB  |.  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]
  0046ABAE  |.  50            PUSH EAX
  0046ABAF  |.  8D55 DC       LEA EDX,DWORD PTR SS:[EBP-24]
  0046ABB2  |.  B8 20AD4600   MOV EAX,disklock.0046AD20         ;  ASCII "BDBB8C819888AB829FBA848389829ABE849788"
  0046ABB7  |.  E8 54BBFFFF   CALL disklock.00466710
  0046ABBC  |.  8B45 DC       MOV EAX,DWORD PTR SS:[EBP-24]
  0046ABBF  |.  50            PUSH EAX
  0046ABC0  |.  8D55 D8       LEA EDX,DWORD PTR SS:[EBP-28]
  0046ABC3  |.  B8 F0AC4600   MOV EAX,disklock.0046ACF0         ;  ASCII "BE828B999A8C9F88B1C8BDBFA2AAA3ACA0A8C8"
  0046ABC8  |.  E8 9BFDFFFF   CALL disklock.0046A968
  0046ABCD  |.  8B55 D8       MOV EDX,DWORD PTR SS:[EBP-28]
  0046ABD0  |.  A1 844D4700   MOV EAX,DWORD PTR DS:[474D84]
  0046ABD5  |.  59            POP ECX
  0046ABD6  |.  E8 95BDFFFF   CALL disklock.00466970
  0046ABDB  |.  837D F4 00    CMP DWORD PTR SS:[EBP-C],0
  0046ABDF  |.  75 44         JNZ SHORT disklock.0046AC25
  0046ABE1  |.  E8 CEF9F9FF   CALL disklock.0040A5B4
  0046ABE6  |.  83C4 F4       ADD ESP,-0C
  0046ABE9  |.  DB3C24        FSTP TBYTE PTR SS:[ESP]
  0046ABEC  |.  9B            WAIT
  0046ABED  |.  8D45 D4       LEA EAX,DWORD PTR SS:[EBP-2C]
  0046ABF0  |.  E8 77F4F9FF   CALL disklock.0040A06C
  0046ABF5  |.  8B45 D4       MOV EAX,DWORD PTR SS:[EBP-2C]
  0046ABF8  |.  50            PUSH EAX
  0046ABF9  |.  8D55 D0       LEA EDX,DWORD PTR SS:[EBP-30]
  0046ABFC  |.  B8 C0AC4600   MOV EAX,disklock.0046ACC0         ;  ASCII "B9BB8C819888AB829FBA848389829ABE849788"
  0046AC01  |.  E8 0ABBFFFF   CALL disklock.00466710
  0046AC06  |.  8B45 D0       MOV EAX,DWORD PTR SS:[EBP-30]
  0046AC09  |.  50            PUSH EAX
  0046AC0A  |.  8D55 CC       LEA EDX,DWORD PTR SS:[EBP-34]
  0046AC0D  |.  B8 F0AC4600   MOV EAX,disklock.0046ACF0         ;  ASCII "BE828B999A8C9F88B1C8BDBFA2AAA3ACA0A8C8"
  0046AC12  |.  E8 51FDFFFF   CALL disklock.0046A968
  0046AC17  |.  8B55 CC       MOV EDX,DWORD PTR SS:[EBP-34]
  0046AC1A  |.  A1 844D4700   MOV EAX,DWORD PTR DS:[474D84]
  0046AC1F  |.  59            POP ECX
  0046AC20  |.  E8 4BBDFFFF   CALL disklock.00466970
  0046AC25  |>  A1 A0F94600   MOV EAX,DWORD PTR DS:[46F9A0]
  0046AC2A  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  0046AC2C  |.  8B80 B0030000 MOV EAX,DWORD PTR DS:[EAX+3B0]
  0046AC32  |.  BA 50AD4600   MOV EDX,disklock.0046AD50         ;  ASCII "Software (Ctrl+R)"
  0046AC37  |.  E8 2C7AFEFF   CALL disklock.00452668
  0046AC3C  |.  6A 40         PUSH 40
  0046AC3E  |.  B9 64AD4600   MOV ECX,disklock.0046AD64         ;  ASCII "Information"
  0046AC43  |.  BA 70AD4600   MOV EDX,disklock.0046AD70         ;  ASCII "Registration has been completed successfully!"
  0046AC48  |.  A1 A0FB4600   MOV EAX,DWORD PTR DS:[46FBA0]
  0046AC4D  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  0046AC4F  |.  E8 0059FFFF   CALL disklock.00460554
  0046AC54  |.  EB 22         JMP SHORT disklock.0046AC78
  0046AC56  |>  B8 884D4700   MOV EAX,disklock.00474D88
  0046AC5B  |.  E8 889DF9FF   CALL disklock.004049E8
  0046AC60  |.  6A 10         PUSH 10
  0046AC62  |.  B9 A0AD4600   MOV ECX,disklock.0046ADA0         ;  ASCII "Error"
  0046AC67  |.  BA A8AD4600   MOV EDX,disklock.0046ADA8         ;  ASCII "Registration code is invalid!"
  0046AC6C  |.  A1 A0FB4600   MOV EAX,DWORD PTR DS:[46FBA0]
  0046AC71  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  0046AC73  |.  E8 DC58FFFF   CALL disklock.00460554
  0046AC78  |>  33C0          XOR EAX,EAX
  0046AC7A  |.  5A            POP EDX
  0046AC7B  |.  59            POP ECX
  0046AC7C  |.  59            POP ECX
  0046AC7D  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
  0046AC80  |.  68 AFAC4600   PUSH disklock.0046ACAF
  0046AC85  |>  8D45 CC       LEA EAX,DWORD PTR SS:[EBP-34]
  0046AC88  |.  BA 08000000   MOV EDX,8
  0046AC8D  |.  E8 7A9DF9FF   CALL disklock.00404A0C
  0046AC92  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]
  0046AC95  |.  E8 4E9DF9FF   CALL disklock.004049E8
  0046AC9A  |.  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
  0046AC9D  |.  BA 02000000   MOV EDX,2
  0046ACA2  |.  E8 659DF9FF   CALL disklock.00404A0C
  0046ACA7  \.  C3            RETN

  
  =================
  以上过程不必作过多解释,关键CALL在
  0046AB52  |.  E8 11FDFFFF   CALL disklock.0046A868            ;  关键算法函数
  只要这个函数返回1,则注册成功。F7进入看看。

快速发帖

您需要登录后才可以回帖 登录 | 注册会员

手机版|Archiver|WPE|52wpe|我爱WPE ( 闽ICP备15009081号 )

GMT+8, 2024-5-4 07:58 , Processed in 0.060824 second(s), 16 queries .

返回顶部