afq | Дата: Четверг, 01 Августа 2019, 02:59 | Сообщение # 1 |
Разработчик
Сейчас нет на сайте
| Блин, искал в инете, но не нашел ничего о битхаке, лучше наверное называть это патчем. Такое впечатление, будто я сам придумал это название, хотя я его раньше вроде слышал. Я начал изучать заного реверс инжиниринг и ассемблер. Может быть в этот раз изучу так, чтобы ничего не забылось. Раньше изучал, но мало изучил. Я на одном форуме написал крэкми и его взломали с помощью патча. Я в общем начал думать как же можно определить, есть ли патч или нет. Подумал можно ли содержимое метки присвоить регистру и оказалось что можно.
Код bithack: mov ax, [bithack]
Я написал небольшую программу, которая выводит сообщения в зависимости от случая. Что говорить почти не планировал, как получилось, так получилось. Удалил видео, чтобы не позориться.
Код section .text
; jmp 1b eb ; je 1b 74
global _start
_start: mov eax, 10 cmp eax, 4 bithack: jmp done jmp error bit: mov eax, 0x4 mov ebx, 0x1 lea ecx, [bith] mov edx, 9 int 0x80 jmp end done: mov eax, 0x4 mov ebx, 0x1 lea ecx, [matches] mov edx, 9 int 0x80 mov ax, [bithack] // загрузить данные метки. Если там jz done, то будет 1b 74 cmp ax, 0x1b74 jne bit mov eax, 0x4 mov ebx, 0x1 lea ecx, [text] mov edx, 12 int 0x80 end: mov eax, 1 mov ebx, 0 int 0x80 error: mov eax, 0x4 mov ebx, 0x1 lea ecx, [errors] mov edx, 12 int 0x80 jmp end
section .data matches db 'matches', 0xa, 0x0 text db 'no bithack', 0xa, 0x0 bith db 'bithack', 0xa, 0x0 errors db 'no matches', 0xa, 0x0
Добавлено (01 Августа 2019, 04:53) --------------------------------------------- В итоге, если в
Код bithack: jmp done jmp error
будет jz done, то выведется сообщение "no matches", потому что сравнивается eax с 4, а сам eax равен 10. В коде написано jmp done, это значит что в
Код mov ax, [bithack] // загрузить данные метки. Если там jz done, то будет 1b 74
в ax попадёт не 1b 74, а 1b eb. И тогда программа будет знать, что был совершен патч. В таком случае можно вывести сообщение о успешности регистрации, но не делать регистрацию полноценной. Если программа знает что есть патч, то можно наворотить такое, что и не снилось. Правда в ida видны эти метки. Но если кода будет много, то это затруднит анализ. Ещё например можно в каждой функции программы проверять, есть ли патч, и в таком случае не делать то что надо, а делать это беспантово.
Сообщение отредактировал afq - Четверг, 01 Августа 2019, 08:41 |
|
| |
drcrack | Дата: Четверг, 01 Августа 2019, 13:08 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| это все методы 1995-2005 годов сейчас такая конкуренция что нужно подсадить юзеров на свой софт любой ценой потому что лучше иметь юзера который пользуется ломаной версией, чем он снесет ее нахер из-за глюков (которые ты предлагаешь добавить) и уйдет к конкурентам посмотри на майкрософт — чуваки раздают кучу софта бесплатно и давно перестали делать какие-то хитрые системы защиты потому что если у тебя дома ломаная винда и офис — ты и на работе захочешь винду и мс офис, и фирме придется покупать этот недешевый софт для сотрудников, ведь другой они даже не знают
|
|
| |