wofan 发表于 2006-9-13 22:28:40

照片桌面2.0的补丁源码

这个东东,居然还没有删除,翻出来,加点注释,发在这儿,完成本月任务!
照片桌面2.0主程序比较大,如果觉得有用,自已去搜!满世界是它的爆破版,其实这里也是个爆破补丁……
不过是采用另一种方法而已,该软件用的是不可逆转的CRC32算法,只能爆破了。
当初写这个东东,主要是练习Delphi读写文件
////////////////////////////////////////////////////////////////////////
/////       cracked by wofan               //////////
////////             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:arrayof byte;    //要写入的数据是个32位的值,所以是四个字节
//////////////////////////////////////////////////////
const
crc32:arrayof 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;
    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:=ESI and $FF;
   Data:=(ESI shr 8) and $FF;
   Data:=(ESI shr 16) and $FF;
   Data:=(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.

caterpilla 发表于 2006-9-14 08:45:07

手工操作自动化,呵呵,支持一下。。。。。。。

黑夜彩虹 发表于 2006-9-14 10:17:08

支持原创!

支持delphi源码!
页: [1]
查看完整版本: 照片桌面2.0的补丁源码