此函式庫提供了 visual fortran 上獲取硬碟id,cpu編號,windows安裝時間及檔案頭部校驗的四個函式。可用於簡單的程式加密。(但切勿用於商業性很強的地方)
近期,不少朋友向筆者詢問 fortran 如何獲得網絡卡位址,硬碟id,cpu編號等。對此,筆者給出乙個自己書寫的簡單的函式庫。
fcforhard 是面向 visual fortran(intel,compaq等)編譯器的乙個函式庫,包含四個函式:
1. getsectionchecksum 用於獲取exe頭部校驗。通過此校驗資料,可判斷 exe 是否被加殼或脫殼。 2. getcpuid 用於獲取 cpu 標識。 3. getharddiskserialnumber 用於獲取第一硬碟的 sn 標識。 4. getwininstalldate 用於獲取 windows 首次安裝日期(時間戳)
請注意:
1. 此函式庫不包含源**(由組合語言書寫,且公布源**會降低安全性) 2. 此函式庫僅用於簡單的加密手段!!!!對於商業險很強的工作,建議您購買正式的 dongle 許可管理軟體。 3. 部分函式可能需要管理員身份才能獲得正確的值。
以下為筆者身邊三颱電腦的執行結果:
以下為呼叫的範例**:
program www_fcode_cn!//此**示範 fcforhard 函式庫的呼叫
!//安全性不高,請合理使用!
!//www.fcode.cn 發布
use kernel32 , only : getmodulehandle
use advapi32
implicit none
inte***ce
integer function getsectionchecksum( iaddbase , ilpnum )
!dec$ attributes default, stdcall, alias:'
_getsectionchecksum@8
':: getsectionchecksum
integer iaddbase ,ilpnum
end function getsectionchecksum
subroutine getcpuid( ilpid )
!dec$ attributes default, stdcall, alias:'
_getcpuid@4
':: getcpuid
integer ilpid
end subroutine getcpuid
integer function getharddiskserialnumber( ilpharddisk , ilpid )
!dec$ attributes default, stdcall, alias:'
_getharddiskserialnumber@8
':: getharddiskserialnumber
integer ilpharddisk , ilpid
end function getharddiskserialnumber
integer function getwininstalldate()
!dec$ attributes default, stdcall, alias:'
_getwininstalldate@0
':: getwininstalldate
end function getwininstalldate
end inte***ce
character(
36) :: chdcode = '
\@\t.s\tpgh#yrs?i]c(apl&d6rtibvwe\0z
'character(
48) :: ccpuid , chdid , chd , ctemp
integer i , k
call getcpuid( loc(ctemp) )
ctemp =adjustl(ctemp)
i = index( ctemp , char(0
)) ctemp(i:) = ""
ccpuid =ctemp
write(*,'
(a)',advance='
no') '
cpuid:
'write(*,*) trim(ccpuid)
do i = 1 , 18
chd(i:i) = chdcode( i*2-1 : i*2-1
) enddo
chd(
19:19) = char(0
) ctemp = ""
i =getharddiskserialnumber( loc(chd) , loc( ctemp ) )
ctemp =adjustl(ctemp)
chdid =ctemp
write(*,'
(a)',advance='
no') '
disksn:
'write(*,*) trim(adjustl(chdid))
write(*,'
(a)',advance='
no') '
win install date:
'write(*,'
(z8)
') getwininstalldate()
i = getmodulehandle(0
) i =getsectionchecksum( i , loc(k) )
write(*,'
(a,g0)
') '
sum of pe header:
', k
read(*,*)
end program www_fcode_cn
乙個用C 獲取硬體資訊的類
乙個用c 獲取硬體資訊的類 獲得主機ip位址 public string gethostip 獲取cpu編號 public string getcpuid return strcpuid catch return strharddiskid catch exception ex 獲取網絡卡mac位址...
android 獲取系統硬體資訊
一,首先設定許可權訪問 二,邏輯 獲取系統硬體資訊 package com.wangfubin.getmyphoneinformation import org.w3c.dom.userdatahandler import android.r.id import android.annotation...
乙個小視覺系統的硬體與軟體
最近做乙個機器視覺專案,對光學 鏡頭 相機 採集卡 軟體等都有了一些理解,做下筆記,慢慢完善。乙個小的機器視覺系統,分為硬體和軟體。硬體需要對光學 鏡頭 相機 採集卡等。軟體需要對做操作介面,主要是控制板塊對相機的影象採集。注意 相機與鏡頭之間有乙個法蘭距離,這個距離如果沒有對應,會對視野 焦距調節...