begin process at 2012 02 16 06:11:44
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité

 > DEBUGGER DETECTION

DEBUGGER DETECTION


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité Niveau :Initié Date de création :18/06/2002 Date de mise à jour :18/06/2002 22:11:40 Vu / téléchargé :5 655 / 221

Auteur : SkylandeR

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Il détécte si il y'a présence d'un débugger au lancement de votre programme (4 différentes méthodes)

Source

  • 'Les constantes
  • Const HKEY_CLASSES_ROOT = &H80000000
  • Const HKEY_CURRENT_USER = &H80000001
  • Const HKEY_LOCAL_MACHINE = &H80000002
  • Const HKEY_USERS = &H80000003
  • Const HKEY_DYN_DATA = &H80000004
  • Public Const OF_READ = &H0&
  • Public Const INVALID_HANDLE_VALUE = -1
  • Public Const GENERIC_WRITE = &H40000000
  • Public Const OPEN_EXISTING = 3
  • Public Const FILE_SHARE_READ = &H1
  • Public Const FILE_SHARE_WRITE = &H2
  • 'Les API
  • Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  • Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
  • Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
  • Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
  • Public Declare Function lOpen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
  • Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
  • Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  • Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
  • Public Declare Function IsDebuggerPresent Lib "kernel32" () As Long
  • Public Enum HCle
  • HKeyLocalMachine = 0
  • HKeyCurrentUser = 1
  • HKeyClassesRoot = 2
  • HKeyUsers = 3
  • HKeyDynamicData = 4
  • End Enum
  • Private Function HKConvert(HK As HCle) As Long
  • If HK = 2 Then HKConvert = HKEY_CLASSES_ROOT
  • If HK = 1 Then HKConvert = HKEY_CURRENT_USER
  • If HK = 0 Then HKConvert = HKEY_LOCAL_MACHINE
  • If HK = 3 Then HKConvert = HKEY_USERS
  • If HK = 4 Then HKConvert = HKEY_DYN_DATA
  • End Function
  • Public Function LireValeur(HK As HCle, Chemin As String, Valeur As String) As String
  • Buff = 0
  • Buff = RegCreateKey(HKConvert(HK), Chemin, lng)
  • If Buff = 0 Then RegQueryValueEx lng, Valeur, 0&, 1, 0&, Buff
  • If Buff < 2 Then
  • LireValeur = ""
  • Exit Function
  • End If
  • LireValeur = String(Buff + 1, " ")
  • RegQueryValueEx lng, Valeur, 0&, 1, ByVal LireValeur, Buff
  • LireValeur = Left(LireValeur, Buff - 1)
  • End Function
  • Sub Main()
  • Call Debugger_Detection
  • End Sub
  • Public Sub Debugger_Detection()
  • message = "Debugger detected ! Please Diseable It before use our software"
  • titre = "Debugger detection !"
  • '1e méthode : L'API is debugger present
  • If IsDebuggerPresent <> 0 Then GoTo fin
  • '2e méthode : Cherche une clé consernant le débugger NuMega Softice
  • a = LireValeur(HKEY_LOCAL_MACHINE, "Software\NuMega\SoftICE", "InstallDir")
  • If a <> "" Then GoTo fin2
  • a = ""
  • a = LireValeur(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Uninstall\SoftICE", "UninstallString")
  • If a <> "" Then GoTo fin2
  • a = ""
  • a = LireValeur(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\App Paths\Loader32.Exe", "Path")
  • If a <> "" Then GoTo fin2
  • '3e methode : Utilisation de createfilea
  • si1 = "\\\\.\\SICE" 'Pour
  • si2 = "\\\\.\\SIWVID" 'win 9X
  • si3 = "\\\\.\\NTICE" 'NT
  • lngHandle = CreateFile(si1, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
  • If lngHandle <> INVALID_HANDLE_VALUE Then GoTo fin
  • lngHandle = CreateFile(si2, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
  • If lngHandle <> INVALID_HANDLE_VALUE Then GoTo fin
  • lngHandle = CreateFile(si3, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
  • If lngHandle <> INVALID_HANDLE_VALUE Then GoTo fin
  • '4e méthode : Utilisation de lopen
  • Pointer = lOpen(si1, OF_READ)
  • If Pointer <> INVALID_HANDLE_VALUE Then GoTo fin
  • Pointer = lOpen(si2, OF_READ)
  • If Pointer <> INVALID_HANDLE_VALUE Then GoTo fin
  • Pointer = lOpen(si3, OF_READ)
  • If Pointer <> INVALID_HANDLE_VALUE Then GoTo fin
  • Exit Sub
  • fin:
  • MsgBox message, vbCritical + vbOKOnly, titre
  • End
  • fin2:
  • MsgBox "Debugger is installed in this computer, Please uninstall it before use " & App.EXEName, vbCritical + vbOKOnly, "NuMega Softice installed !"
  • End Sub
'Les constantes
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_DYN_DATA = &H80000004
Public Const OF_READ = &H0&
Public Const INVALID_HANDLE_VALUE = -1
Public Const GENERIC_WRITE = &H40000000
Public Const OPEN_EXISTING = 3
Public Const FILE_SHARE_READ = &H1
Public Const FILE_SHARE_WRITE = &H2
'Les API
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Declare Function lOpen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function IsDebuggerPresent Lib "kernel32" () As Long
Public Enum HCle
    HKeyLocalMachine = 0
    HKeyCurrentUser = 1
    HKeyClassesRoot = 2
    HKeyUsers = 3
    HKeyDynamicData = 4
End Enum

Private Function HKConvert(HK As HCle) As Long
If HK = 2 Then HKConvert = HKEY_CLASSES_ROOT
If HK = 1 Then HKConvert = HKEY_CURRENT_USER
If HK = 0 Then HKConvert = HKEY_LOCAL_MACHINE
If HK = 3 Then HKConvert = HKEY_USERS
If HK = 4 Then HKConvert = HKEY_DYN_DATA
End Function

Public Function LireValeur(HK As HCle, Chemin As String, Valeur As String) As String
Buff = 0
Buff = RegCreateKey(HKConvert(HK), Chemin, lng)
If Buff = 0 Then RegQueryValueEx lng, Valeur, 0&, 1, 0&, Buff
If Buff < 2 Then
    LireValeur = ""
    Exit Function
End If
LireValeur = String(Buff + 1, " ")
RegQueryValueEx lng, Valeur, 0&, 1, ByVal LireValeur, Buff
LireValeur = Left(LireValeur, Buff - 1)
End Function

Sub Main()
Call Debugger_Detection
End Sub


Public Sub Debugger_Detection()
message = "Debugger detected ! Please Diseable It before use our software"
titre = "Debugger detection !"
'1e méthode : L'API is debugger present
If IsDebuggerPresent <> 0 Then GoTo fin
'2e méthode : Cherche une clé consernant le débugger NuMega Softice
a = LireValeur(HKEY_LOCAL_MACHINE, "Software\NuMega\SoftICE", "InstallDir")
If a <> "" Then GoTo fin2
a = ""
a = LireValeur(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Uninstall\SoftICE", "UninstallString")
If a <> "" Then GoTo fin2
a = ""
a = LireValeur(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\App Paths\Loader32.Exe", "Path")
If a <> "" Then GoTo fin2
'3e methode : Utilisation de createfilea
si1 = "\\\\.\\SICE"     'Pour
si2 = "\\\\.\\SIWVID"   'win 9X
si3 = "\\\\.\\NTICE"    'NT
lngHandle = CreateFile(si1, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
If lngHandle <> INVALID_HANDLE_VALUE Then GoTo fin
lngHandle = CreateFile(si2, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
If lngHandle <> INVALID_HANDLE_VALUE Then GoTo fin
lngHandle = CreateFile(si3, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
If lngHandle <> INVALID_HANDLE_VALUE Then GoTo fin
'4e méthode : Utilisation de lopen
Pointer = lOpen(si1, OF_READ)
If Pointer <> INVALID_HANDLE_VALUE Then GoTo fin
Pointer = lOpen(si2, OF_READ)
If Pointer <> INVALID_HANDLE_VALUE Then GoTo fin
Pointer = lOpen(si3, OF_READ)
If Pointer <> INVALID_HANDLE_VALUE Then GoTo fin
Exit Sub
fin:
MsgBox message, vbCritical + vbOKOnly, titre
End
fin2:
MsgBox "Debugger is installed in this computer, Please uninstall it before use " & App.EXEName, vbCritical + vbOKOnly, "NuMega Softice installed !"
End Sub


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip AUTORUN POUR VOS COMPILATIONS SUR CD
Source avec Zip DETECTER LA PRÉSENCE D'UN CD
Source avec Zip CONVERTIR LES CHEMINS WIN EN DOS (LIMITE DES 8 CHARACTÈRES)

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) CHIFFREMENT XOR PLUS ROBUSTE par dheroux
Source avec Zip CRYPTAGE MARANT par alpha5
Source avec Zip ACCÈS PAR MOT DE PASSE À FEUILLE EXCEL par mimiZanzan
Source avec Zip CRYPTER-DÉCRYPTER UN TEXTE - TEXTE CRYPTÉ UNIQUEMENT EN MAJ... par Saintache
Source avec Zip Source avec une capture FOLDER PROTECTION par hackoo

Commentaires et avis

Commentaire de PatDeLaYaute le 19/06/2002 00:43:43

Salut,
ca a l'air d'être un bon code, mais y'a une petite chose,
en regardant vite fait le code, j'ai comme l'impression que cela ne détecte que SoftICE. Y'a pas que celui là comme debugger.
Je sais pas comment fonctionne softice, mais tu pourrait faire plus simple en faisant la liste des applis en cours et de rechercher le nom de softice cette liste.
Cela raccourcirait un peu le code. La seule chose est de connaitre le nom du debugger dans la liste des taches

@+ et bonne prog

Commentaire de lowan le 19/06/2002 09:28:16

Salut, bon ce n'est pas pour vous contredire mais bon. Il existe des utilitaires pour contourner les createfile, je ne citeré que frogice comme exemple. De plus il est tout aussi simple d'ouvrir ce fichier dans Numega smartcheck ou bien encore dans W32Dasm. Qui sont pour moi les meilleurs, de plus il suffit douvrir le fichier dans w32dasm trouver le saut conditionnel, ou bien tout simplement enlever le call avec un éditeur hexadécimal. Voila je te laisse. @+ enfin je tenais à te dire que cété déja pas mal davoir fait ca.

Commentaire de kalif le 19/06/2002 14:15:27

qq pourrait me dire vite fait comment fonctionne softice ou un ptit url qui explique ...

++

Commentaire de SkylandeR le 23/06/2002 21:36:31

PatDeLaYaute &gt; la plus part des débugger (je prend le cas de Softice) ont la particularité de ne PAS apparaitre dans la liste des taches parcequ'il se lance avant Windows, le système est bloquée quand on l'appelle avec Crtl-D, donc ton idée peut marcher pour d'autre débugger comme TWR mais Softice, non. Merci quand même.
Lowan &gt; Je connais très bien l'existence de Frogice, chuit un cracker! Je salue au passage le formidable travail de Frog_Print. C'est le fichier Code.txt livré avec Frogice qui explique toutes les protections que j'ai fait mon chtit prog. Mais y'a des protections que j'ai pas incluse car c'est du pur asm qui ne peut pas etre "traduit" en VB et/ou ça implique des interruptions spécifiques au dos (int3...)
kalif &gt; T'as qu'a chercher des tut de cracking et tu trouvera surrement une explication de softice, je te conseille 2 tut :
memento 2 par la shmeit corp
Acid burn tutorial 2000 par Acid_Burn

Thanks les gars pour votre aide

Commentaire de 24Karas le 01/11/2002 22:45:14

Pour le site de la shmeit il a changé d'adresse : www.shmeitcorp.tk
sinon sur le site de christal il y a plein d'explication : christal.suidzer0.org
       dedi : [Kheo] SC

Commentaire de zappy le 28/12/2002 12:22:37

suidzer0.org, c'est le site d'un pote :)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,136 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales