„Programok visszafejtése és védelme” változatai közötti eltérés

A VIK Wikiből
Akg92 (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
 
(4 közbenső módosítás, amit 3 másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
{{Szabvál
{{Tantárgy
|nev=Programok visszafejtése<br /> és védelme
| név = Programok visszafejtése<br>és védelme
|kredit=2
| tárgykód = VIHIAV05
|tárgykód=VIHIAV05
| szak =
|tanszék=HIT
| kredit = 2
|kiszh=3 db
| félév =
|nagyzh=0 db
| kereszt =  
|vizsga=nincs
| tanszék = HIT
|hf=1 db
| jelenlét =
|jelenlét=???
| minmunka =
|minmunka=???
| labor =
|tad=https://www.vik.bme.hu/kepzes/targyak/VIIIJV76/
| kiszh = 3 db
|targyhonlap=http://www.hit.bme.hu/~izso/reverse.html
| nagyzh =  
| hf = 1 db
| vizsga =  
| levlista =  
| tad = https://portal.vik.bme.hu/kepzes/targyak/VIHIAV05/
| tárgyhonlap = http://www.hit.bme.hu/~izso/reverse.html
}}
}}
{{FejlesztesAlatt}}


== Követelmények ==
== Követelmények ==
29. sor: 32. sor:
== Segédanyagok ==
== Segédanyagok ==


A tárgyhonlapon fent vannak a diasorok, folyamatosan frissíti őket.


2012-es diasorok:
* [[Media:Programok visszafejtése 2012 Ea01.pdf| Ea01 ]]
* [[Media:Programok visszafejtése 2012 Ea02.pdf| Ea02 ]]
* [[Media:Programok visszafejtése 2012 Ea03.pdf| Ea03 ]]
* [[Media:Programok visszafejtése 2012 Ea04.pdf| Ea04 ]]
* [[Media:Programok visszafejtése 2012 Ea05.pdf| Ea05 ]]
* [[Media:Programok visszafejtése 2012 Ea06.pdf| Ea06 ]]
* [[Media:Programok visszafejtése 2012 Ea07.pdf| Ea07 ]]
* [[Media:Programok visszafejtése 2012 Ea10.pdf| Ea10 ]]
* [[Media:Programok visszafejtése 2012 Ea11.pdf| Ea11 ]]
* [[Media:Programok visszafejtése 2012 Ea12.pdf| Ea12 ]]
* [[Media:Programok visszafejtése 2012 Ea13.pdf| Ea13 ]]
* [[Media:Programok visszafejtése 2012 Ea14.pdf| Ea14 ]]
* [[Media:Programok visszafejtése 2012 Gy2.pdf| Gy2 ]]
* [[Media:Programok visszafejtése 2012 Gy4.pdf| Gy4 ]]
* [[Media:Programok visszafejtése 2012 Gy5.pdf| Gy5 ]]


== KisZH-k, beugrók ==
== KisZH-k, beugrók ==


* 2012:
3 kisZH van, darabja 10 pont.
** 1. kisZH:
Mindegyik kisZH-ban kisebb, gyakorlatias feladatok vannak. (pl.: pár soros assembly visszafejtése, c++ objektum szerkezetének felismerése, linkelés végigkövetése kézzel egyszerű táblázatos formában, relatív címek, stb.)
** 2. kisZH:  
** 3. kisZH:


== Házi ==
== Házi ==
52. sor: 70. sor:
Ha ezek nem szimpatikusak, akkor a kiadott object kódot kell visszafejteni. A programok Visual Studio 2008-cal lettek lefordítva. A tárgykódok általában egy jól ismert függvényt tartalmaznak. A visszafejtéshez az dumpbin, objdump, gdb, VS debugger, ollydbg, IDA disassemblert, stb használhatják. Az teljesíti legjobban a feladatot, aki felismeri, hogy mit csinál az algoritmus, és egy tesztprogram segítségével meghívja a visszafejtett függvényt.
Ha ezek nem szimpatikusak, akkor a kiadott object kódot kell visszafejteni. A programok Visual Studio 2008-cal lettek lefordítva. A tárgykódok általában egy jól ismert függvényt tartalmaznak. A visszafejtéshez az dumpbin, objdump, gdb, VS debugger, ollydbg, IDA disassemblert, stb használhatják. Az teljesíti legjobban a feladatot, aki felismeri, hogy mit csinál az algoritmus, és egy tesztprogram segítségével meghívja a visszafejtett függvényt.


== Kedvcsináló ==
== Tapasztalatok ==
 
=== Csanád 2019 ősz ===
 
A tágy szerintem érdekes tud lenni, azonban nagyon száraz. Rengeteg gépi kódot (leginkább x86 Assembly) kell tanulmányozni és megérteni, ami szerintem igencsak fárasztó már rövid távon is. A házi feladat is ilyen, ahol egy x86 Assembly kód működését kell megérteni, és leírni, hogy mit csinál. A kis zh-k alapvetően nem vészesek, egész hamar fel lehet rájuk készülni, bár a 3. idén kicsit nehezebb volt szerintem, arra érdemes picit több időt fordítani. Izsó nagyon szétszórt, nem kelti fel az előadásmódja az ember érdeklődését, nehéz figyelni. Azonban nála segítőkészebb és rendesebb tanárral még nem találkoztam az egyetemen. Nagyon gyorsan válaszolt az e-mailekre, nagyon jószívű, tényleg azt szeretné, hogy valamennyire megértsük az anyagot. A házim feltöltése után ő írt nekem (!), hogy ha még 1-2 dolgot megfejtek a házimban, ad egy jobb jegyet rá, ezt pedig aligha tenné meg más tanár. Így a jó jegy megszerzése nem lehetetlen, általában a többség négyes/ötös lesz. Azonban több munkát igényel ez a tárgy szerintem, mint egy átlagos 2 kredites tárgy, szóval aki szakmai ingyenkreditet szeretne, az ne vegye fel. Amúgy a katalógust sosem ellenőrzi, szóval nem kötelező ott lenni az órákon.
 
=== Koza 2013/14 ősz ===
 
A tárgy nagyon érdekes, Izsó viszont nagyon unalmasan tudja előadni. Tudja ő is, hogy gyakran elcsúszik a kitűzött menetrenddel, néha tovább tartja az órákat. A kisZh-kra felkészülve viszont olyan tudásokra lehet szert tenni, ami miatt akár mintatantervi tárgyat is csinálnék belőle, elég gáz, hogy egyáltalán nem tudjuk, mi megy egy fordítóban, optmalizálóban. A házi feladat pár óra munkával elkészíthető, akit érdekel a téma, annak még érdekes is. A tárgyat ajánlom mindenkinek, akit egy picit is érdekel a téma, de az alőadásra vigyetek valamit, ha nem akartok aludni.
 


[[Kategória:Valaszthato]]
[[Kategória:Valaszthato]]

A lap jelenlegi, 2019. december 19., 17:34-kori változata

Programok visszafejtése
és védelme
Tárgykód
VIHIAV05
Általános infók
Kredit
2
Tanszék
HIT
Követelmények
KisZH
3 db
Házi feladat
1 db
Elérhetőségek

Követelmények

A félév végi osztályzat a 3 kiszh-ból és a házifeladatból számolódik. Mindegyik kiszh beszámít, de egyik elbukása sem végzetes hiba. Ezeket a tárgyakat érinti:

  1. Prog alap 1-2
  2. Számítógép-architektúrák (mélyebben)
  3. Gépi nyelvek
  4. Operációs rendszerek
  5. Assembly programozás
u.i.: A tárgy 2012-ben indult először, így a követelmények nem teljesen kiforrottak még.

Segédanyagok

A tárgyhonlapon fent vannak a diasorok, folyamatosan frissíti őket.

2012-es diasorok:

KisZH-k, beugrók

3 kisZH van, darabja 10 pont. Mindegyik kisZH-ban kisebb, gyakorlatias feladatok vannak. (pl.: pár soros assembly visszafejtése, c++ objektum szerkezetének felismerése, linkelés végigkövetése kézzel egyszerű táblázatos formában, relatív címek, stb.)

Házi

Választhatnak önállóan a tárgyhoz kapcsolódó feladat, illetve 1-2 témaötlet saját házifeladathoz: Kód vezérlésszerkezetének a visszafejtése a 4. előadás mellett található Ocelot kód felhasználásával.

  • Lineárisan pásztázó disassembler írása, az ollydbg disasm rutin felhasználásával.
  • Rekurzívan pásztázó disassembler írása, az ollydbg disasm rutin felhasználásával.
  • Program visszafejtést megnehezítő ötletek kidolgozása, és bemutatása egy mintaprogramon.
  • Intel Pin - A Binary Instrumentation Tool segítségével dinamikus nyomkövetés végrehajtása. (memória kezelési hibák felismerése, programkód helyének a feltérképezése, stb (http://software.intel.com/en-us/articles/pintool-downloads)
  • IDA script nyelven programírás.
  • IDA C++plugin írás.
  • Ollydbg plugin készítés.
  • stb.

Ha ezek nem szimpatikusak, akkor a kiadott object kódot kell visszafejteni. A programok Visual Studio 2008-cal lettek lefordítva. A tárgykódok általában egy jól ismert függvényt tartalmaznak. A visszafejtéshez az dumpbin, objdump, gdb, VS debugger, ollydbg, IDA disassemblert, stb használhatják. Az teljesíti legjobban a feladatot, aki felismeri, hogy mit csinál az algoritmus, és egy tesztprogram segítségével meghívja a visszafejtett függvényt.

Tapasztalatok

Csanád 2019 ősz

A tágy szerintem érdekes tud lenni, azonban nagyon száraz. Rengeteg gépi kódot (leginkább x86 Assembly) kell tanulmányozni és megérteni, ami szerintem igencsak fárasztó már rövid távon is. A házi feladat is ilyen, ahol egy x86 Assembly kód működését kell megérteni, és leírni, hogy mit csinál. A kis zh-k alapvetően nem vészesek, egész hamar fel lehet rájuk készülni, bár a 3. idén kicsit nehezebb volt szerintem, arra érdemes picit több időt fordítani. Izsó nagyon szétszórt, nem kelti fel az előadásmódja az ember érdeklődését, nehéz figyelni. Azonban nála segítőkészebb és rendesebb tanárral még nem találkoztam az egyetemen. Nagyon gyorsan válaszolt az e-mailekre, nagyon jószívű, tényleg azt szeretné, hogy valamennyire megértsük az anyagot. A házim feltöltése után ő írt nekem (!), hogy ha még 1-2 dolgot megfejtek a házimban, ad egy jobb jegyet rá, ezt pedig aligha tenné meg más tanár. Így a jó jegy megszerzése nem lehetetlen, általában a többség négyes/ötös lesz. Azonban több munkát igényel ez a tárgy szerintem, mint egy átlagos 2 kredites tárgy, szóval aki szakmai ingyenkreditet szeretne, az ne vegye fel. Amúgy a katalógust sosem ellenőrzi, szóval nem kötelező ott lenni az órákon.

Koza 2013/14 ősz

A tárgy nagyon érdekes, Izsó viszont nagyon unalmasan tudja előadni. Tudja ő is, hogy gyakran elcsúszik a kitűzött menetrenddel, néha tovább tartja az órákat. A kisZh-kra felkészülve viszont olyan tudásokra lehet szert tenni, ami miatt akár mintatantervi tárgyat is csinálnék belőle, elég gáz, hogy egyáltalán nem tudjuk, mi megy egy fordítóban, optmalizálóban. A házi feladat pár óra munkával elkészíthető, akit érdekel a téma, annak még érdekes is. A tárgyat ajánlom mindenkinek, akit egy picit is érdekel a téma, de az alőadásra vigyetek valamit, ha nem akartok aludni.