Pisanie patcha - materiały do nauki

0

Chciałbym się nauczyć tworzyć patch'e do programów i szukam przykładów w języku C lub C++.

@Bartosz Wójcik na swoim blogu opisuje tworzenie patcha.

Przykładowy kod można znaleźć pod adresem:
http://www.secnews.pl/2014/10/27/napisac-skomplikowany-patch/

Co sądzicie o tym kodzie? Można się z niego coś nauczyć? Czy jest on dobrze napisany?

2

Kod w tym wpisie jest tragiczny.
Autor chyba nie słyszał o czymś takim jak funkcje.
Obsługa błędów metodą Kopiuj i Wklej...
Raz używa != 0 a raz używa == TRUE, to jest to samo, ale mógłby się trzymać jednej konwencji.

Od takich znawców lepiej się nie ucz programować ;)

0

@żubr
Jak dziala to znaczy, ze jest dobry i mozna sie z niego nauczyc czegos. Widze, ze jest dobrze skomentowany, wiec duzy +. A, ze szczyt inzynierii oprogrmowania to nie jest i wszystko jest wepchniete w main, to pewnie tylko dla prostoty..

0
n0name_l napisał(a):

Jak dziala to znaczy, ze jest dobry

Większej głupoty nie słyszałem.

To, że kod działa to znaczy, że jest dobry?
Kod może działać, ale być źle napisany.
I taki jest tamten kod.
Wygląda jak pisany przez prawdziwego newbie, który dopiero się uczy.

2

To supcio.

Jak nie umiesz informacji wyciagnac z takiego kodu, zeby napisac patcha, tylko spodziewasz sie kodu napisanego z przestrzeganiem wszystkich wzorcow bo inaczej nie podejdziesz to gratuluje.

1

Drogi @n0name_l tu nie chodzi o to czy z kodu da się "wyciągnąć informacje".

Odpowiem wprost na pytania autora tematu.

Żubr:

Co sądzicie o tym kodzie?

Sądzę, że ten kod jest źle napisany i uczy złych praktyk.

Żubr:

Można się z niego coś nauczyć?

Można się z niego dowiedzieć jak zmienić bajty w pliku. Można też się dowiedzieć jak pisać zły kod.

Żubr:

Czy jest on dobrze napisany?

Brak podziału na funkcje. Może autor nie wie jak się je tworzy.
Obsługa błędów metodą Kopiuj i Wklej...
Autor raz używa != 0 a raz używa == TRUE, to jest to samo, ale mógłby się trzymać jednej konwencji.

Jednym słowem:
user image

Pozdrawiam serdecznie, Złoty Lew

3

Ręczne zamykanie resource'ów w nowym kodzie w C++ to dla mnie oznaka słabego kodu. Od tego jest unique_ptr, shared_ptr lub inne RAII, np. scope guard.

Użycie pragmy VC zamyka możliwość użycia innego kompilatora.

Ogółem nie widzę powodu, dla którego użyto winapi do obsługi plików zamiast biblioteki standardowej C++.

Działa - dobrze, ale nie równałbym tego z kodem, na którym można by się wzorować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1