Author Topic: [TIPS]: Ambil serial number hard disk untuk copy protection software Anda.  (Read 801 times)

0 Members and 2 Guests are viewing this topic.

Offline foxy

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 3.535
    • Foxy Land
Hello guys.....

Siapa yang senang programnya di-bajak? Kalau Anda gak senang, gimana kalau Anda bikin copy protection supaya software yang sudah capek-capek Anda buat gak dijalankan oleh orang yang tidak mempunyai ijin (alias dapat dari copy --- alias gak bayar ke Anda). Ada banyak teknik sebenarnya; yang akan saya bagikan sekarang hanya inti nya saja. Disclaimer: ini bukan fungsi yang bisa Anda langsung drag-and-drop dan berjalan tanpa harus Anda mikir. Yang saya bagikan cuma fungsi aja. Pemanfaatannya kembali ke kreatifitas Anda. Tentu saja kalau Anda mau berdiskusi di thread ini, saya yakin banyak yang bisa ikutan urun-rembug dan (mungkin) bersedia membagikan kreatifitas masing-masing yang pasti canggih-canggih  :icon_biggrin: .
Anyway.... ini fungsinya:

Code: [Select]
MessageBox("Serial Number for HD0 is: " + Chr(13) ;
+ "   " + GetSN_HD0())
Return 0

*--------------------------------------------------------------
* Function    : GetSN_HD0
* Entry with  : none
* Return with : hard disk 0 serial number
*--------------------------------------------------------------
Function GetSN_HD0
LOCAL objWMI,colClass,objClass,strComputer, lcSerial
lcSerial = ""
strComputer = "."
objWMI = GetObject("winmgmts:\\" +strComputer + "\root\cimv2")
colClass = objWMI.ExecQuery("Select * from Win32_PhysicalMedia",,48)

For Each objClass in colClass
If !IsNull(objclass.serialnumber)
lcTag = Alltrim(objclass.Tag)
lcDrive = Right(lcTag, 1)
If lcDrive = '0'
  lcSerial = Alltrim(objclass.serialnumber)
                        Exit
  EndIf
  EndIf
Next
Return lcSerial

Salah satu kelebihan fungsi ini adalah bisa dijalankan tanpa harus memiliki otorisasi Administrator (tidak perlu run as Administrator).

Menarik? Monggooooooooooooooooo......

:D

foxy

« Last Edit: October 17, 2017, 09:59:37 PM by foxy »
This post is provided as is. Feel free to use all the codes and information, however understand that I don't have any obligations to fix any bug(s) or follow up this subject.

Offline doditasik

  • Full Member
  • *
  • Posts: 76
   :thumbsup: :thumbsup:

   Boleh di tambahin..,
  1. Create file text, extention DLL (Biar di sangka file DLL) (contoh WINSTT.DLL apa saja), simpan di Windows\System...
      ntar waktu Load cek file tersebut..
  2. Create file modul2 penting, simpan di Flash Donggle, setiap nambah client cass biaya donggle (modul) + PPN

Offline foxy

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 3.535
    • Foxy Land

 :thumbsup: :thumbsup: :thumbsup:

   :thumbsup: :thumbsup:

   Boleh di tambahin..,
  1. Create file text, extention DLL (Biar di sangka file DLL) (contoh WINSTT.DLL apa saja), simpan di Windows\System...
      ntar waktu Load cek file tersebut..

... jangan lupa isi nya di-encrypt. Jadi kalau pun ada yang bisa nebak dan membuka file tersebut, tetap gak bisa baca --- jadi gak bisa menghubungkan dengan serial number hard disk.

This post is provided as is. Feel free to use all the codes and information, however understand that I don't have any obligations to fix any bug(s) or follow up this subject.

Offline agooze

  • Junior Member
  • *
  • Posts: 134

mas foxy, beda dengan function ini apa ya?

MessageBox("Serial Number for HD0 is: " + Chr(13) ;
         + "   " + NOMORSERI())
Return 0


FUNCTION NOMORSERI
   LOCAL LCCOMPUTERNAME, LOWMI, LOWMIWIN32OBJECTS, LOWMIWIN32OBJECT,HDDID
   LCCOMPUTERNAME = GETWORDNUM(SYS(0),1)
   LOWMI = GETOBJECT("WinMgmts://" + LCCOMPUTERNAME)
   LOWMIWIN32OBJECTS = LOWMI.INSTANCESOF('Win32_LogicalDisk')
   FOR EACH LOWMIWIN32OBJECT IN LOWMIWIN32OBJECTS
      WITH LOWMIWIN32OBJECT
         IF .NAME="C:"    && untuk drive C
            ZZZ=.VOLUMESERIALNUMBER
         ENDIF
      ENDWITH
   ENDFOR
   RETURN (ZZZ)

Offline foxy

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 3.535
    • Foxy Land

mas foxy, beda dengan function ini apa ya?

MessageBox("Serial Number for HD0 is: " + Chr(13) ;
         + "   " + NOMORSERI())
Return 0


FUNCTION NOMORSERI
   LOCAL LCCOMPUTERNAME, LOWMI, LOWMIWIN32OBJECTS, LOWMIWIN32OBJECT,HDDID
   LCCOMPUTERNAME = GETWORDNUM(SYS(0),1)
   LOWMI = GETOBJECT("WinMgmts://" + LCCOMPUTERNAME)
   LOWMIWIN32OBJECTS = LOWMI.INSTANCESOF('Win32_LogicalDisk')
   FOR EACH LOWMIWIN32OBJECT IN LOWMIWIN32OBJECTS
      WITH LOWMIWIN32OBJECT
         IF .NAME="C:"    && untuk drive C
            ZZZ=.VOLUMESERIALNUMBER
         ENDIF
      ENDWITH
   ENDFOR
   RETURN (ZZZ)

Fungsi di atas mengembalikan Volume Serial Number, bukan Disk Serial Number. Di Windows, volume serial number bisa didapatkan dengan cara mengetikkan VOL di command prompt atau juga terlihat di baris kedua saat mengetikkan perintah DIR. Volume serial number bisa dengan mudah diubah dengan banyak utility yang bertebaran di internet (salah satunya dari sysinternal: https://technet.microsoft.com/en-us/sysinternals/bb897436.aspx ). Volume serial number juga akan sama kalau Anda menggunakan utility disk cloning. Jadi kalau Anda menggunakan volume serial number untuk copy protection, ya masih bisa diakalin. Kalau disk serial number, setau saya tidak mungkin diubah. Setiap hard disk mempunyai disk serial unik yang gak mungkin sama. Jadi kalau dimanfaatkan untuk copy protection akan lebih reliable.

hth,
foxy
This post is provided as is. Feel free to use all the codes and information, however understand that I don't have any obligations to fix any bug(s) or follow up this subject.

Offline agooze

  • Junior Member
  • *
  • Posts: 134

trims info nya mas foxy.

Tapi apakah sudah di coba untuk HDD yg ukuran sama & type yang sama dan merk yang sama PASTI MEMPUNYAI nomor seri yang beda?
Soalnya ada juga function membaca PROCESOR ID tapi ternyata untuk merk yang sama PROCECOR ID nya sama semua.

Contoh function nya sbb:

FUNCTION GetProcID
   LOCAL lcComputerName, loWMI, lowmiWin32Objects, lowmiWin32Object,ProcessorId
   lcComputerName = GETWORDNUM(SYS(0),1)
   loWMI = GETOBJECT("WinMgmts://" + lcComputerName)
   lowmiWin32Objects = loWMI.InstancesOf("Win32_Processor")
   FOR EACH lowmiWin32Object IN lowmiWin32Objects
      WITH lowmiWin32Object
         ProcessorId=TRANSFORM(.ProcessorId)
      ENDWITH
   ENDFOR
    RETURN ProcessorId

Offline foxy

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 3.535
    • Foxy Land

trims info nya mas foxy.

Tapi apakah sudah di coba untuk HDD yg ukuran sama & type yang sama dan merk yang sama PASTI MEMPUNYAI nomor seri yang beda?


Processor id memang tidak dijamin unik. Bahkan bisa saja processor tidak mempunya processor id (atau ditutup di BIOS-nya. Beberapa BIOS seperti BIOS di server Dell bisa menutup informasi ini).

Serial number hard disk dijamin unik. Paling tidak itu pengalaman saya menggunakan serial number hard disk untuk copy protection sejak tahun 2004.

hth,
foxy
This post is provided as is. Feel free to use all the codes and information, however understand that I don't have any obligations to fix any bug(s) or follow up this subject.

Offline agooze

  • Junior Member
  • *
  • Posts: 134

sekali lagi trims atas info nya mas foxy.

Offline arietsh

  • Junior Member
  • *
  • Posts: 124
Terimakasih Infonya pak Foxy.. Izin Sedot dan belajar


trims info nya mas foxy.

Tapi apakah sudah di coba untuk HDD yg ukuran sama & type yang sama dan merk yang sama PASTI MEMPUNYAI nomor seri yang beda?


Processor id memang tidak dijamin unik. Bahkan bisa saja processor tidak mempunya processor id (atau ditutup di BIOS-nya. Beberapa BIOS seperti BIOS di server Dell bisa menutup informasi ini).

Serial number hard disk dijamin unik. Paling tidak itu pengalaman saya menggunakan serial number hard disk untuk copy protection sejak tahun 2004.

hth,
foxy


Offline honghong

  • Newbie
  • *
  • Posts: 32
Saya coba test di VFP 9.0 SP2, OS Windows 7 Pro, tidak bisa jalan pak Foxy

Offline foxy

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 3.535
    • Foxy Land
Re: [TIPS]: Ambil serial number hard disk untuk copy protection software Anda.
« Reply #10 on: October 14, 2017, 11:44:03 AM »
ah masa.... gak bisa jalannya gimana? Ada pesan error atau apa? Atau jangan-jangan Anda co pas nya dari tempat yang salah....

Barusan saya coba di laptop saya; Windows 10 x64; VFP9 SP2.



This post is provided as is. Feel free to use all the codes and information, however understand that I don't have any obligations to fix any bug(s) or follow up this subject.

Offline honghong

  • Newbie
  • *
  • Posts: 32
Re: [TIPS]: Ambil serial number hard disk untuk copy protection software Anda.
« Reply #11 on: October 17, 2017, 10:33:55 AM »
Oh iya pak hahaha, maafkan saya, my fault... copas-nya kurang teliti. Ternyata masih ada source code dibawahnya yg saya ngga tahu sebelum lihat screenshot source code bapak hahaha

Jalan kok...



Terima kasih banyak atas artikelnya pak Foxy, sangat berguna sekali.  :occasion14:

Offline oongs

  • Newbie
  • *
  • Posts: 23
Re: [TIPS]: Ambil serial number hard disk untuk copy protection software Anda.
« Reply #12 on: October 18, 2017, 02:08:07 PM »
Maaf gan ...

Saya sudah mencoba ...

Fungsi diatas tidak bisa jalan di :

OS XP SP3
VFP 7.0
VFP 9.0 SP2

Fungsi diatas bisa jalan di :

OS Windows 7
VFP 9.0 SP2

Tetapi hasilnya tidak seperti di atas  :

4a35455a354e3435202020202020202020202020

 ??? ??? ???

Offline foxy

  • Fox-id M.V.P
  • Hero Member
  • *
  • Posts: 3.535
    • Foxy Land
Re: [TIPS]: Ambil serial number hard disk untuk copy protection software Anda.
« Reply #13 on: October 18, 2017, 08:33:59 PM »
@oongs:

waktu pakai XP, saya pakai fungsi yang berbeda. Hanya saja fungsi yang sebelumnya saya biasa pakai di XP akan membutuhkan otorisasi Administrator di Windows Vista++. Setelah mencari dan rubah sana-sini, akhirnya saya dapatkan fungsi yang saya share di post ini.

Kalau di XP gak jalan, sorry saya gak bisa bantu. Nanti kalau kebetulan saya ketemu fungsi saya yang dulu, kalau ingat akan saya share. Tapi terus terang saya gak janji. Operating system XP sudah terlalu lama untuk di support. Demikian juga halnya dengan VFP7; saya sudah gak punya client yang aplikasi nya pakai VFP7. Rata-rata sudah di upgrade/dicompile ulang ke at least VFP8.

Mengenai hasil yang Anda dapatkan di Win7 & VFP9; coba Anda post screen shot seperti yang saya (dan honghong) lakukan. Mungkin ada yang terlewat.

hth,

foxy
This post is provided as is. Feel free to use all the codes and information, however understand that I don't have any obligations to fix any bug(s) or follow up this subject.

Offline benqz

  • Junior Member
  • *
  • Posts: 137
Master Foxy apa sudah pernah di coba kalau windowsnya diinstall ulang serial disk numbernya masih sama? atau berbeda?