Zasoby: Exe z pamięci...

0

Mam exec w zasobach. Czy mozna nie wywalajac go na hdd uruchomic (z pamieci) z parametrem, tak jak z linii polecen?

0

Z tego co wiem z plikiem exe jest to nie mozliwe ... Możesz cos takiego zrobic np. z plikiem wave ...

0

Jeśli to plik COM - to się da (metoda nietestowana i tylko dla obeznanych z assemberem, ale powinna zadziałać).

  1. Załadować do pamięci cały plik.
  2. Wrzucić na stos zawartość rejestru CS (code segment)
  3. j/w ale z IP (instruction pointer), dodatkowo zwiększonym o x wyliczone na jakiej tam podstawie (żeby wskazywało na pierwszą instrukcję po tym wszystkim)
  4. Zmodyfikować odpowiednio aktualne CS:IP żeby wskazywało na początek COM'a w pamięci.
  5. W samym pliku COM, na końcu, muszą być instrukcje przywracające CS:IP ze stosu w celu powrotu do programu wywołującego.

Tutaj jest właśnie ważne zwiększenie IP o ten nieszczęsny x bo inaczej by się zapętliło. Wątpię, żeby ci się to przydało, ale niech zostanie jako ciekawostka, poza tym może ktoś tego będzie kiedyś potrzebował? Pozostaje tylko kwestia tego, czy:
a) Windows pozwoli na zmianę segmentu kodu i wskaźnika instrukcji programowi który ma uprawnienia trzeciego stopnia (ring 2).
b) Tryb chroniony pozwoli na taki przeskok w pamięci.

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