Wywoływanie funkcji z API obcego procesu

0

Powiedzmy, że wstrzyknąłem dll ze swoim kodem w proces A (ale to może mało istotne).

Teraz pytanie czy jestem w stanie w jakiś sposób wywołać funkcje z API procesu A? (mówiąc funkcje z API procesu A mam na myśli funkcje które są zaprogramowane w aplikacji, na przykład wywołać dodawanie w procesie kalkulato itp.)?

Innymi słowy chciałbym wyciągnąć adresy callów funkcji (np. w asm) z procesu (poprzez reverse engineering)
(dbvm z CE odpada bo mój procesor nie obsługuje)

1

Może lepiej opisz, po co to potrzebujesz. Czasem niektórzy podchodzą do problemu od niewłaściwej strony.

0

Jak sobie znajdziesz adresy tych funkcji i parametry, które przyjmują to tak.

0

Pytanie czy będziesz wiedział od czego te funkcje są. Wrzuć binarkę tego co hookujesz do IDA, najlepiej pro (źródła nie podam, znajdź se sam), i tam IDA po analizie będzie w stanie wskazać gdzie są początki funkcji. Argumenty to już twoja broszka. Samo wywoływanie może być nieco kłopotliwe, bo będziesz musiał najpewniej całkowicie samemu takie wywołanie złożyć, i może ono wyglądać tak:

__declspec(naked) void funkcja(int a, int b)
{
 _asm
 {
  mov ecx, a
  push b
  call offset::funkcja
  add esp, 4 // zakładamy, że funkcja to __cdecl
 }
}

I takie coś będziesz mógł zrobić tylko w visualu, w GCC czy innych clangach nie mam pojęcia jak coś takiego zrobić.

1 użytkowników online, w tym zalogowanych: 0, gości: 1