64
  • Sir Quno Jedi
    #1
    Na, én mióta eszemet tudom programozok és abból is élek (az embereim is), de ez már túlmutat a kuruzsláson. Értelmes ember amúgy is ír monitorozó, ellenőrző, riasztó, bevatkozó programokat komolyabb rendszerekhez, de az mind-mind specifiukus, egy általános dobozos szoftver nem TUD belenyúlni egy erősen hybrid program futásába, pláne nem megakadályozni annak összeomlását, vagy javítani később önállóan. Ilyennel csak azokat lehet beetetni, akik hisznek az ezoterikában, a horoszkópokban, meg esetleg a vudu mágiában. CSAK azok meg programozni nem fognak tudni...szarügy... :D
  • Narxis
    #2
    Programozók százai fognak utcára kerülni.
  • Sir Quno Jedi
    #3
    Pedig érdekes a szakmai önéletrajza a csókának (márha ez ő). Szerintem félreértelmezik a kutatásait itt fentebb. :D
  • NEXUS6
    #4
    Valszeg arra viszont jó lesz, hogy automatizálni lehet vele a víruskészítést.
    És megjelennek a teljesen "retrovírusok" a számtekben is. Nem egy tiszta, azonosítható kód maga kerül bele a megfertőzendő programba, hanem a funkciók.

    Ha egy ilyen Pacsikával "támogatott" rendszert megtámad, egy rá írt vírus, azt soha nem lehet majd kiirtani onnan, csak a rendszer lemészárlásával.
  • Polemius
    #5
    Gödelről hallottak már ezek?
  • Mcsiv
    #6
    hát, mióta az eszemet tudom én is programozó vagyok (pedig nem rég óta tudom az eszemet;)), viszont ezek szerint nem lehetsz nagy ász abban amit csinálsz. Az én programjaim többsége is hasonló elven működik (önjavító kódokat alkalmazok), ezek szimplán úgy működnek, hogy figyelik a program futását, a memória területeket, a programmemória részeket és felismerik a kivételeket (pl végtelen ciklus viszonylag egyszerűen felismerhető). Ha végtelen ciklust lát, felszabadítja azt a feltételt ami alapján a ciklusba került, majd a program, bár kétes eredményel, tovább működik. Ha normálisan le vannak kezelve a programban a kivételek, nagy galiba nem történik. Az önjavítás abban merűl ki, hogy figyeli a függvények bemeneti értékeit, ha hiba van a futás során, a bemeneti értékek rögzítésre kerülnek, majd bizonyos ráta után ha az adott függvénynek ezek a paraméterek jönnek, visszatér automatikusan az előző szálba.
    Persze menetközben dump-olja ezeket a beavatkozásokat, így egyszerűbben javíthatóak ezek a menetközben felmerült hibák.
  • Sir Quno Jedi
    #7
    Igen, valószínű, te meg olvasni nem tudsz, de nem baj. Ha nem érted a szavakat sem, amiket leírok, minek kötekedsz?!
  • Mcsiv
    #8
    te leírtad hogy az egész hülyeség, én meg leírtam hogy nem, és hogy miért nem. Mindketten tudjuk hogy léteznek ilyenek, külső programnak ugyanolyan esélye van a nativ kodot debuggolni.
  • Aviak
    #9
    Én ugyan nem értek a dologhoz, de azért adjuk már meg az esélyt a csávónak annyira, hogy ha giga mega projekten dolgozik egy csomó emberrel, akkor tud valamit és lehet, hogy ő rájött olyasmire, amire az itteni tisztelt kollégák nem jöttek rá. El lehet ismerni, hogy valaki lehet okosabb.
  • Sir Quno Jedi
    #10
    Ezért írtam, hogy a cikk fentebb egy szemenszedett hülyeség, de a csókának lehet attól még igaza, csak nem úgy ahogy a cikkből levágja a csóró. Komprende?! Én utánanéztem, még linket is adtam (bár látom felesleges).
  • Sir Quno Jedi
    #11
    Betűzhetném is, de egy nem előre ennek megfelelően megírt proramot KÍVÜLRŐL nem lehet megjavítani. Az nem javítás, hogy lelövöldözöd a thread-jeit, hátha jó lesz! Soxor third party programokra és ojjektumokra kell támaszkodnod (hajaj), aminek még a forrását sem kaphatod meg és a kód maga is kódolva van (és nem is változtathatsz rajtuk, a licensz nem engedi). Na azt javítgassad kívülről! Főleg ha hybrid egy rendszer és 3-4 különböző nyelven íródott, 3-4 különböző adatbázis platformon és 3-4 oprendszeren fut 1xrre, komoly multiszálas IP kommunikációval ésatöbbi. Okoskodni lehet, de egy valódi, nagyméretű rendszerre nincsenek varázspálcák, amik egy csettintésre megoldanak olyan problémákat amiknek az elhárításához tucatnyi ember és rengeteg pénz kell.

    Ha már ELEVE egy megfelelő önellenőrző és öndebuggoló rendszert írnak, az más, de ott is erősen kétséges bevatkozási pontok merülhetnek fel. Ez azonban alegritkább. Erre sem idő, sem pénz, sem erőforrás nincs.

    Persze aki csupán elméleti programozó, vagy tanítja, vagy sulin tanulja még, az ezt nem érti meg, de élőben idővel összeszedhet annyi tapasztalatot, aminek alapján TALÁN alkalmazni is tudja egy részét az elméletnek...


    Aki meg végtelen ciklusokat keresgél a programjaiban, az jobb ha visszaül az iskolapadba, mert ha egyáltalán értékelhető esély van a "végtelen ciklus mumusra", az már gáz. UFF! :DDD
  • lordofchaos
    #12
    Nem kell ismerned hozzá a nyelvet. Erről nem is írt a cikk. Ennyi erővel patch-készítő programok sem lennének. Pedig vannak. Azok sem ismerik a nyelvet. Két változatot összehasonlítanak és a különbözőségből patchet készítenek. Ez lehet javító patch is, ami ilyenkor kijavítja a programot. Ez a Pachika is hasonlóan működik (szerintem a neve sem véletlenül hasonlít az angol patch szóhoz).
  • lordofchaos
    #13
    Jah és programozó vagyok mióta az eszemet tudom stb, stb.
  • Sir Quno Jedi
    #14
    Namost ÉN egy kurva szót sem beszéltem patchekről.
  • Sir Quno Jedi
    #15
    Itt arra akartam utalni hogy nincsenek csodaprogramok, akiknek odaszólsz, hogy komputer javítsd ki a programot és MAGÁTÓL kijavítja a kódokat, átírja az egészet, új adatbázis tervet készít, átmigrálja az adatokat, újratervezi a kommunikácitót, letelepíti százezer kliensre, teszteli, félezer bites titkosító kulcsokat generál, felhasználóit ír, bevizsgáltatja a PSZÁF-fal, az APEH-hel, a felügyelő bizottsággal engedélyezteti a betöltéseket, értesíti a júzerejket stb. ILYEN NINCS! EZ kb. olyan valóságos cél manapság, mint az emberi képességeket is lazán ütő, érző AI.

    Jelzem ipari robotokon végeztem, szal. please, az AI témába ne menjünk bele, mer hányok.
  • Polemius
    #16
    "szerintem a neve sem véletlenül hasonlít az angol patch szóhoz"

    El kellene olvasni a cikket:

    >>A Pachika szó a Kelet-Afrikában beszélt szuahéli nyelvből származik, a jelentése "használni és javítani".<<
  • lordofchaos
    #17
    Köszönöm a felvilágosítást. Ha hiszed, ha nem elolvastam. Neked kéne elolvasnod hogy én mit írtam.
    Mellesleg:
    http://www.golem.de/1002/73207.html
  • lordofchaos
    #18
    Namost ÉN egy kurva szót sem beszéltem arról hogy Te beszéltél volna patchekről.
  • lordofchaos
    #19
    Erről meg a cikk nem írt semmit. Arról írt, hogy a Pachika figyeli a futó folyamatot, ha hibázik összehasonlítja a nem hibázó változattal és a különbség alapján patchet készít, amivel kijavítja a programot. Ennyit állított a cikk, ami igaz is. Utána lehet olvasni több helyen.
  • Polemius
    #20
    Oké, bizonyára rosszul értelmeztem.
    Azt állítod, hogy a szuahéli nyelvből került át a szó az angolba, vagy fordítva, az angolból a szuahélibe?

    Vagy milyen egyéb magyarázatot tudsz elképzelni a hangalak véletlen hasonlóságán kívül (amit ugye kizártál)?
  • Chriss745
    #21
    Én kurvára egyet értek veled Jedi. Aki mást mond, az tényleg nem programozó, vagy csak azt mondja magáról Kívülről belepiszkálni egymásik programba enélkül, hogy tudnád mit is csinál az baromság (nem beszélve az OS nem is engedi). A többi aki meg azt állítja, hogy az milyen egyszerű, ők írják azokat a programokat amik random összefossák magukat, mert hát "írtam egy ciklust, az figyel valamit aztán csinál valamit ha valami nem jó". Na hát gratulálok!
  • lordofchaos
    #22
    Egyikből sem került át a másikba. Küldtem egy cikket, ott is leírják. Egyszerűen azért választották ezt a szót, mert a jelentése is kifejező a program számára és a hangalak is hasonlít a "patch" szóra.
  • lordofchaos
    #23
    Na hát ez úgy hülyeség ahogy van.
    Ezen programok egyike sem tudja mit csinál az amiről épp a patchet készítik, mégis működnek:
    Patcher

    Én magam is írtam már patchert egy nagy rendszer részeként. Nem tudja hogy mit csinál a patchelni készült program mégis képes módosító kódot készíteni hozzá és mindez rohadtul egyszerű, ugyanis azt, hogy mire fogja módosítani is egy futtatható programból veszi. Ahogy a cikk is leírta.
    A másik hogy assemblyben olyan ön vagy más programokat módosító kódot írsz, amit nem szégyellsz. Pl: vírusok. Bár mostanában szinte csak a vírusok használják, nem egy ilyen kódot láttam anno demopartykon 1K, 4K, 64K demokban.
  • lordofchaos
    #24
    Akit érdekel egyébként itt leírják a működését, pontosan az a működésének a lényege amit sejtettem és leírtam: http://www.st.cs.uni-saarland.de/models/pachika/downloads/report.pdf
  • Sir Quno Jedi
    #25
    "A másik hogy assemblyben olyan ön vagy más programokat módosító kódot írsz, amit nem szégyellsz. Pl: vírusok. "

    Te ezt komolyan gondolod?! Hogy egy vírus az ÁTÍRJA egy tetszőleges futtatható program MŰKÖDÉSÉT, hogy homlokegyenest mást csináljon, mint amire szánták eredetileg!? Mert akkor nagyon el vagy tévedve... (én papot hívnék)
  • lordofchaos
    #26
    Abba igazad van, hogy az eredeti kódot nem változtatják meg a patcherekkel ellentétben, de mivel valószínűleg a programok legnagyobb részét nem arra szánták hogy egy részüket hozzámásolják másik programokhoz és az ugrási címeket megváltoztatva azt futtassák, ezért igen, a vírusok ha úgy vesszük átírják a programot. Megváltoztatják a futtatható állományt.
  • lordofchaos
    #27
    De egyébként nem erről írtam lejjebb, hanem az önmódosító programokról, amilyenek pl. a polimorf vírusok.
    Itt olvashatsz a polimorf kódról: http://en.wikipedia.org/wiki/Polymorphic_code
    Itt sem tudja az encryptor pl. hogy mit csinál a kód, mégis módosítja és visszaállítja.
  • Sir Quno Jedi
    #28
    Önmódosító programokat nem túl bonyolult írni, már a régi Amigás időkben (sőt azelőtt is) is igen nagy divat volt. De ennek az égegyadta világon SEMMI köze sincs a más programokat módosító programokhoz.

    Mindemellett az, hogy egy vírus átír egy ugrást a kód elején, nem jelenti azt, hogy "módosította" a KÓD konkrét működését. Az ugyanis továbbra sem fog mást csinálni, csak a vírus indul helyette, avagy előtte. A vírusnak segédfogalma sem lehet arról, hogy a KÓD valójában mit csinál, nem is ez a dolga. Maximum ha konkrét kód (pl. egy adott windows dll) megfertőzésére, vagy cseréjére írták, akkor tehet valamit, no de ez esetben erre írták az egészet, nem tud a vírus továbbra sem semmit, csak egy hót primitív célprogram.
  • lordofchaos
    #29
    Ok, ezzel 100%-osan egyetértek. Hasonlatként említettem, de igazad van, nem a legjobb, mert ez nem ismeri feltétlenül a kódot. A jó hasonlat a patcher volt és mióta utánanéztem kiderült hogy valóban így működik a Pachika, a javító része egy patcher, ami a elvégzi a módosításokat, de ő sem tudja mik azok, egyszerűen két kód különbségéből patchet készít és azzal módosítja a kódot.
  • mrzed001
    #30
    Ugye nem arról beszélsz, hogy hexában összehasonlítod a két file-t és cseréled a módosításokat, mert itt helyben röhögőgörcsöt kapok.

  • Sir Quno Jedi
    #31
    Eljutottunk tehát egy két kódot bitről-bitre összehasonlító, majd abból különbségi kódot készítő, ill. szükség esetén visszaállító programocskához, amit egy elsőéves gimnazista "infós" is megír különösebb nehézségek nélkül. Köszönöm! :D
  • lordofchaos
    #32
    Pedig maguk a patcherek így működnek, igen. A Pachikánál természetesen nem erről van szó, mert itt a példában Java kódot módosít.
  • lordofchaos
    #33
    Örülök neki hogy sikerült idáig eljutnod, akkor mehetünk tovább. A Pachika ugyanezen az alapon készít patchet a programhoz. Kivéve hogy itt Javáról lévén szó nem bitről bitre hasonlítja össze, hanem loggolja a metódushívásokat és paramétereket és ez alapján tárol jól futó és hibásan futó állapotokat.
  • lordofchaos
    #34
    "A patch készítése során a szoftverfejlesztők bájtszintű összehasonlítást végeznek az adott fájl két verziója (az eredeti és a javított) között, és az eltérések információit tartalmazza a patch futtatható állománya. Ez a módszer lehetőséget ad nagy méretű fájlok sokkal kisebb méretű programmal történő javítására."

    http://hu.wikipedia.org/wiki/Patch

    Kezdhetsz röhögni.
  • mrzed001
    #35
    És mit gondolsz, az a javított működő programok ki írta meg?
    Hát bizony egy programozó, nem a levegőből veszi ám ki a módosításokat (meg a Zoxigénbő).

    Ami ezt a pacsikát illeti
    "képes ezeket a későbbi súlyos fennakadásokat okozó hibákat időben felismerni és azokat automatikusan kijavítani"
    Na itt kezdődik a vasistdas. Ez az ami a lehetetlen kategória.
    Persze egy 2+2 összeadást végző függvény esetében működhet egy programon belül (persze az is nyelv függő, amit tud javítani javában azt nem egy c vagy delphi programban), így minden más esetben nem.
  • mrzed001
    #36
    Most nekem magyarázod, hogy mi az a patch? [fekveröhög]
  • Sir Quno Jedi
    #37
    Én má' hozok popcornt is lassan.
  • lordofchaos
    #38
    "És mit gondolsz, az a javított működő programok ki írta meg?
    Hát bizony egy programozó, nem a levegőből veszi ám ki a módosításokat (meg a Zoxigénbő)"
    Ez így igaz. Nem is állítottam az ellenkezőjét.

    Hogy időben felismeri e a "fennakadásokat" az jó kérdés. Ennyire nem ástam még bele magam, hogy hogy állapítja meg egy futásról hogy az kiakad e még mielőtt kiakad.
  • lordofchaos
    #39
    Akkor nem értem mi a probléma. Linkeltem egy doksit is róla korábban:
    http://www.st.cs.uni-saarland.de/models/pachika/downloads/report.pdf
  • mrzed001
    #40
    Még ha ki is akadt sem lenne képes felismerni ember !
    Az a program lehet, hogy éppen adatbázis kapcsolatra vár, vagy más timeoutra, vagy emberi beavatkozásra, másik program inputjára, soros portra, vagy az egyik szál lefutására ... szóval még egy szimpla primitív win-es programnál sem lehet megállapítani, hogy az a program megfagyott, vagy másra vár.
    Service-ekről meg ugyebár ne is beszéljünk.
    Szóval nem hogy előre, hanem utólag sem lehet tudni, hogy kiakadt-e vagy sem.