请教一下: 利用setlength函数给动态数组斌值, 下面这样写代码会有安全隐患吗?
(此代码用DLL HOOK另外一个进程,并读他的数据 Bag为全局动态数组)
================================procedure Load_Bag ;
var i, m, n: dword ;
begin
try
m := pdword(Pbag)^ ; //数组基址
SetLength (Bag, 0); //清空
for i := 0 to 35 do
begin
n:=Pdword(m+i*4+$33c)^; //首址
if n <> 0 then
begin
SetLength (Bag, Length(Bag)+1);
Bag[High(bag)].Base := m + i*4 +$33c ;
bag[High(bag)].Name := PChar(n+$58); //bag[High(bag)].Name :Pchar
Bag[High(bag)].PCS := pdword(n+$4a0)^;
Bag[High(bag)].Addr := n;
end;
end;
except
end;
end;
(此代码用DLL HOOK另外一个进程,并读他的数据 Bag为全局动态数组)
================================procedure Load_Bag ;
var i, m, n: dword ;
begin
try
m := pdword(Pbag)^ ; //数组基址
SetLength (Bag, 0); //清空
for i := 0 to 35 do
begin
n:=Pdword(m+i*4+$33c)^; //首址
if n <> 0 then
begin
SetLength (Bag, Length(Bag)+1);
Bag[High(bag)].Base := m + i*4 +$33c ;
bag[High(bag)].Name := PChar(n+$58); //bag[High(bag)].Name :Pchar
Bag[High(bag)].PCS := pdword(n+$4a0)^;
Bag[High(bag)].Addr := n;
end;
end;
except
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货