[so] [Tema3][Windows] - Permisiuni VirtualAlloc, VirtualProtect

Ionuț Mihalache ipopescu46 at gmail.com
Tue Apr 16 17:54:31 EEST 2019


Gata, am rezolvat. Sunt prea obosit. La SetFilePointer puneam FILE_CURRENT
in loc de FILE_BEGIN. Multumesc de ajutor si scuze ca v-am pierdut timpul
pe un lucru stupid.

În mar., 16 apr. 2019 la 17:42, Mihai Barbulescu <b12mihai at gmail.com> a
scris:

> Salut Ionut,
>
> Da un ochi pe optiunile lui [1] s-ar putea ca -dump_at_unaddressable
> si poate -pause_at_unaddressable si poate reusesti sa afli si unde in
> cod s-a oprit programul tau si poate asa afli accesul invalid. Show
> reachable e util doar pentru leak-uri, poti sa lasi pornita si
> optiunea asta.
>
> Mai ai optiunile -light si -brief poate gasesti ceva mai repede cu astea.
>
> [1] https://drmemory.org/docs/page_options.html
>
> On Tue, 16 Apr 2019 at 17:34, Ionuț Mihalache <ipopescu46 at gmail.com>
> wrote:
> >
> > Salut modul cum folosesc Dr Memory este acesta: "drmemory.exe
> -show_reachable .\so_exec.exe so_test_prog.exe". Eroarea pe care o primesc
> este urmatoarea:
> >
> > Dr. Memory version 1.11.0 build 2 built on Aug 29 2016 02:42:07
> > Dr. Memory results for pid 3856: "so_exec.exe"
> > Application cmdline: ".\so_exec.exe so_test_prog.exe"
> > Recorded 115 suppression(s) from default C:\Program Files\Dr.
> Memory\bin\suppress-default.txt
> >
> > WARNING: application is missing line number information.
> >
> > Error #1: UNADDRESSABLE ACCESS: reading 0x1000003c-0x10000040 4 byte(s)
> > # 0 so_loader.dll!so_execute         +0x679    (0x54511c29
> <so_loader.dll+0x1c29>)
> > # 1 so_loader.dll!so_execute         +0x17d    (0x5451172e
> <so_loader.dll+0x172e>)
> > # 2 so_exec.exe!?                    +0x0      (0x20001050
> <so_exec.exe+0x1050>)
> > # 3 so_exec.exe!?                    +0x0      (0x2000153a
> <so_exec.exe+0x153a>)
> > # 4 KERNEL32.dll!BaseThreadInitThunk +0x11     (0x75801174
> <KERNEL32.dll+0x51174>)
> > Note: @0:00:00.265 in thread 2028
> > Note: instruction: mov    0x3c(%ecx) -> %edx
> >
> > Error #2: UNADDRESSABLE ACCESS: reading 0x10030000-0x10030004 4 byte(s)
> > # 0 so_loader.dll!so_execute         +0x6e2    (0x54511c92
> <so_loader.dll+0x1c92>)
> > # 1 so_loader.dll!so_execute         +0x692    (0x54511c43
> <so_loader.dll+0x1c43>)
> > # 2 so_loader.dll!so_execute         +0x17d    (0x5451172e
> <so_loader.dll+0x172e>)
> > # 3 so_exec.exe!?                    +0x0      (0x20001050
> <so_exec.exe+0x1050>)
> > # 4 so_exec.exe!?                    +0x0      (0x2000153a
> <so_exec.exe+0x153a>)
> > # 5 KERNEL32.dll!BaseThreadInitThunk +0x11     (0x75801174
> <KERNEL32.dll+0x51174>)
> > Note: @0:00:00.343 in thread 2028
> > Note: instruction: cmp    (%ecx) $0x00000000
> >
> > Error #3: UNADDRESSABLE ACCESS: executing 0x10010005-0x10010006 1 byte(s)
> > # 0 <not in a module>   (0x10010005)
> > # 1 so_loader.dll!so_execute         +0x69d    (0x54511c4e
> <so_loader.dll+0x1c4e>)
> > # 2 so_loader.dll!so_execute         +0x17d    (0x5451172e
> <so_loader.dll+0x172e>)
> > # 3 so_exec.exe!?                    +0x0      (0x20001050
> <so_exec.exe+0x1050>)
> > # 4 so_exec.exe!?                    +0x0      (0x2000153a
> <so_exec.exe+0x153a>)
> > # 5 KERNEL32.dll!BaseThreadInitThunk +0x11     (0x75801174
> <KERNEL32.dll+0x51174>)
> > Note: @0:00:00.374 in thread 2028
> >
> > Mai sunt erori dar sunt leak-uri cel mai probabil cauzate de faptul ca
> programul primeste segmentaion fault, cele de mai sus sunt cele care sunt
> cel mai de interes. Clar fac un acces invalid la memorie insa nu imi este
> inca clar unde se intampla, dar mai investighez.
> >
> > În mar., 16 apr. 2019 la 10:30, Mihai Barbulescu <b12mihai at gmail.com> a
> scris:
> >>
> >> Paul,
> >>
> >> Dacă ai fi citit cu atenție măcar subiectul problema lui Ionuț este pe
> Windows. Nu are cum să folosească utilitarele de Linux acolo (valgrind sau
> gdb)
> >>
> >> Ionuț spune-mi dacă nu te descurci să folosești Dr Memory pe testul cu
> probleme arata-ne cum folosești în cazul în care acesta nu te ajuta sa afli
> informații utile
> >>
> >> Cu stimă,
> >> Mihai Bărbulescu
> >>
> >>
> >> -------- Original Message --------
> >> Subject: Re: [so] [Tema3][Windows] - Permisiuni VirtualAlloc,
> VirtualProtect
> >> From: Paul Olaru via so
> >> To: Ionuț Mihalache
> >> CC: Sisteme de Operare
> >>
> >>
> >> Adresa 1 sună suspect (NULL pointer dereference). Memory allocation
> failure? Încearcă să reduci utilizarea de memorie dinamică pe cât posibil.
> Vezi cu Valgrind/GDB care pointer încerci să îl folosești deși e nul.
> >>
> >> On Tue, Apr 16, 2019, 9:37 AM Ionuț Mihalache <ipopescu46 at gmail.com>
> wrote:
> >>>
> >>> Problema care apare este faptul că loader-ul primește segfault. Am
> printat adresa la care are loc page fault și de la un moment dat apare
> adresa 1 și nu ar trebui. VirtualAlloc și VirtualProtect nu eșuează însă nu
> pot să-mi dau seama exact de unde ar mai putea fi problema.  Din printare
> am văzut că anumite pagini se mapează însă nu-mi dau seama care ar putea fi
> cauza pentru care primesc segfault pentru că nu fac altceva decât să aplic
> logica de pe linux cu alt page size și mod de a mapa. Este posibil să iau
> adresa greșit dar la început merge. Am presupus că este de la mapare pentru
> că tot primesc page fault. Rulez programul de test, cel cu hello world. Am
> postat doar ca să mă asigur că abordarea mea de a mapa este bună ca să nu
> depanez ce nu trebuie.
> >>>
> >>> mar., 16 apr. 2019, 09:14 Razvan Crainea <razvan.crainea at gmail.com> a
> scris:
> >>>>
> >>>> Salutare!
> >>>>
> >>>> Am rugămintea ca atunci când raportați o problemă, să descrieți exact
> >>>> comportamentul programului, și ce debugging ați făcut. Dacă vreți să
> >>>> vă putem ajuta, trebuie să avem toate datele problemei.
> >>>> Nu ne mai cereți să ne uităm pe sursele voastre, asta ar trebui să
> >>>> facem doar în cazuri excepționale, când debugging-ul făcut de voi nu
> >>>> este de ajuns să identificăm problema. Dacă va fi nevoie de asta, vom
> >>>> cere noi acces la surse.
> >>>> Prin urmare, Ionuț, spune-ne de ce crezi că este de la mapare? În ce
> >>>> moment al execuției? Ce fel de acces nu merge?
> >>>>
> >>>> Numai bine!
> >>>> Răzvan
> >>>>
> >>>> On Tue, Apr 16, 2019 at 12:04 AM Paul-Stelian Olaru via so
> >>>> <so at cursuri.cs.pub.ro> wrote:
> >>>> >
> >>>> > Pentru handlerul default pe Windows trebuie să returnezi ceva cu
> CONTINUE_SEARCHING din handlerul apelat de sistem. Honestly chestia asta e
> mai ușoară pe Windows decât pe Linux.
> >>>> >
> >>>> >
> >>>> >
> >>>> > Sent from Mail for Windows 10
> >>>> >
> >>>> >
> >>>> >
> >>>> > From: Ionuț Mihalache via so
> >>>> > Sent: Tuesday, April 16, 2019 12:01 AM
> >>>> > To: Sisteme de Operare
> >>>> > Subject: [so] [Tema3][Windows] - Permisiuni VirtualAlloc,
> VirtualProtect
> >>>> >
> >>>> >
> >>>> >
> >>>> > Salut,
> >>>> >
> >>>> >
> >>>> >
> >>>> > Se poate uita cineva din echipa va rog daca permisiunile din
> parametri pentru VirtualAlloc si VirtualProtect sunt in regula? Si nu stiu
> exact cum sa fac cu handler-ul default insa nu asta este problema acum ci
> faptul ca primesc segmentation fault in loader si cred ca este de la mapare.
> >>>> >
> >>>> >
> >>>> >
> >>>> > Multumesc.
> >>>> >
> >>>> >
> >>>> >
> >>>> >
> https://gitlab.cs.pub.ro/ionut.mihalache1506/l3-so-assignments/blob/master/3-loader/skel-win/loader.c
> >>>> >
> >>>> >
> >>>> >
> >>>> > _______________________________________________
> >>>> > http://ocw.cs.pub.ro/courses/so/info/lista-discutii
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Răzvan Crainea
>
>
>
> --
> Cu stimă,
> Mihai Bărbulescu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20190416/be6a881a/attachment-0001.html>


More information about the so mailing list