PHP kódminőség fenntartás
php, qa, static code checking, phpunit, phpcs, phpmd, phpstan, churn, phpdd, psalm, phplint, phan
2024-10-17
Failed: bson encoding error: BSON element key cannot contain null bytes
mongo, mongodb, bson, null, key
2024-08-24
Nem bízol a kollégáidban? Akkor valamit rosszul csinálsz!
bizalom vezetokent
2023-05-03
Dolgok, amikről a programozók azt hiszik, hogy tudják, de tévednek
programozoi-tevhitek-falsehoods
2023-04-08
A programozóktól meg kell szabadulni
chatgpt no-code low-code
2023-01-22
Miért fontosak a személyes adatok egyáltalán?
privacyaware, privacy
2023-01-07
Egy tanmese a szerény, de tehetséges informatikusról, akit én csak Gézának hívok
privacyaware, privacy
2023-01-02
Beskatulyáznád magad egy termékkel? Gondold át még egyszer!
learning, vendorlockin, risky
2022-12-11
Rekrúterekről és állásajánlatokról
bérsáv, recruiter, relevancia
2022-10-30
"A hídon akkor kell átmenni, amikor odaérünk."​ - YAGNI
yagni, pagni
2022-10-17
"A lényeg, hogy a munka készen legyen!"
agile, estimation, becsles, scrum, home office
2022-08-20
Munka vs. hivatás, a klasszikus dilemma
hr, hobbi, munka, egyensuly, hivatas
2022-07-18
Miért nem fogok nálatok technikai interjún részt venni?
technikai interju, hr, recruit, leet code, coding challenge, take home challenge
2022-07-04
"Hogyan építsek kapcsolati tőkét, ha karriert szeretnék váltani?"
linkedin, tippek, trukkok
2022-06-10
Junior/Medior/Senior, hogyan mérjük?
junior, medior, senior, hr, grade, level, experience
2022-05-09
11 tipp frontendeseknek, hogyan tegyék hatékonyabbá a munkájukat
frondend, vscode, angular
2021-10-31
Motion zoom - mozgás alapú képrekonstrukció
#52het
2021-06-01
Gesture Launcher
#52het
2021-05-31
CellEvent, első Android alkalmazásom
#52het
2021-05-19
Notebookcheck, azaz hogyan válasszuk ki a legjobb ár-érték arányú eszközt
#52het
2021-05-18
Torrent multiplexer
#52het
2021-05-17
Process watcher, logger
#52het
2021-05-05
Lazy loading material dialog content
lazy loading, angular, material, dialog
2020-12-28
Runtime configuration loading in Angular
angular, runtime, configuration, settings, environment, production
2020-03-29
How to start an Angular project?
angular
2020-03-11
Az 52 hét projekt
#52het
2020-01-01
Akkutöltöttség-jelző
#52het
2020-01-01
NetClub - Kollégiumi internetszolgáltató
#52het
2019-12-31
DeeJayy - Lost Terminal
#52het
2019-12-31
Counter Strike monitor
#52het
2019-12-31
Kollégiumi CS bajnokság 2005
#52het
2019-12-31
Mozgásérzékelős képrögzítő, Camera Capture
#52het
2019-12-30
Többszörös host pingelő
#52het
2019-12-30
Sávszélesség mérő, tesztelő
#52het
2019-12-30
Generáljunk hamis adatokat
#52het
2019-12-30
SQL lekérdezések parancssorból, odbc-vel
#52het
2019-12-30
Nonogram generátor (aka. "Fesse feketére")
#52het
2019-12-30
Egyedi chat alkalmazás, kliens és szerver
#52het
2019-12-29
FontSelector - betűtípusválasztó / font preview
#52het
2019-12-28
Saját hálózati kommunikációs segédszoftver - sox
#52het
2019-12-28
Csoportos e-mail küldő szoftver Delphiben
#52het
2019-12-28
Universal Api caller module for Angular 7-9 With NGRX state management
Ngrx, API, Effects, HttpClient
2019-07-02
A leghosszabb projekt
#52het
2019-04-19
Legelső kioszk projektem: Stari Sör Jukebox
#52het
2019-02-28
BPM számláló
#52het
2018-11-01
Assembly féléves beadandók
#52het
2018-11-01
Chatbot before it was cool
#52het
2018-10-30
StartX - Cseréljük ki a windows tálcáját és a Start menüt
#52het
2018-10-28
What? - fájltípus azonosító
#52het
2018-10-27
Transport Tycoon DirectX
#52het
2018-10-26
Diff - fájlösszehasonlító
#52het
2018-10-26
De Facto - Szoftverfelügyelet
#52het
2018-10-25
CD és DVD katalogizáló
#52het
2018-09-24
MP3 segédeszközök
#52het
2018-09-24
Keylogger - azaz billentyűleütés-figyelő és naplózó alkalmazás
#52het
2018-08-29
Az örök projekt: személyes weboldal és blog
#52het
2018-08-14
Szógyakorló nyelvtanuláshoz
#52het
2018-08-13
Warzone 2100 mentett játék szerkesztő
#52het
2018-08-13
Rejtett Windows-beállításokat konfiguráló program: TweakMaster
#52het
2018-08-13
A DrótPostaGalamb levelezőprogram adatfájljainak dekódolása
#52het
2018-08-13
Privacy jegyzet
2018-07-30
Egy éve ilyenkor
2018-07-25
The Matrix - konzol szimuláció
#52het
2018-07-13
Kakaóreceptkönyv
kakaó
2018-06-29
Crackelés!
#52het
2018-06-22
A K.I.T.T. challenge
#52het
2018-06-18
Doom 2 botokkal
#52het
2018-06-16
Römi játék Delphiben
#52het
2018-06-09
MeetsCow & DeeJayy - Intro
#52het
2018-06-09
Direct viewer - bitmap megjelenítő
#52het
2018-06-09
bazMAG
#52het
2018-06-09
Console Vision - Konzolos ablakkezelő Delphiben
#52het
2018-05-01
Quake 2 egy floppyn
#52het
2018-04-20
Játék-kitömörítők
#52het
2018-04-12
Tetszőleges program elrejtése Windows tálcáról
#52het
2018-04-05
Személyre szabás
#52het
2018-03-28
A year with Angular 5, 6 - Angular 2018
#angular5 #angular #resources #articles
2018-03-16
Az ikon evolúciója
#52het
2018-03-14
Betűtípusok
#52het
2018-03-04
Billentyűzet-gyakorló
#52het
2018-02-28
Zenél is a DeeJayy?
#52het
2018-02-22
Térképrajzoló az Ascii 3D labirintushoz
#52het
2018-02-19
Ascii 3D labyrinth
#52het
2018-02-14
52 hét - 52 projekt, avagy #eletem
#52het
2018-02-14
Dockerezzünk virtualizált környezetben!
docker, xen, ubuntu
2017-11-12
A cloud-initramfs-copymods hatásai paravirtualizált környezetben
ubuntu, xen, copymods, docker, docker-ce, docker.io
2017-11-11
Virtualizáljunk Xen 4.6-tal Ubuntu 16-on (Xenial)
ubuntu, xen, virtualizálás, hypervisor, debootstrap
2017-11-04
Álláskeresésem története
álláskeresés, it, fejvadászok, linkedin, job
2017-10-24
FAR Manager competitors
far manager, file managers
2010-01-01
Blog
blog
2001-01-02

Diff - fájlösszehasonlító

- 2001 -

Szoftverfejlesztők között gyakori használati tárgy a "diff", mint "difference" azaz különbség. Van erre egyébként egy jól bevált eszköz, pont ez a neve is, de én 2001-ben még nem igazán voltam jó ismertségben ezekkel. A légyege az, hogy összehasonlít két szöveges fájlt (mondjuk txt dokumentumot, forráskódot, stb) és megjelöli, hogy hol különbözik. Bináris fájlokkal (pl. programok, tömörített fájlok, amik nem igazán olvashatók emberi szemmel) viszont gondban volt: csak annyit írt ki, hogy különbözik-e vagy sem.

Nekem pedig pont az utóbbira volt szükségem, hogy például analizáljam a crackelő programok működését, nevezetesen: mit is csinálnak a folyamat alatt az eredeti fájllal. Vagy esetleg, hogy ha a játékban, amit játszok, 2 pénzegységgel növekszik a vagyonom, az pontosan hol van a mentésben (mentés előtte, mentés utána, diff).

Neki is láttam megalkotni egy bináris diff programot a legjobb tudásom és az általam legtöbbször használt programozási eszközzel, a Delphivel.

Így működött:

Használat: diff.exe file1.kit file2.kit [/kapcsolók ... ]
  /Dxxx           Csak azokat a különbségeket írd ki, amelyek
                  különbsége xxx (decimális szám)
  /Fxxxx-yyyy     A fájlt csak xxxx-től yyyy-ig nézi meg
  /E[xx;yy;aa]    Kihagyja azokaz a számokat a keresésből, amelyek a [] között
                  vannak, és pontosvesszővel vannak elválasztva
  /B              Biteltérés, ha a két különbség csak egy bitben tér el
  /H              Részletesebb segítség
  /G              Generáljon kódot:
     /Gp          Pascal nyelven
     /Gd          Delphi nyelven
     /Ga          Assembly nyelven (készülőben)
     /Gc          C/C++ nyelven
  /X              Példák
  /C              A két fájlból egy részletet kiír, +5 -5 bájtos körzetben
  /A              A különbségeket ASCII karakterként írja ki

Képes volt a különbségekből olyan kódot generálni, amit pl. Delphivel le lehetett fordítani, azaz egy adott crack-et megszabadítani a fölösleges sallangtól (az alkotó által összerakott zenélő-villogó, működéshez alapvetően szükségtelen keret).

Példa:
  diff.exe file1.ext file2.ext /D1
    Ez a példa összehasonlítja a file1.ext és file2.ext fájlokat, és
    csak azokat a különbségeket írja ki, mint a 01 & 02 vagy 57 & 56 
  diff.exe file1.ext file2.ext /F1-500
    Ez a példa összehasonlítja a file1.ext és file2.ext fájlokat az
    elsőtől az ötszázadik bájtig
  diff.exe file1.ext file2.ext /E[1;31;255]
    Ez a példa összehasonlítja a file1.ext és file2.ext fájlokat, de
    ha a különbségek közül bármelyik 1 vagy 31 vagy 255 akkor azokat
    nem írja ki
Részletes segítség:
  o Ez a program tulajdonképpen két fájlt, bájtonként összehasonlít.
    Az összehasonlítás procedúrája:
    A két fájl megnyitása után mindkettőt beolvassa És bájtról 
    bájtra végignézi, hogy melyik pár különbözik. Ezt pedig kiírja.
  o A program az érvénytelen kapcsolókat (többnyire amelyek nincsenek a
    programban) figyelmen kívül hagyja
  o A program max 4GB nagyságú fájlt tud kezelni "csak"
  o A generált kód az első paraméterben megadott fájlra csinál egy
    programot, ami a második fájltól való különbségeket írja felül,
    Tehát ha a generált kódot lefordítva lefuttatod, akkor az első
    fájl utána egyezni fog a másodikkal.

Tippek, trükkök:
  o Ha a /F kapcsolót úgy használjuk, hogy nem adunk meg végértéket, akkor
    automatikusan a fájl vége lesz az.

Forráskódot erre tessék.