da sie
kod nie jest naprawde zagmatwany
co do 2. sposobu to tez nie jest trudne bo widzimy
ze przed wykonaniem skoku do printowania stringa czy zlamane czy nie
jest porownywany [ebp-81](cmp [ebp-81],0)
szukamy wczesniej gdzie zapisywane jest cos do [ebp-81] i widzimy takie cos
call adres
mov [ebp-81],AL
wiec to co funkcja zwroci (w zasadzie tylko najnizszy bajt) jest zapisywane pod tym adresem
sprawdzamy wiec w funkcji gdzie modyfikowany jest eax i widzimy juz gdzie trzeba cos zmieniac
a co do 1. sposobu to poprostu zmiana jmp`a jest to najbardziej prosty sposob w znalezieniu i wykonaniu
//EDIT
@UP
da sie debuggerem zmienic np. Olly ma opcje Copy to executable(prawy->copy to executable->all modification)