飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3080|回复: 2

照片桌面2.0的补丁源码

[复制链接]
  • TA的每日心情
    奋斗
    2024-10-30 21:11
  • 签到天数: 453 天

    [LV.9]以坛为家II

    发表于 2006-9-13 22:28:40 | 显示全部楼层 |阅读模式
    这个东东,居然还没有删除,翻出来,加点注释,发在这儿,完成本月任务!
    照片桌面2.0主程序比较大,如果觉得有用,自已去搜!满世界是它的爆破版,其实这里也是个爆破补丁……
    不过是采用另一种方法而已,该软件用的是不可逆转的CRC32算法,只能爆破了。
    当初写这个东东,主要是练习Delphi读写文件
    ////////////////////////////////////////////////////////////////////////
    /////       cracked by wofan[OCN][PYG][DCG]               //////////
    ////////             2006-9-13                             ////////////////////
    ////////////////////////////////////////////////////////////////////////
    unit M_Unit;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls,shellAPI;

    type
      TM_Form = class(TForm)
        Edt_Code: TEdit;
        Btn_OK: TButton;
        Btn_Open: TButton;
        Edt_Dir: TEdit;
        Lbl_Code: TLabel;
        OpenDialog1: TOpenDialog;
        SaveDialog1: TSaveDialog;
        procedure Btn_OKClick(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure Btn_OpenClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      M_Form: TM_Form;

    implementation

    {$R *.dfm}

    procedure TM_Form.Btn_OKClick(Sender: TObject);
    var
      code:string;
      EDX:byte;
      ESI:longword;
      ECX:longword;
      EBP:longword;
      i:integer;
    //////////////////////////////////////////////////////
    //  读写文件相关的变量                            ////
    //////////////////////////////////////////////////////
        filename:string;
        m_file:integer;
        str:string;  //只是用来显示而已
        Data:array[0..4]of byte;    //要写入的数据是个32位的值,所以是四个字节
    //////////////////////////////////////////////////////
    const
      crc32:array[0..255]of longword=
      ($00000000,$77073096,$ee0e612c,$990951ba,$076dc419,$706af48f,$e963a535,$9e6495a3,
       $0edb8832,$79dcb8a4,$e0d5e91e,$97d2d988,$09b64c2b,$7eb17cbd,$e7b82d07,$90bf1d91,
       $1db71064,$6ab020f2,$f3b97148,$84be41de,$1adad47d,$6ddde4eb,$f4d4b551,$83d385c7,
       $136c9856,$646ba8c0,$fd62f97a,$8a65c9ec,$14015c4f,$63066cd9,$fa0f3d63,$8d080df5,
       $3b6e20c8,$4c69105e,$d56041e4,$a2677172,$3c03e4d1,$4b04d447,$d20d85fd,$a50ab56b,
       $35b5a8fa,$42b2986c,$dbbbc9d6,$acbcf940,$32d86ce3,$45df5c75,$dcd60dcf,$abd13d59,
       $26d930ac,$51de003a,$c8d75180,$bfd06116,$21b4f4b5,$56b3c423,$cfba9599,$b8bda50f,
       $2802b89e,$5f058808,$c60cd9b2,$b10be924,$2f6f7c87,$58684c11,$c1611dab,$b6662d3d,
       $76dc4190,$01db7106,$98d220bc,$efd5102a,$71b18589,$06b6b51f,$9fbfe4a5,$e8b8d433,
       $7807c9a2,$0f00f934,$9609a88e,$e10e9818,$7f6a0dbb,$086d3d2d,$91646c97,$e6635c01,
       $6b6b51f4,$1c6c6162,$856530d8,$f262004e,$6c0695ed,$1b01a57b,$8208f4c1,$f50fc457,
       $65b0d9c6,$12b7e950,$8bbeb8ea,$fcb9887c,$62dd1ddf,$15da2d49,$8cd37cf3,$fbd44c65,
       $4db26158,$3ab551ce,$a3bc0074,$d4bb30e2,$4adfa541,$3dd895d7,$a4d1c46d,$d3d6f4fb,
       $4369e96a,$346ed9fc,$ad678846,$da60b8d0,$44042d73,$33031de5,$aa0a4c5f,$dd0d7cc9,
       $5005713c,$270241aa,$be0b1010,$c90c2086,$5768b525,$206f85b3,$b966d409,$ce61e49f,
       $5edef90e,$29d9c998,$b0d09822,$c7d7a8b4,$59b33d17,$2eb40d81,$b7bd5c3b,$c0ba6cad,
       $edb88320,$9abfb3b6,$03b6e20c,$74b1d29a,$ead54739,$9dd277af,$04db2615,$73dc1683,
       $e3630b12,$94643b84,$0d6d6a3e,$7a6a5aa8,$e40ecf0b,$9309ff9d,$0a00ae27,$7d079eb1,
       $f00f9344,$8708a3d2,$1e01f268,$6906c2fe,$f762575d,$806567cb,$196c3671,$6e6b06e7,
       $fed41b76,$89d32be0,$10da7a5a,$67dd4acc,$f9b9df6f,$8ebeeff9,$17b7be43,$60b08ed5,
       $d6d6a3e8,$a1d1937e,$38d8c2c4,$4fdff252,$d1bb67f1,$a6bc5767,$3fb506dd,$48b2364b,
       $d80d2bda,$af0a1b4c,$36034af6,$41047a60,$df60efc3,$a867df55,$316e8eef,$4669be79,
       $cb61b38c,$bc66831a,$256fd2a0,$5268e236,$cc0c7795,$bb0b4703,$220216b9,$5505262f,
       $c5ba3bbe,$b2bd0b28,$2bb45a92,$5cb36a04,$c2d7ffa7,$b5d0cf31,$2cd99e8b,$5bdeae1d,
       $9b64c2b0,$ec63f226,$756aa39c,$026d930a,$9c0906a9,$eb0e363f,$72076785,$05005713,
       $95bf4a82,$e2b87a14,$7bb12bae,$0cb61b38,$92d28e9b,$e5d5be0d,$7cdcefb7,$0bdbdf21,
       $86d3d2d4,$f1d4e242,$68ddb3f8,$1fda836e,$81be16cd,$f6b9265b,$6fb077e1,$18b74777,
       $88085ae6,$ff0f6a70,$66063bca,$11010b5c,$8f659eff,$f862ae69,$616bffd3,$166ccf45,
       $a00ae278,$d70dd2ee,$4e048354,$3903b3c2,$a7672661,$d06016f7,$4969474d,$3e6e77db,
       $aed16a4a,$d9d65adc,$40df0b66,$37d83bf0,$a9bcae53,$debb9ec5,$47b2cf7f,$30b5ffe9,
       $bdbdf21c,$cabac28a,$53b39330,$24b4a3a6,$bad03605,$cdd70693,$54de5729,$23d967bf,
       $b3667a2e,$c4614ab8,$5d681b02,$2a6f2b94,$b40bbe37,$c30c8ea1,$5a05df1b,$2d02ef8d);
    begin
      randomize;
      code:=inttostr(random(999999));
      Edt_Code.Text:=code;
      ESI:=$FFFFFFFF;
      for i:=1 to length(code) do
      Begin
        EDX:=ord(code);
        ECX:=ESI;
        ECX:=ECX and $FF;
        ECX:=ECX xor EDX;
        EBP:=crc32[ECX];
        ESI:=ESI shr 8;
        ESI:=ESI xor EBP;
      End;
    // ESI:=ESI xor $FFFFFFFF;  //得到完整的CRC32的Hash值
      ESI:=not ESI;   //与上面的效果是一样的,见识了
    ///////////////////////////////////////////////////////////
    //  下面这个地址就是要修改的地方
    //00403DBF     cmp eax,EA58C6C5
    //地址
    ///////////////////////////////////////////////////////////
    ////  下面开始读写文件   //////////////////////////////////
    ///////////////////////////////////////////////////////////
       filename:=Edt_Dir.text;
       m_file:=fileopen(filename,fmopenreadwrite);   //以可读可写的方式打开
       try
    /////////////////读取并显示/////////////////////////////////////////
         fileSeek(m_file,$00003DBF,soFromBeginning); //注意$00003DBF=00403DBF-00400000
         fileRead(m_file,data,sizeof(data));
         for i:=1 to 4 do
         Begin
           str:=inttohex(integer(data),2)+str;//在Ollydbg中返汇编下显示为:cmp eax,EA58C6C5
         End;
         showmessage(str);                       //显示 : EA58C6C5
    //////////////////写入并显示//////////////////////////////////////////
         Data[1]:=ESI and $FF;
         Data[2]:=(ESI shr 8) and $FF;
         Data[3]:=(ESI shr 16) and $FF;
         Data[4]:=(ESI shr 24) and $FF;

         fileseek(m_file,$00003DBF,soFromBeginning);  //重新定位到要写入的位置
         FileWrite(m_file,data,sizeof(data));         //写入
         str:='';
         for i:=1 to 4 do
         Begin
           str:=inttohex(integer(data),2)+str;//在Ollydbg中返汇编下显示为:cmp eax,新的常数
         End;
         showmessage(str);                       //显示刚才写入的数据
       finally
         fileclose(m_file);                      //关闭打开的文件
       end;
    end;
    procedure TM_Form.FormCreate(Sender: TObject);
    begin
      Edt_Dir.Text:='C:\Program Files\照片桌面\照片桌面.exe';   //这个程序安装时,不能更改目录
      if fileExists(Edt_Dir.Text) then   //如果文件目录是默认的,则不需要查找
      Btn_Open.Enabled :=false;
    end;

    procedure TM_Form.Btn_OpenClick(Sender: TObject);
    begin
      if Opendialog1.Execute then
        Edt_Dir.Text:=opendialog1.FileName;    //如果你把该程序复制到了别的地方,更改了安装目录,就要自已寻找
    end;

    end.

    评分

    参与人数 1威望 +32 飘云币 +8 收起 理由
    飘云 + 32 + 8 原创内容

    查看全部评分

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-9-14 08:45:07 | 显示全部楼层
    手工操作自动化,呵呵,支持一下。。。。。。。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2006-9-14 10:17:08 | 显示全部楼层
    支持原创!

    支持delphi源码!
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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