首页
社区
课程
招聘
[原创+求助]一个很棒的英语软件的注册算法
发表于: 2007-1-14 12:13 16845

[原创+求助]一个很棒的英语软件的注册算法

2007-1-14 12:13
16845
收藏
免费 7
支持
分享
最新回复 (61)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
根据DesEn和DesDe的关系,证明了我的写法的正确的!
呵呵
2007-1-23 21:33
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
最初由 holmescn 发布
因为算法计算器算出的结果总是对不上,那个Crypto++也不会用,文档太少了,搞不明白。所以我想了个着。LuoX30NDl.dll里有各种算法的库函数。于是想到就用它了。用waspack把它脱掉,dll2lib做出lib来,根据调试的过程分析出三个函数的原型:
char* DesEn(char*,char*)
char* DesDe(char*,char*)
char* MD5En(char*)
奇迹是在自己的程序里写了一个MD5的算法,我就用库里的了。
........


这个库是ksaiy做的。奇迹作者用的是免费版本。

//模块作者:ksaiy
//Email:ksaiy@sina.com
//主页:http://www.ksaiy.com
//版权所有(C) JesionSoft 2004-2005
//更新时间:2004年12月23日

//我们开发的模块有分两个版本:一个免费版本,二是收费版本;在免费版本
//版本里面没有任何的功能限制;在收费版本中也没有功能限制,未注册的模
//块在返回的结果中多了一个字符串"ksaiy",如果你注册了模块就没有任何
//限制了,关于注册费用可以查看这里:http://www.ksaiy.com/ynen/Service.asp

//免费模块可以到我们的主页下载:http://www.ksaiy.com/ynen/index.asp

//为了说明以下函数如果有两个参数,一个是加密/解密字符串和KEY,那么就
//用'ksaiy'来代表加密字符串,用'1234567890';来代表key,如果只有一个
//参数的话,就用'ksaiy'来代表要加密的字符串;
//由于这个DLL需要在其它语言中使用,所以返回值和参数都使用了PChar型,在
//DELPHI中使用的时候用Strpas来把PChar型转换为String;

//这里以DELPHI语言为例说明,如果需要其它语言的说明请访问我们的主页。

//BlowFish算法加密函数
function BlowFishEn(BlStr:PChar;BLKey:PChar):Pchar;stdcall;
For Example:
//BLStr代表要加密的字符串,而BlKey是key;
var
  Str:String;
begin
  Str:=StrPas(BlowFishEn(PChar('ksaiy'),PChar('1234567890')));
  Edit1.Text:=Str;//得到加密结果;
end;

//变形MD5算法家密函数
function CMD5En(CMStr:PChar):PChar;Stdcall;
For Example:
//BMStr为需要加密的字符串;
var
  Str:String;
begin
  Str:=StrPas(CMStr(PChar('ksaiy')));
  Edit1.text:=Str;
end;

//DES算法加密函数
function DesEn(DStr:PChar;DKey:PChar):Pchar;Stdcall;
For Example:
//DStr为需要加密的字符串,DKey为key;
var
  Str:String;
begin
  Str:=StrPas(DesEn(PChar('ksaiy'),PChar('1234567890')));
  Edit1.text:=Str;
end;

//DES算法解密函数
function DesDe(DeStr:PChar;Dekey:PChar):Pchar;stdcall;
For Example:
//DeStr为需要解密的字符串,Dekey为key;
var
  Str:String
begin
  Str:=StrPas(DesDe(PChar('ksaiy'),PChar('1234567890')));
  Edit1.text:=Str;
end;

//Base64算法加密函数
function Base64En(BsStr:PChar):Pchar;Stdcall;
For Example:
//BsStr为需要加密字符串;
var
  Str:String;
begin
  Str:=StrPas(Base64En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//AES算法加密函数
function AESEn(AStr:PChar;AKey:PChar):Pchar;Stdcall;
For Example:
//AStr为需要加密的字符串,AKey为key;
var
  Str:String;
begin
  Str:=Strpas(AESEn(PChar('ksaiy'),PChar('1234567890')));
  Edit1.text:=Str;
end;

//MD2算法加密函数
function MD2En(MD2Str:PChar):PChar;Stdcall;
For Example:
//MD2Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(MD2En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//MD4算法加密函数
function MD4En(MD4Str:PChar):PChar;Stdcall;
For Example:
//MD4Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(MD4En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//MD5算法加密函数
function MD5En(MD5Str:PChar):PChar;Stdcall;
For Example:
//MD5Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(MD5En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//SHA1算法加密函数
function SHA1En(SHA1Str:PChar):PChar;Stdcall;
For Example:
//SHA1Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(SHA1En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//SHA256算法加密函数
function SHA256En(SHA256Str:PChar):PChar;Stdcall;
For Example:
//SHA256Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(SHA256En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//SHA384算法加密函数
function SHA384En(SHA384Str:PChar):PChar;Stdcall;
For Example:
//SHA384Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(SHA384En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//SHA512算法加密函数
function SHA512En(SHA512Str:PChar):PChar;Stdcall;
For Example:
//SHA512Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(SHA512En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//HAVAL128算法加密函数
function HAVAL128En(HAVAL128Str:PChar):PChar;Stdcall;
For Example:
//HAVAL128Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(HAVAL128En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//HAVAL160算法加密函数
function HAVAL160En(HAVAL160Str:PChar):PChar;Stdcall;
For Example:
//HAVAL160Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(HAVAL160En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//HAVAL192算法加密函数
function HAVAL192En(HAVAL192Str:PChar):PChar;Stdcall;
For Example:
//HAVAL192Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(HAVAL192En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//HAVAL224算法加密函数
function HAVAL224En(HAVAL224Str:PChar):PChar;Stdcall;
For Example:
//HAVAL224Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(HAVAL224En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//HAVAL256算法加密函数
function HAVAL256En(HAVAL256Str:PChar):PChar;Stdcall;
For Example:
//HAVAL256Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(HAVAL256En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//GOST算法加密函数
function GOSTEn(GOSTStr:PChar):PChar;Stdcall;
For Example:
//GOSTStr为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(GOSTEn(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//TIGER128算法加密函数
function TIGER128En(TIGER128Str:PChar):PChar;Stdcall;
For Example:
//TIGER128Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(TIGER128En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//TIGER160算法加密函数
function TIGER160En(TIGER160Str:PChar):PChar;Stdcall;
For Example:
//TIGER160Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(TIGER160En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//TIGER192算法加密函数
function TIGER192En(TIGER192Str:PChar):PChar;Stdcall;
For Example:
//TIGER192Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(TIGER192En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//RIPE-MD128算法加密函数
function RIPEMD128En(RIPEMD128Str:PChar):PChar;Stdcall;
For Example:
//RIPEMD128Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(RIPEMD128En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//RIPE-MD160算法加密函数
function RIPEMD160En(RIPEMD160Str:PChar):PChar;Stdcall;
For Example:
//RIPEMD160Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(RIPEMD160En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//CRC32算法加密函数
function CRC32En(CRC32Str:PChar):PChar;Stdcall;
For Example:
//CRC32Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(CRC32En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//CRC32B算法加密函数
function CRC32BEn(CRC32BStr:PChar):PChar;Stdcall;
For Example:
//CRC32BStr为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(CRC32BEn(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//Adler32算法加密函数
function Adler32En(Adler32Str:PChar):PChar;Stdcall;
For Example:
//Adler32Str为需要加密的字符串
var
  Str:String;
begin
  Str:=StrPas(Adler32En(PChar('ksaiy')));
  Edit1.Text:=Str;
end;

//3Des算法加密函数
Function Des3En(Des3EnStr:PChar;EnKey1:PChar;EnKey2:PChar;EnKey3:PChar):PChar;Stdcall;
For Example:
//Des3EnStr为需要加密的字符串,EnKey1,EnKey2,EnKey3为key
//注意三个key必须不能一样;
var
  Str:String;
begin
  Str:=StrPas(Des3En(PChar('ksaiy'),PChar('123'),PChar('456'),PChar('789')));
  Edit1.Text:=Str;
end;

//3Des算法解密函数
Function Des3De(Des3DeStr:PChar;DeKey1:PChar;DeKey2:PChar;DeKey3:PChar):PChar;Stdcall;
For Example:
//Des3DeStr为需要解密的字符串,DeKey1,DeKey2,DeKey3为key
//注意三个key必须不能一样;
var
  Str:String;
begin
  Str:=StrPas(Des3De(PChar('ksaiy'),PChar('123'),PChar('456'),PChar('789')));
  Edit1.Text:=Str;
end;

//Anti-Debug反跟踪程序
function WinAntiDebug():Boolean;stdcall;
For Example:
begin
  if WinAntiDebug=True then
    Edit1.Text:='有调试工具!';
  //这里你可以调用关机函数;
end;

//关闭计算机函数
function CloseWindow(flags: integer): boolean;stdcall;//关闭计算机函数;
For Example:
begin
  CloseWindow(EWX_SHUTDOWN or EWX_POWEROFF);
end;

//CRC文件校验
function CrcFileEn(CrcFileName:PChar):Pchar;stdcall;
For Example:
//CrcFileName为需要进行CRC校验的文件名;
var
  Str:String;
begin
  Str:=StrPas(CrcFileEn('C:\1.exe'));//就是你需要校验的文件名;
  Edit1.text:=Str;
end;

//检测Win2000/XP下的SoftIce
Function SoftIceXP:Boolean;stdcall;
For Example:
begin
  if SoftIceXP=True then
    Edit1.Text:='有调试工具!';
  //这里你可以调用关机函数;
end;

//检测Dump;
Function AntiDump: Boolean;stdcall;
For Example:
begin
  if AntiDump=True then
    Edit1.Text:='有调试工具!';
  //这里你可以调用关机函数;
end;

//检测RegMON;
Function AntiRegMon: Boolean;stdcall;
For Example:
begin
  if AntiRegMon=True then
    Edit1.Text:='有调试工具!';
  //这里你可以调用关机函数;
end;

//检测FileMON;
Function AntiFileMon: Boolean;stdcall;
For Example:
begin
  if AntiFileMon=True then
    Edit1.Text:='有调试工具!';
  //这里你可以调用关机函数;
end;

//检测调试器;
Function WinAntiLoader():Boolean;stdcall;
For Example:
begin
  if WinAntiLoader=True then
    Edit1.Text:='有调试工具!';
  //这里你可以调用关机函数;
end;

//所有算法的输出集合
function SHCEn(SHCEnStr,SHCKey:PChar):Pchar;stdcall;
For Example:
//SHCEnStr为需要加密的字符串,SHCKey为key;
var
  Str:String;
begin
  Str:=StrPas(SHCEn(PChar('ksaiy'),PChar('1234567890')));
  Edit1.Text:=Str;
end;

//进行明码变换;
Function ChangeCode(ChangeStr:PChar):PChar;stdcall;
For Example:
//ChangeStr为需要变换的字符串,用于进行明码到非明码的变换;
var
  Str:String;
begin
  Str:=Strpas(ChangeCode(PChar('ksaiy')));
end;

//获取硬盘系列号;
Function GetHDID():Pchar;stdcall;
For Example:
begin
  Edit1.Text:=StrPas(GetHDID);
end;

//获取CPU系列号;
Function GetCpuID:PChar;stdcall;
For Example:
begin
  Edit1.Text:=StrPas(GetCpuID);
end;

//获取网卡系列号;
function GetNetID:PChar;stdcall;
For Example:
begin
  Edit1.Text:=StrPas(GetNetID);
end;

//获取BIOS系列号
function GetBiosID():PChar;Stdcall;
For Example:
begin
  Edit1.Text:=StrPas(GetBiosID);
end;
2007-1-24 11:33
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
我是这样做的:
// BlowFishEn(PChar('ksaiy'),PChar('1234567890'))
typedef char* (_stdcall * BLOWFISHEN)(char*,char*);
BLOWFISHEN BlowFishEn;

// DesEn(PChar('ksaiy'),PChar('1234567890'))
typedef char* (_stdcall * DESEN)(char*,char*);
DESEN DesEn;

// DesDe(PChar('ksaiy'),PChar('1234567890'))
typedef char* (_stdcall * DESDE)(char*,char*);
DESDE DesDe;

// MD5En(PChar('ksaiy'))
typedef char* (_stdcall * MD5EN)(char*);
MD5EN MD5En;

typedef char* (_stdcall * GETCPUID)(void);
GETCPUID GetCpuID;

typedef char* (_stdcall * GETHDID)(void);
GETHDID GetHDID;

typedef char* (_stdcall * GETBIOSID)(void);
GETBIOSID GetBiosID;

void main()
{
.
.
.

                if (!(m_hInst=::LoadLibrary("LuoX30NDL.dll")))
                        return 0;

                if(!(DesEn=(DESEN)GetProcAddress(m_hInst,"DesEn")))
                        return 0;

                result = DesEn(str1,str2);
                cout<<"DesEn: "<<result<<endl;
                result = DesEn(mid,usrEven);
                cout<<"DesEn: "<<result<<endl;

                if(!(DesDe=(DESDE)GetProcAddress(m_hInst,"DesDe")))
                        return 0;

                result = DesDe(str4,str3);
                //result = DesDe(str5,str6);
                cout<<"DesDe: "<<result<<endl;

                if(!(MD5En=(MD5EN)GetProcAddress(m_hInst,"MD5En")))
                        return 0;

                result = MD5En(HdID);
                cout<<"MD5En: "<<result<<endl;

                if(!(GetCpuID=(GETCPUID)GetProcAddress(m_hInst,"GetCpuID")))
                        return 0;

                result = GetCpuID();
                cout<<"GetCpuID: "<<result<<endl;

                if(!(GetHDID=(GETCPUID)GetProcAddress(m_hInst,"GetHDID")))
                        return 0;

                result = GetHDID();
                cout<<"GetHDID: "<<result<<endl;

                if(!(GetBiosID=(GETBIOSID)GetProcAddress(m_hInst,"GetBiosID")))
                        return 0;

                result = GetBiosID();
                cout<<"GetBiosID: "<<result<<endl;
}

可以用。

还有就是对access数据库的处理。作者有用到luoMrtKES.dll, 密码是KJh4a9si1fw85KYhfd34
2007-1-24 12:29
0
雪    币: 239
活跃值: (77)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
29
不知道如何用VB调用DesEn和DesDe。
我试了下,没调用成功。
http://www.ksaiy.com又进不去。
请各位指点如何调用呢?

[搞定了,是函数名的大小写搞错了]
2007-1-26 15:00
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
30
呵呵,几天不来,已经沉到这个地方了!
现在回家了,继续研究啊!

感谢上上楼的兄弟赐教,受用了。前两天写了个程序,想跑出第一个号来,可没有算完就要回家了。回来再算吧,可能与个串又不一样了,郁闷死了,一切要从头来了,可能会有更深入的理解吧!

大家一下来啊!哈哈
2007-1-27 23:18
0
雪    币: 239
活跃值: (77)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
31
支持分析算法,做好了,分享一下啊!
分析算法我是不会了,所以只好做了个破解。
2007-1-28 10:38
0
雪    币: 136
活跃值: (429)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
32
算法没有变,破解可以用偷龙转凤,机机嘛,要多费点力。。
2007-1-29 12:05
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
33
做了个注册机,不过不是完全的注册机。大家下载来试用一下吧。
只是针对奇迹英语5.0,精华版。

去http://coolsnake.gbaopan.com下载。

1.把这个程序copy到奇迹英语的安装目录下再运行!
2.注意看一下注册机里机器码跟奇迹英语的机器码是不是一样。如果不一样,就不能注册了。
2007-1-30 15:24
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
马上反馈
下载试用时候,不知道为什么Machine ID 无法输入
程序无法使用
2007-1-30 15:48
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
你直接点击generate就行了。
2007-1-30 16:04
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
点了没有任何反应 是成功了么?
2007-1-30 16:03
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
不行啊,还是只能50个
2007-1-30 16:06
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
38
你把这个程序copy到奇迹英语的安装目录下再运行!
2007-1-30 16:16
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
提示 您输入的注册码错误,程序关闭
2007-1-30 16:29
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
注册机产生的机器码和软件里的不一样
2007-1-30 16:31
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
41
请再去下载一次。
2007-1-30 17:30
0
雪    币: 239
活跃值: (77)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
42
支持!
但在我的电脑中,用户码与奇迹自己生成的不一样,生成的注册码也就不能注册了
2007-1-30 21:39
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
43
下午是在单位的机器试的,不行
现在在家从新下载了注册机,仍然不行
2007-1-30 21:58
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
原来的程序生成的机器码不大对。
重新编译了一个程序,手动输入机器码就行了。
请重新去http://coolsnake.gbaopan.com下载。
上传的附件:
2007-1-30 22:04
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45
注册成功,使用正常,非常感谢!!!
2007-1-30 22:13
0
雪    币: 313
活跃值: (440)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
46
完全搞定了?整理下笔记吧呵呵
2007-1-31 12:40
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
47
最初由 4nil 发布
完全搞定了?整理下笔记吧呵呵


太忙了,没有时间去整理。不过曾经的那篇文章很有用,特别是后面的总结。
http://www.unpack.cn/viewthread.php?tid=3704&extra=&highlight=%9Di%3F&page=1

=====================================================================
乱到一塌糊涂的地步了。言简意赅:

假设注册码="ababababababababcdcdcdcdcdcdcdcdX"
;============================================================================================================
1. 左边
MD5(bbbbbbbb) = DesDe("C7C5014CA9775ACFE7773D44D17372330EE8E33B3627C07A53110F","Jrji48HJFwer428KdEJ9")
              = "b1441c8fe79b07346aea8bef"
     bbbbbbbb = "39483971"
----------------------------------------------------
如果 DesEn(abababababababab, "39483971") = "e?e?e?e?e?e?e?e?......."
"aaaaaaaa" = "eeeeeeee"
;============================================================================================================
2. 右边
   a.    如果 DesDe("B75B46378CE87DC6", Key) ∈  [0,9]∪[a,f]
         则"dddddddd"=key   所以 "dddddddd"="99733593"

   b.    在luoMrtKES.dll的数据库tbLuoPKHaoma里面,有21599条记录
         如果DesEn(md5En("cccccccc"),"99733593")可以在数据库中找到,则注册成功。
         
         因为用的是md5En算法,我们只能穷举。前提是数字很小。(我不知道如果作者用16个字符的话结果会如何)
         我花了10分钟,只找到一个"cccccccc"=69998406。
;============================================================================================================
3. 小结
        "bbbbbbbb" = "39483971"
        "dddddddd" = "99733593"
        "cccccccc" : 如果有兴趣,可以得到更多
        "aaaaaaaa" : 真正与机器码有关的部分
;============================================================================================================

曾经总结的"bbbbbbbb"= "39483971"和"dddddddd" = "99733593"对精华版5.0一样有用。只要把aaaaaaaa和cccccccc找出来就行了。

我算出来的机器码不对,所以就直接用奇迹的机器码,可以得到aaaaaaaa。至于cccccccc,我偷了个懒,没有去找luoMrtKES.dll文件里所对应的key,而是把跟踪出来的一串数字写到luoMrtKES.dll里了。所以注册机里出现的注册码的后面16位在不同的机器还是一样的。
2007-1-31 13:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
MIC
48
最初由 coolsnake 发布
原来的程序生成的机器码不大对。
重新编译了一个程序,手动输入机器码就行了。
请重新去http://coolsnake.gbaopan.com下载。

空间似乎挂掉了.
2007-1-31 13:33
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
49
太好了,有高手帮忙,已经能注册了,不过,发上来那个整理的笔记我早也看过了,是v3.0的,而且你的注册过程,为什么我跟踪的完全不一样呢?

要继续研究!呵呵

注册不是目的,有研究才能进步。
小弟初入破解之门,受教 了!

还是希望您能把笔记整理一下!
2007-1-31 16:40
0
雪    币: 2359
活跃值: (288)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
50
最初由 holmescn 发布
太好了,有高手帮忙,已经能注册了,不过,发上来那个整理的笔记我早也看过了,是v3.0的,而且你的注册过程,为什么我跟踪的完全不一样呢?

要继续研究!呵呵

注册不是目的,有研究才能进步。
........


有个大虾写了篇关于VB中的数据存储格式和寻址方式。

=========================================================
Variant变量的第一个字节表示数据的实际类型,后面七个字节不知有什么用,在第九个字节处才是数据的值或数据的地址。
我整理出的Variant变量的各种实际类型的代码:

代码:--------------------------------------------------------------------------------
02  Integer   用d eax+8可以看到,占两字节
03  Long      用d eax+8可以看到,占四字节
04  Single    用ds eax+8可以看到
05  Double    用dl eax+8可以看到
08  String    用d *(eax+8)可以看到
0B  Boolean   用d eax+8可以看到,True为FFFFFFFF
11  Byte      用d eax+8可以看到,占一字节
--------------------------------------------------------------------------------

注意vb的函数的参数,很多是08开头的,如果想看其中的内容的话,用d *(eax+8)可以看到。
2007-1-31 17:42
0
游客
登录 | 注册 方可回帖
返回
//