cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 2013
-
29 mars 2003 à 08:55
cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 janvier 2021
-
27 juin 2004 à 01:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 janvier 2021 27 juin 2004 à 01:35
ReptileCrackeR, Désolé
J'ai un contract qui me l'interdit avec mon nouvel employeur (donc plu de nouvelles sources de Manchester....)
J'en publierai peut etre des anciennes quand je remetrai la main dessus, mais le reste ne m'apartiend plu...
Bon Coding....
ManChesTer.
ReptileCrackeR
Messages postés2Date d'inscriptionmardi 24 octobre 2000StatutMembreDernière intervention26 juin 2004 26 juin 2004 à 21:29
manchester tu pe faire une ptite source d'exemple ca minteresse la suis en train de bosser sur un ptit prog anti sice avec crc checksum, cryptage de certaines parties de l'executable et pas mal de ptits truc en plus :)
cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 janvier 2021 26 juin 2004 à 19:44
Lol ReptileCrackeR,
D'ou l'utilitè de timers comme je l'ai ecrit plus haut...
d'autre part un peux de code automodifiè et/ou autogenerer et quelques bon checksum controls rendent tres vite ta methode d'inversion de saut (meme en mèmoire) totalement inefficace...
Bon Coding...
ManChesTer.
ReptileCrackeR
Messages postés2Date d'inscriptionmardi 24 octobre 2000StatutMembreDernière intervention26 juin 2004 26 juin 2004 à 16:26
disons que c une "protection" vraiment tres peu evoluer quon peut faire sauter un inversant un saut conditionnel ou avec un bpx createfilea sous sice (dans le cas ou on ne pourrais pas modifier l'exe par exemple packé) et inverser ce meme saut en mémoire. la fonction n'y voit que du feu ! je pense quon pourrais trouver une methode plus efficace, bien sur aucune ne sera efficace a 100% mais au moins elle le sera + ;)
cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 janvier 2021 25 juil. 2003 à 22:39
oui cyberbobjr,
C'est une des soluces ou du moins une partie.....
Mais pour qu'un debuger debug il faut q'il mette le cpu en debugmode donc ....
D'autre part une analyse rapide du code se trouvant actif en ram permet aussi de detecter la pluspart des debugger's....
Puis certaines instructions mal placées et du code auto modifiè permet de faire planter ces derniers...
Bon Coding...
ManChesTer.
cs_iubito
Messages postés629Date d'inscriptionmercredi 3 juillet 2002StatutMembreDernière intervention 9 octobre 2006 25 juil. 2003 à 10:53
je suis encore plus perdu là lol
cyberbobjr
Messages postés6Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 2 août 2004 25 juil. 2003 à 10:40
Je vais vous donner une piste :
Forcément un débugger bloque le temps d'utilisation d'un soft, il gèle de cette facon le temps machine...
Or, GetTickCount nous donne le nbre de tick depuis l'allumage de l'ordinateur.
cs_iubito
Messages postés629Date d'inscriptionmercredi 3 juillet 2002StatutMembreDernière intervention 9 octobre 2006 25 juil. 2003 à 10:21
ouais je veux des détails manchester !!! si tu as un code ki fait ça :-p
DelphiCool
Messages postés455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 mars 2009 3 avril 2003 à 20:33
Merci Manchester,
aurrais tu un peu plus de details ?
cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 janvier 2021 3 avril 2003 à 19:41
Delphicool,
Une methode identique mais moins facile a dètectè consiste a chercher dans la liste des applications actives si un debugger est prèsent, dans ce cas on termine le programme (avec une novelle thread et un halt(0) par exemple ou quelques timers bien "hard")...
D'autre part comme les debugers utilisent tous le mode debug du cpu.....
Bon a savoir aussi : Tous les debugers ont une signature (un peux comme les viruses....)
Bon coding...
ManChesTer.
DelphiCool
Messages postés455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 mars 2009 1 avril 2003 à 18:26
Je sais que c'est la méthodes la plus facile à denicher :-(
Pourrais tu nous en dire plus sur les autres méthodes, s'il te plais?
cyberbobjr
Messages postés6Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 2 août 2004 1 avril 2003 à 15:50
Cette technique antidebugging est bien connue, et facilement resiliable par les outils "disponibles" sur le marché.
Il y'a des méthodes moins conventionnelles et plus vicieuse pour ce genre de problème >:->
DelphiCool
Messages postés455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 mars 2009 29 mars 2003 à 11:29
voilà
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 29 mars 2003 à 10:03
Ca aurait été sympa de préciser ce qu'est SoftIce, pour ceux qui ne connaissent pas (mais sans leur donner de mauvaises idées ;-)).
En tous cas, je te félicite de reconnaitre que tu n'as pas tout inventé.
Enfin, si tu peux, épargnes-nous des Goto qui font toujours penser à une pâle adaptation d'un code source rédigé en basic.
Bonne journée à toi, DelphiCool.
DelphiCool
Messages postés455Date d'inscriptionmardi 24 juillet 2001StatutMembreDernière intervention10 mars 2009 29 mars 2003 à 09:57
DelphiProg, je n'ai pas pris ce source sur delphipages.
Les fonctions pour detecter SoftIce, y'en as de partout, s'il y as des ressemblence c'est un peu normal, car j'ai trouvé la façon de détecter Ice sur le net, je ne l'ai pas inventé.
C'est la detection Meltice.
J'ai adapté ce source à mes besoins.
Exuse moi d'avoir omis de mettre "Une partie du source n'est pas de moi".
Pour le goto, bien j'ai hésité entre, mettre la deuxiemme partie entre un else begin end; ou un goto.
si ça te frustre je peux tres bien mettre la premiere solution.
Tu sais DelphiProg, ya pas 30 milles detection de SoftIce.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 29 mars 2003 à 09:01
Il existe des centaines d'exemplaires de ce code sur le net et la ressemblance est vraiment frappante :
exemple sur http://www.delphipages.com/tips/copyview.cfm?ID=59 ---
The Cracker can still defeat this protection
by using FrogIce, nothing can stop SoftIce hehe.
Anyway here is sum code you just instert into
your Applcation.
//SoftIce in W9x
Function IsSoftIce95Loaded: boolean;
Var hFile: Thandle;
Begin
result := false;
hFile := CreateFileA('.SICE', GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
if( hFile <> INVALID_HANDLE_VALUE ) then begin
CloseHandle(hFile);
result := TRUE;
end;
End;
// SoftIce in NT OS
Function IsSoftIceNTLoaded: boolean;
Var hFile: Thandle;
Begin
result := false;
hFile := CreateFileA('.NTICE', GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
if( hFile <> INVALID_HANDLE_VALUE ) then begin
CloseHandle(hFile);
result := TRUE;
end;
End;
//to detect it
if IsSoftIce95Loaded or IsSoftIceNTLoaded then
Application.Terminate
{if you insert a "Nag" (Message telling him he uses SoftIce) then a amateur cracker w'll find this protection in notime}
//bestway of using this thing is in "project Unit"
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 29 mars 2003 à 08:55
Rien que de voir des Goto dans un programme rédigé en Pascal, ça me fait hérisser le poil.
A l'origine, de qui est ce code source ?
27 juin 2004 à 01:35
J'ai un contract qui me l'interdit avec mon nouvel employeur (donc plu de nouvelles sources de Manchester....)
J'en publierai peut etre des anciennes quand je remetrai la main dessus, mais le reste ne m'apartiend plu...
Bon Coding....
ManChesTer.
26 juin 2004 à 21:29
26 juin 2004 à 19:44
D'ou l'utilitè de timers comme je l'ai ecrit plus haut...
d'autre part un peux de code automodifiè et/ou autogenerer et quelques bon checksum controls rendent tres vite ta methode d'inversion de saut (meme en mèmoire) totalement inefficace...
Bon Coding...
ManChesTer.
26 juin 2004 à 16:26
25 juil. 2003 à 22:39
C'est une des soluces ou du moins une partie.....
Mais pour qu'un debuger debug il faut q'il mette le cpu en debugmode donc ....
D'autre part une analyse rapide du code se trouvant actif en ram permet aussi de detecter la pluspart des debugger's....
Puis certaines instructions mal placées et du code auto modifiè permet de faire planter ces derniers...
Bon Coding...
ManChesTer.
25 juil. 2003 à 10:53
25 juil. 2003 à 10:40
Forcément un débugger bloque le temps d'utilisation d'un soft, il gèle de cette facon le temps machine...
Or, GetTickCount nous donne le nbre de tick depuis l'allumage de l'ordinateur.
25 juil. 2003 à 10:21
3 avril 2003 à 20:33
aurrais tu un peu plus de details ?
3 avril 2003 à 19:41
Une methode identique mais moins facile a dètectè consiste a chercher dans la liste des applications actives si un debugger est prèsent, dans ce cas on termine le programme (avec une novelle thread et un halt(0) par exemple ou quelques timers bien "hard")...
D'autre part comme les debugers utilisent tous le mode debug du cpu.....
Bon a savoir aussi : Tous les debugers ont une signature (un peux comme les viruses....)
Bon coding...
ManChesTer.
1 avril 2003 à 18:26
Pourrais tu nous en dire plus sur les autres méthodes, s'il te plais?
1 avril 2003 à 15:50
Il y'a des méthodes moins conventionnelles et plus vicieuse pour ce genre de problème >:->
29 mars 2003 à 11:29
29 mars 2003 à 10:03
En tous cas, je te félicite de reconnaitre que tu n'as pas tout inventé.
Enfin, si tu peux, épargnes-nous des Goto qui font toujours penser à une pâle adaptation d'un code source rédigé en basic.
Bonne journée à toi, DelphiCool.
29 mars 2003 à 09:57
Les fonctions pour detecter SoftIce, y'en as de partout, s'il y as des ressemblence c'est un peu normal, car j'ai trouvé la façon de détecter Ice sur le net, je ne l'ai pas inventé.
C'est la detection Meltice.
J'ai adapté ce source à mes besoins.
Exuse moi d'avoir omis de mettre "Une partie du source n'est pas de moi".
Pour le goto, bien j'ai hésité entre, mettre la deuxiemme partie entre un else begin end; ou un goto.
si ça te frustre je peux tres bien mettre la premiere solution.
Tu sais DelphiProg, ya pas 30 milles detection de SoftIce.
29 mars 2003 à 09:01
exemple sur http://www.delphipages.com/tips/copyview.cfm?ID=59
---
The Cracker can still defeat this protection
by using FrogIce, nothing can stop SoftIce hehe.
Anyway here is sum code you just instert into
your Applcation.
//SoftIce in W9x
Function IsSoftIce95Loaded: boolean;
Var hFile: Thandle;
Begin
result := false;
hFile := CreateFileA('.SICE', GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
if( hFile <> INVALID_HANDLE_VALUE ) then begin
CloseHandle(hFile);
result := TRUE;
end;
End;
// SoftIce in NT OS
Function IsSoftIceNTLoaded: boolean;
Var hFile: Thandle;
Begin
result := false;
hFile := CreateFileA('.NTICE', GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
if( hFile <> INVALID_HANDLE_VALUE ) then begin
CloseHandle(hFile);
result := TRUE;
end;
End;
//to detect it
if IsSoftIce95Loaded or IsSoftIceNTLoaded then
Application.Terminate
{if you insert a "Nag" (Message telling him he uses SoftIce) then a amateur cracker w'll find this protection in notime}
//bestway of using this thing is in "project Unit"
29 mars 2003 à 08:55
A l'origine, de qui est ce code source ?