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

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez
a
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 =
|hf=1 db
+
| kereszt =  
|jelenlét=
+
| tanszék = HIT
|minmunka=
+
| jelenlét =
|tad=https://www.vik.bme.hu/kepzes/targyak/VIIIJV76/
+
| minmunka =
|targyhonlap=http://www.hit.bme.hu/~izso/reverse.html
+
| labor =
 +
| kiszh = 3 db
 +
| 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
 
}}
 
}}
  

A lap 2014. március 21., 19:50-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

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.