begin process at 2012 05 28 20:09:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Du Delphi à C++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Du Delphi à C++

jeudi 17 mars 2005 à 12:16:35 | Du Delphi à C++

BruNews

Administrateur CodeS-SourceS
Question n'est pas de moi, je remets cause l'originale a sauté.

Bonjour tout le monde,

j'ai le code d'une procédure en delphi que j'ai trouvé sur le net, et je voudrais le changer en C++ , pourriez vous m'aider?

procedure PatchINT3;
var
  NOP : Byte;
  NTDLL: THandle;
  BytesWritten: DWORD;
  Address: Pointer;
begin
  if Win32Platform <> VER_PLATFORM_WIN32_NT then Exit;
  NTDLL := GetModuleHandle('NTDLL.DLL');
  if NTDLL = 0 then Exit;
  Address := GetProcAddress(NTDLL, 'DbgBreakPoint');
  if Address = nil then Exit;
  try
    if Char(Address^) <> #$CC then Exit;

    NOP := $90;
    if WriteProcessMemory(GetCurrentProcess, Address, @NOP, 1, BytesWritten) and
      (BytesWritten = 1) then
      FlushInstructionCache(GetCurrentProcess, Address, 1);
  except
    //Do not panic if you see an EAccessViolation here, it is perfectly harmless!
    on EAccessViolation do ;
    else raise;
  end;
end;


Merci :))


ciao...
BruNews, MVP VC++
jeudi 17 mars 2005 à 12:27:25 | Re : Du Delphi à C++

ymca2003

Je me disais aussi, le temps de préparer la réponse, la question avait disparrue

Voici une version C++ de ce que j'ai compris.

void PatchINT3()
{
  OSVERSIONINFO osvi = {0};
  osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  GetVersionEx(&osvi);
  if(osvi.dwPlatformId != VER_PLATFORM_WIN32_NT)
    return;

  HINSTANCE hInstance = GetModuleHandle("NTDLL.DLL");
  if(hInstance == NULL)
    return;

  void* p = (void*)GetProcAddress(hInstance, "DbgBreakPoint");
  if( p == NULL)
    return;

  __try
  {
    if( *((BYTE*)p) != 0xCC)
      return;

    BYTE nop = 0x90;
    DWORD BytesWritten;
    if(WriteProcessMemory(GetCurrentProcess(), p, @nop, 1, &BytesWritten) &&
        BytesWritten == 1)
    {
       FlushInstructionCache(GetCurrentProcess(), p, 1);
    }
  }
  __except((GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION) ?
                  ECEPTION_EXECUTE_HANDLER :
                  EXCEPTION_CONTINUE_SEARCH )
  {
  }
}

jeudi 17 mars 2005 à 12:28:08 | Re : Du Delphi à C++

ymca2003

petite erreur (le @ me semblais birzarre à taper aussi...)

WriteProcessMemory(GetCurrentProcess(), p, &nop, 1, &BytesWritten
jeudi 17 mars 2005 à 13:46:48 | Re : Du Delphi à C++

islanmao

Merci bcp ;-) c hyper sympa
En fait j'ai des erreurs à la compilation, le heap est corrompu, c'est pour corriger ce beug ...


Cette discussion est classée dans : address, delphi, exit, nop, ntdll


Répondre à ce message

Sujets en rapport avec ce message

Un traduction delphi pour c++ Builder [ par bily ] Vegeta :-)cette fonction devrait me permetre de cacher mon programe de liste des taches "ctr+alt+del"ceci est en delphi et je ne sais pas declarerla f IP Address Control [ par zeratul67 ] Voila, c un common control que j'arrive pas à utiliser.----------- Extrait du code ---------------------INITCOMMONCONTROLSEX lpInitCtrls;lpInitCtrls.d api win32 sdk [ par fabpdg ] je recherche comment utiliser les fonfions, comme netsessionemun en delphi.Delphi ne reconnaît pas les fonctions api win32 sdk.Comment et quels sont l placer une dll ecrie en c dand delphi [ par sattar ] placer une dll ecrie en c dand delphi socket non bloquant [ par sisier ] salut,Si quelqu'un pouvait m'aider.En fait, mon probleme est que j'arrive a réaliser une connection en socket client/serveur mais le probleme c que mo CopyFile en C !!! [ par Zillah ] J'ai trouvé aussi des référence à cette fonction, mais comment l'appliqué ??? Je suis vraiment intrigué. J'avais besoin au départ de seulement un moye DELPHI VS C++ BUILDER [ par actiprog ] Salut à tous J' ai un peut abordé le stade avencé de VB 6 .J' ai découvré aisi les limites de ce language qui reste toujours agréable .Grace à l'INTER TTimeBar (Delphi --> VCplusplus) [ par laglisse ] Je recherche l'equivalent de la TTimeBar de delphi pour VCplusplus.Quelqun peut m'aider ??(ce n'est pas le month Calendar) C++ et Appli Windows ??? [ par Bombela ] Salut !Je prog en delphi depuis quelque mois.J'ai visual C++ standard et je me suis dit : Tien ! je vais essayer le C++ !Malheur !!!Je ne pige rien ! Rave report et DisplayFormat [ par theClaude ] Bonjour,J'utilise Rave Report ( avec Delphi 7 ) pour imprimer simplement une liste de données issues d'une table.Quelqu'un peut il me donner la marche


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 1,295 sec (3)

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