[MR] ASLR i windows czy jak sobie poradzić

Własne projekty oraz implementacje.

Moderator: xxSlayeRxx

[MR] ASLR i windows czy jak sobie poradzić

Sponsor

Sponsor
 

[MR] ASLR i windows czy jak sobie poradzić

Postprzez Emtec » Śr wrz 28, 2011 6:18 pm

Windowy wcześniejsze niż vista i seven nie posiadają ASLR - czyli wybrany program zawsze startuje od pewnego adresu w pamięci. Z ASLR jest tak, że różnie to się dzieje - więc żeby operować na pamięci trzeba najpierw odczytać BaseAdres programu. Może wielu zna już rozwiązanie, wrzucam dla tych co kiedyś będą mieli z tym problem.

Kod: Zaznacz cały
uint BaseAddress;

while (true)
{
    // nazwa - to nazwa procesu ktora mozemy przeczytac w menadżer procesów (ctrl+alt+del)
    if (Process.GetProcessesByName("Nazwa").Count() <= 0)
        Printer.Alert("Not found process Nazwa");
    else
    {
        ProcessId = Process.GetProcessesByName("Nazwa")[0].Id;
        while (true)
        {
            try
            {
                ProcessModuleCollection modules = Process.GetProcessById(ProcessId).Modules;
                for (int i = 0; i < modules.Count; i++)
                {
                    // nazwa_pliku.exe - czy nazwa pliku gdzie uruchamiamy aplikacje
                    if (modules[i].ModuleName.ToLower() == "nazwa_pliku.exe")
                    {
                        BaseAddress = (uint)modules[i].BaseAddress;
                        //Offset.SetBaseAddress(BaseAddress);
                        break;
                    }
                }
                break;
            }
            catch (Exception) { }
        }

        if (BaseAddress != 0)
        {
            Printer.Info("Found process(ID: " + ProcessId + ") - Base Address: " + BaseAddress);
            break;
        }
    }
}

Printer zamienić na Console.WriteLine

Nie jest dość ładny kod, ale na pewno działa. Warto wspomnieć, że żeby czytać pozycję w pamięci trzeba włączać program jako administrator. W przypadku starszych wersji systemu - nie wiem czy ten kod zadziała, aczkolwiek powinien.
Emtec
New member
 
Posty: 3
Dołączył(a): Wt wrz 27, 2011 8:04 pm

[MR] ASLR i windows czy jak sobie poradzić

Sponsors

Sponsor
 

Powrót do Projekty i kody źródłowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości