[delphi] DLL Injection - Pytanie i dobry materiał na Artykuł

[delphi] DLL Injection - Pytanie i dobry materiał na Artykuł
0

Otóż mam pytanie jak można napisać loader'a do danej aplikacji, wiem, że są różne tego sposoby i niektóre działają tylko na Win 2k/XP inne tylko na Win 9x.

Wiem, że jest dużo materiałów na ten temat w Internecie, ale większość jest opisana w C++. Znalazłem kod dla Delphi, ale brakuje mu komentarzy, a sam kod jest chaotycznie napisany i ledwo co da się cokolwiek zrozumiec..

Prosiłbym kogoś kto się na tym zna o napisanie jakiegoś prostego przykladu z objaśnieniem go.. nie chodzi m itu o gotowca, ale prosty przyklad z opisem co i jak i co sie z czym je

Z góry dziękuje za odpowiedź :)

0

Szkoda, że nie ma opcji edytuj... chciałem zaznaczyć, że nie chce tej wiedzy wykorzystywać w złych zamiarach.. ostatnio troche cztałem o firewallach i programach filtrujących pakiety, i dowiedziałem się, że wykorzystują one DLL Injection. A przydałaby mi się taka wiedza, gdyż chciałbym rozwinąć swoje horyzonty w programowaniu o ten temat wydaje mi się dosyć ciekawy chociaż wiem, że nie jest łatwy.

// niestety edytować posty można tylko jeśli się je pisze jako zalogowany użytkownik - Q

Darkhog
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad 9 lat
0

Ja również jestem tym zainteresowany. Mógłby ktoś przybliżyć temat, bo rzeczywiście tylko są same przykłady w c++. Przy okazji przydałaby się porada jak pobrać PID procesu o określonej nazwie execa (np. notepad.exe)


<font size="4">Nie ma rzeczy niemożliwych, jest tylko brak umiejętności.</span>
ST
  • Rejestracja:około 19 lat
  • Ostatnio:ponad 15 lat
0

Na http://www.opensc.ws jest tego od cholery, głównie do Delphi i VB.


--
[http://stg.unixstorm.org]
olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0
Darkhog napisał(a)

Przy okazji przydałaby się porada jak pobrać PID procesu o określonej nazwie execa (np. notepad.exe)

A googlowałeś chociaż? Ja ten kod mam z googli, bo sam bym na niego nie wpadl. Nazwa funkcji tylko inna.

Kopiuj
uses
  TlHelp32;
//..
function ProcessIDFromAppname32(AppName : string) : DWORD;
var
  SnapShot : THandle;
  processEntry : TProcessEntry32;
begin
  Result := 0;
  AppName := AnsiUpperCase(AppName);
  SnapShot := CreateToolhelp32SnapShot(TH32CS_SNAPPROCESS, 0);
  if SnapShot <> 0 then
  try
    ProcessEntry.dwSize := SizeOf(ProcessEntry);
    if Process32First(SnapShot, ProcessEntry) then
      repeat
        if Pos(AppName, AnsiUpperCase(ExtractFilename
          (StrPas(processEntry.szExeFile)))) > 0 then
        begin
          Result := ProcessEntry.th32ProcessID;
          Break;
        end;
      until not Process32Next(SnapShot, ProcessEntry);
  finally
    CloseHandle(SnapShot);
  end;
end;

Pozdrawiam.
0

Tylko skąd wziąć unita TlHelp32? W moim Delphi 7 tego nie ma, ani w Lazarusie

olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0

Nie wiem jak w Lazarusie, ale w Delphi 7 na 100000% powinien być jeżeli go nie usuwałeś.
Sprawdziłem w mojej wersji Delphi 7 Personal jest, w instalce równiez w podkatalogu LIB.


Pozdrawiam.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.