加密狗裝置的讀取與應用

2021-05-23 11:10:56 字數 3058 閱讀 9400

unit untmain;

inte***ce

const

mcw_em = dword($133f);

varmain: tmain;

implementation

function tmain.getmac: string;

varncb : tncb;

s:string;

adapt : tastat;

lanaenum : tlanaenum;

i, j, m : integer;

strpart, strmac : string;

begin

fillchar(ncb, sizeof(tncb), 0);

ncb.ncb_command := char(ncbenum);

ncb.ncb_buffer := pchar(@lanaenum);

ncb.ncb_length := sizeof(tlanaenum);

s:=netbios(@ncb);

for i := 0 to integer(lanaenum.length)-1 do

begin

fillchar(ncb, sizeof(tncb), 0);

ncb.ncb_command := char(ncbreset);

ncb.ncb_lana_num := lanaenum.lana[i];

netbios(@ncb);

netbios(@ncb);

fillchar(ncb, sizeof(tncb), 0);

ncb.ncb_command := chr(ncbastat);

ncb.ncb_lana_num := lanaenum.lana[i];

ncb.ncb_callname := '*               ';

ncb.ncb_buffer := pchar(@adapt);

ncb.ncb_length := sizeof(tastat);

m:=0;

if (win32platform = ver_platform_win32_nt) then

m:=1;

if m=1 then

begin

if netbios(@ncb) = chr(0) then

strmac := '';

for j := 0 to 5 do

begin

strpart := inttohex(integer(adapt.adapter.adapter_address[j]), 2);

strmac := strmac + strpart + '-';

end;

setlength(strmac, length(strmac)-1);

end;

if m=0 then

if netbios(@ncb) <> chr(0) then

begin

strmac := '';

for j := 0 to 5 do

begin

strpart := inttohex(integer(adapt.adapter.adapter_address[j]), 2);

strmac := strmac + strpart + '-';

end;

setlength(strmac, length(strmac)-1);

end;

end;

result:=strmac;

end;

function tmain.getip: string;

type

tapinaddr = array [0..10] of pinaddr;//定義記憶體位址類地資料物件

papinaddr = ^tapinaddr; //分配記憶體

varphe  : phostent;//宣告物件

pptr : papinaddr; //宣告物件

buffer : array [0..63] of char; //定義陣列,為緩衝區

i    : integer; //臨時整型變數

ginitdata      : twsadata; //宣告物件

begin

wsastartup($101, ginitdata);

result := '';

gethostname(buffer, sizeof(buffer));

phe :=gethostbyname(buffer);

if phe = nil then exit;

pptr := papinaddr(phe^.h_addr_list);

i := 0;

while pptr^[i] <> nil do begin

if i=0

then result:=strpas(inet_ntoa(pptr^[i]^))

else result:=result+':'+strpas(inet_ntoa(pptr^[i]^));

inc(i);

end;

wsacleanup;

end;

handled := (isdialogmessage(webmain.handle, msg) = system.true);

if foleinplaceactiveobject <> nil then

begin

if ((msg.message = wm_keydown) or (msg.message = wm_keyup)) and

(msg.wparam in dialogkeys) then

// nothing - do not pass on the dialogkeys

else

foleinplaceactiveobject.translateaccelerator(msg);

end;

end;

end;

initialization

oleinitialize(nil);

finalization

oleuninitialize;

end.

加密狗的一些個人記錄

最近用到了加密狗,之前從來都沒有接觸過,謝謝 賣家,我想把一些東西自己寫一下。狗分為開發狗和子狗,開發狗買乙個就行,然後子狗的話,都可以通過這個開發狗來處理。我把幾個自己碰到的問題,簡單記錄一下,第乙個是超級狗開發商的匯入問題,估計官網不太穩定,一直不能很好匯入,重啟機器了也沒有用,最後找 賣家要了...

用加密狗控制軟體的授權 C

每只加密狗都有乙個固定的序列號,並且一般是無法修改的。軟體執行時讀取加密狗的序列號進行判斷,序列號通過驗證後才能正常使用軟體。需要用到以下方法 1 獲取狗驅動程式安裝資訊介面函式getdogdriverinfo,定義如下 int pascal getdogdriverinfo 引數 無 返回值 0 ...

帶加密狗u盤的軟體破解

對於 dart 團隊而言今天是 null safety 技術預覽的乙個重要里程碑,null safety 可以幫助開發者避免一些日常開發中很難被發現的錯誤,並且額外的好處是可以改善效能,現在 null safety 的早期技術預覽已經發布,期待大家的使用反饋。這篇文章將介紹加密狗u盤的軟體破解 da...