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

Ionuț Mihalache ipopescu46 at gmail.com
Tue Apr 16 17:34:02 EEST 2019


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
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20190416/37ec4a16/attachment-0001.html>


More information about the so mailing list