笨鸟我先飞 发表于 2008-9-7 21:48:52

成员区软件学习(教训啊,我的粗心)

今天我发这个帖子完全是模仿
https://www.chinapyg.com/viewthread.php?tid=17082&extra=page%3D2
这位仁兄的作品。毫无技术可言。主要是提醒象我一样的菜菜们在跟踪软件的时候一定要细心。
或者说是在编写程序的时候- -!
具体跟踪过程略去不提。这个程序可以下BP RegQueryInfoKeyA 运行三次后看堆栈提示pass比较可疑。F8+F7小心跟踪。我们发现程序从注册表里
取出我们填入的注册码(高手所说的假码。。想当初俺理解什么是假码用了一天 - -!);单步AND单步,我们忽然发现了硬件信息
其实程序是用了GetDiskFreeSpace这个函数经过一个计算过程(- -!没跟踪猜的)得出的。继续走下去忽然发现程序的真码出现了。
OK,在上面的call上下断重新运行程序。并清楚api断点。这次我们直接断在call上。F7跟进,一步步我们会发现程序依次取硬件码的
ascii码的hex值,我的问题就出在这里我一看到那几个熟悉的数字,直觉告诉我这是在循环取ascii码呢!!接下来程序把取得的注册码
连接成字符串然后翻转这个字符串。
我这里的结果为
1573E44393142563 结果记位 v1
传入固定字符串 service456ei878 结果记为 v2
取v2的前4位结果记为T1
取v1的前4位结果记为T2
取v2的5-9位结果记为T3
取V1的5-8位结果记为T4
注册码=T1-T2-T3-T4

硬件码,注册码,DATA(未跟踪,怀疑为当前日期)保存至HKEY_LOCAL_MACHINE\SOFTWARE\vt\service
删除后可继续研究
附上 delphi的注册机源码unit Unit1;

inte**ce

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

type
Tmain = class(TForm)
    sr: TEdit;
    Label1: TLabel;
    xs: TEdit;
    Button1: TButton;
    ss: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
private
    { Private declarations }
public
    { Public declarations }
end;

var
main: Tmain;

implementation

{$R *.dfm}
function getasc(s:string):string;
var
len,i:integer;
asc1,mm:string;
begin
len:=length(s);
for i:=1 to len do
begin
asc1:=inttohex(byte(s),2);
mm:=mm+asc1
end;
result:=mm;
end;

procedure Tmain.Button1Click(Sender: TObject);
var
numstr,mynum,mystr,sastr,t1,t2,t3,t4:string;
begin
   mynum:=trim(main.sr.Text);
   mystr:=getasc(mynum);
   sastr:='service456ei878';
   numstr:=reversestring(mystr);
   t1:=copy(sastr,0,4);
   t2:=copy(numstr,0,4);
   t3:=copy(sastr,5,5);
   t4:=copy(numstr,5,4);
   xs.Text:=t1+'-'+t2+t3+'-'+t4;
end;

end.另:我在写程序的时候自定义了一个取字符串ascii码的函数。细心的朋友应该注意到了我上面说过我在那个地方以为程序是把
硬件码的ascii码直接翻转的其实程序于是我一开始是这么写的function getasc(s:string):string;
var
len,i:integer;
asc1,mm:string;
begin
len:=length(s);
for i:=1 to len do
begin
asc1:=inttostr(byte(s));
mm:=mm+asc1
end;
result:=mm;
end;当我看到我的结果不对的时候满世界的找答案问别人我这样写取ascii码正确不。。。- -!其实我的函数和我的问题搭配来看是
没错的。在判断问题的时候有时候太主观也是个障碍。。。希望大家记住我的教训。

[ 本帖最后由 笨鸟我先飞 于 2008-9-7 21:54 编辑 ]

magic659117852 发表于 2008-9-8 10:15:54

/:001 类似算法的软件N多~~~但暗桩也N多
页: [1]
查看完整版本: 成员区软件学习(教训啊,我的粗心)