Лидеры рейтинга

ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

1061

Россия, пос. Теплоозёрск, ЕАО


ID: 226425

Konstantin Shvetski

Модератор

314

Россия, Северодвинск


ID: 401284

Михаил Александров

Советник

278

Россия, Санкт-Петербург


ID: 137394

Megaloman

Мастер-Эксперт

158

Беларусь, Гомель


ID: 400669

epimkin

Профессионал

105


ID: 404002

sglisitsyn

6-й класс

42


ID: 242862

Hunter7007

Мастер-Эксперт

30

Россия, Омск


8.10.3

30.10.2021

JS: 2.10.3
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-12-04 11:45:59-standard


Создание программ на языке Assembler.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 201319

Раздел:  Assembler
Автор вопроса: Vlados (Посетитель)
Дата: 04.08.2021, 04:58 Консультация закрыта
Поступило ответов: 0

Здравствуйте, уважаемые эксперты!
Подскажите, пожалуйста, вот такой момент, если это, конечно, реально решить:
clc
mov eax, 0x95484848
rcl eax, 1
Получится некое значение. Но теперь я хочу применить вот такую операцию, то есть вернуть число обратно каким он был до этого 0x95484848
Представим что флаг переноса не известен.

rcr eax, 1

И по причине того что флаг не известен - число будет другим. У меня вот такой вопрос как можно восстановить число при не известном флаге?
Буду очень благодарен, если поможете!

Сам я программирую в среде FASM x86

Ответов пока не поступило
Мини-форум консультации # 201319

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

1

= общий =    04.08.2021, 09:55
Vlados:

Как работают эти команды, своими словами?

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Vlados

Посетитель

ID: 404330

2

= общий =    04.08.2021, 10:41

При смещении в право командой RCR берется 31 бит помещается в регистр CF, если он установлен. Дело с RCL тоже самое, только что берётся уже 0 бит

Все зависит от размеров регистров! Если word то там 15 бит при rcr и крайний правый 0 при rcl
dword 31 бит при rcr и крайний правый 0 при rcl
byte 7 бит при rcr и крайний правый 0 при rcl

q_id

Vlados

Посетитель

ID: 404330

3

= общий =    04.08.2021, 11:01

Дело в том, что при rcl значение меняется, потом при rcr, когда флаг не известен CF значение потом не восстановить прежнее, вот в чем дело.

q_id

Vlados

Посетитель

ID: 404330

4

= общий =    04.08.2021, 11:09

Самое что интересное, что если CF известен при зашифрованном значении, то он расшифруется как надо. Только как этот флаг CF узнать у значение которое было до rcl в зашифрованном значении

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

5

= общий =    04.08.2021, 13:06

Я несколько о другом спрашивал.
smile
Пишем проверочный код, который не меняет флаг CF:

Код [Assembler]
org     100h
        mov     al,95h
        mov     [140h],al
        rcr     al,1
        mov     [141h],al
        rcr     al,1
        mov     [142h],al
        rcr     al,1
        mov     [143h],al
        rcr     al,1
        mov     [144h],al
        rcr     al,1
        mov     [145h],al
        rcr     al,1
        mov     [146h],al
        rcr     al,1
        mov     [147h],al
        rcr     al,1
        mov     [148h],al
        rcr     al,1
        mov     [149h],al
        rcr     al,1
        ret

Запускаем в отладчике, и внимательно смотрим на результат работы в строке 0х140


Теперь попробуйте проанализировать результат и ответить как работает команды RCR и RCL.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

6

= общий =    04.08.2021, 22:26
Vlados:

Ваши выводы?

Я могу ответить на Ваш вопрос, но пока не понятна цель, с которой используют эти сдвиговые команды.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Vlados

Посетитель

ID: 404330

7

= общий =    04.08.2021, 22:32

Дело в том, что в одном крипторе используется шифрование при помощи этих команд RCR и RCL, вот, и я пишу щас на Си дешифровщик используя немножко ассемблер.

q_id

Vlados

Посетитель

ID: 404330

8

= общий =    04.08.2021, 22:46

Вот оригинальные значения:
928C30B9 3560E75D 5B1F5C34 E8B6DDBA
F93216DB E31E37BC C38E7D87 608E3CFC
272F5D74 0EFC3C61 417D389E F95829B2
526D6ECC A70B0A4D C67BC293 01861C36
3D85DE8B 08881EAF F0E850EB 199CE5E1
C5B99145 E0B914C9 3456E433 0CF5A4BD
AE86EDE3 AB4DFB37 F4831397 8EC46E4A
2495F3BE 97C21A2C 2F8F015A 6D145A59

А вот значения, которые прошли обработку посредством команд RCL и RCR:
128C30B9 3560E75D 5B1F5C34 68B6DDBA
793216DB 631E37BC 438E7D87 608E3CFC
272F5D74 0EFC3C61 417D389E 795829B2
526D6ECC A70B0A4D 467BC293 01861C36
3D85DE8B 08881EAF 70E850EB 199CE5E1
45B99145 60B914C9 3456E433 0CF5A4BD
2E86EDE3 2B4DFB37 74831397 0EC46E4A
2495F3BE 17C21A2C 2F8F015A 6D145A59

Если обратить внимание, то первое число 928C30B9 и 128C30B9 отличаются только 9 и 1, а надо чтобы была девятка.
Надо чтобы оба блока были равны!
Я буду очень благодарен, если Вы хоть как-то поможете решить данную задачу.

q_id

Vlados

Посетитель

ID: 404330

9

= общий =    04.08.2021, 23:07

Пример набросал, так что так будет понятней.

q_id

Vlados

Посетитель

ID: 404330

10

= общий =    04.08.2021, 23:09

все числа сдвигаются на 1 бит, это важно!

q_id

Vlados

Посетитель

ID: 404330

11

= общий =    04.08.2021, 23:16

MOV EAX,928C30B9
CLC
RCL EAX,1
CLC ; STC Если поменять флаг, то значение восстановится.
RCR EAX,1
В результате в EAX будет значение 128C30B9

А что если флаг не известен и я хочу из числа 128C30B9 получить флаг для дешифровки числа в 928C30B9

Вот такая я вот задача! ;)

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

12

= общий =    05.08.2021, 16:14
Vlados:

Обратите внимание на книги Криса Касперского, в частности "Записки Мыша" - защита программ, дальше будет больше.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Vlados

Посетитель

ID: 404330

13

= общий =    05.08.2021, 16:51

Совет и я могу дать! ;)

А попробовать решить данную задачу можешь?

Я сам как Крис Касперский, еще лучше даже. Что нам мешает быть лучше других, согласись?

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

14

= общий =    05.08.2021, 18:29

Я сам как Крис Касперский,


Круто.

еще лучше даже



Вы так и не смогли ответить на вопрос:

Как работают эти команды, своими словами?


Флаг CF используется в команде как разширение регистра на один бит.

В книге есть пару примеров как анализировать программы, которые часть исполняемого кода шифруют. CF - в этих данных переходит от одного значения к другому.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Vlados

Посетитель

ID: 404330

15

= общий =    05.08.2021, 18:33

Спасибо, понял!
Про команды RCL и RCR я знаю.

За ваш ответ огромное спасибо!

q_id

Vlados

Посетитель

ID: 404330

16

= общий =    05.08.2021, 18:37

Вы не могли бы скинуть ссылку на эту книгу про которую Вы говорите?

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

17

= общий =    05.08.2021, 19:22
Vlados:

Ну хотя бы тут..Но прочитать нужно будет больше, т.к. реверс = это комплекс мер, всё в одной книге нельзя описать.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Vlados

Посетитель

ID: 404330

18

= общий =    05.08.2021, 19:24

Спасибо огромное!

q_id

Vlados

Посетитель

ID: 404330

19

= общий =    05.08.2021, 19:29

Я щас пишу keygen к одной программе, вот собственно столкнулся с такой задачей как RCL RCR ADC SBB, но я решил ее.

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

20

= общий =    05.08.2021, 20:49
Vlados:

Я щас пишу keygen к одной программе, вот собственно столкнулся с такой задачей


В книги Криса Касперского


Поиск и исправление механизма парольной защиты(в книгах много примеров: myCrack=>Crack[сами пишем myCrack на С/С++ код и как это Crack]).
smile
Читать-изучать нужно будет много. smile smile smile

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Vlados

Посетитель

ID: 404330

21

= общий =    05.08.2021, 22:20

Не, Crack это программа пропатченная, которую распространяют в виде офф программы(пропатченая). А Patch это уже отдельная программа, которая распространяется в виде отдельной специальной программы патчищая другую программу. Самый лучший взлом считается это когда ты напишеш Keygen, потому как ключи можно потом продавать на черном рынке за пол цены от стоимости программы.
Сам то я знаю Си и Ассемблер. Так что для меня не составляет большого труда проделать такие вещи как написать патч или кейген. Отладчик знаю на ура, иначе бы не занимался бы реверсингом.

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

22

= общий =    06.08.2021, 22:36
Vlados:

Отладчик знаю на ура, иначе бы не занимался бы реверсингом.


smile
Я писал:

т.к. реверс = это комплекс мер, всё в одной книге нельзя описать.


Это несколько дизассемблеров, несколько отладчиков, при этом комбинировать прийдется всё, т.к. есть противоотладочные и противодизассемблерные методы. Т.к. одни противоотладочные методы работают(вешают, крашат их, и т.д.) на один-два отладчика, а на третем не проходят, аналогичная ситуация с дизассемлерами.

Я Вам писал:

В книге есть пару примеров как анализировать программы


Поиск и исправление механизма парольной защиты(в книгах много примеров: myCrack=>Crack)



Поиск механизма парольной защиты, он нужен, и для:

Keygen



Исправление механизма парольной защиты:

Crack это программа пропатченная, которую распространяют в виде офф программы(пропатченая). А Patch это уже отдельная программа, которая распространяется в виде отдельной специальной программы патчищая другую программу


Crack или Cracking, это поиск механизма защиты, поиск и обход ловушек, и на этом основании создается либо Keygen, либо Patch.
Но никто не даст гарантий, что, при совпадении хеша ключа(он скрывает, оригинал пароля), в определенных позициях ключа, должны быть определенные символы, а это только один из видов ловушек.

Простите, но до

Я сам как Крис Касперский, еще лучше даже.


Вам так далеко до Криса Касперски, кстати Касперски, а не Касперский.

Прежде, чем отвечать, прочтите хотябы одну книгу, которую написал Крис Касперски.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Vlados

Посетитель

ID: 404330

23

= общий =    06.08.2021, 22:45

Кстати, я больше скажу, что все что написал Крис Касперски щас в это время не актуально! Ты думаешь я его не читал, ты смеёшься по-моему. Я в программировании 15 лет. Щас более новые книги уже есть, чем книги Криса Касперски. Я не говорю, что Крис Касперски плох.

q_id

Vlados

Посетитель

ID: 404330

24

= общий =    06.08.2021, 23:15

Очень хорошая книга мне понравилась это от автора книги О.А.Калашников "Ассемблер это просто" причем он даже где то есть на фотке с майкой этого сайта, помойму на его сайте видел, когда он существовал, щас то сайта нет уже, только что фотки можно найти его в поисковике.

q_id

Vlados

Посетитель

ID: 404330

25

= общий =    06.08.2021, 23:23

У Вас есть личный crackme, который Вы написали, или нет? Мне интересно глянуть его. На сколько мне известно, люди которые хорошо знают ассемблер по-любому исследуют защиты программ, а значит и есть, возможно, свои crackme.;)

q_id

Vlados

Посетитель

ID: 404330

26

= общий =    06.08.2021, 23:31

Главное что я знаю то, что я знаю. А свое мнение ты мне не навяжишь, потому как я сам могу тебя поучить!!!!.))))))

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

27

= общий =    07.08.2021, 00:24
Vlados:

Я в программировании 15 лет.


Будем *** мерятся:
  1. - Аналитик, на Мир-2, 82-ой;
  2. - Fortran, на CM-4, 82-ой;
  3. - Basic, на CM-4(CM-1420), 84-ый;
  4. - Pascal, на CM-4(CM-1420), 85-ый;
  5. - С/С++, на БCM-(номер не помню), 86-ой;
  6. - Algol, PL, Cobol, SAS, на БCM, 86-ой, Читал мануалы(распечатаные на ЦПУ, эти распечатки и сейчас у меня), переводил на Pascal некотырые коды;
  7. - Ассемблер, на Радио РК и аналоги на 580 и Z-80, 88-ой;
  8. - Дальше пошло поехало: Delphy, Lisp, Prolog, C#, PHP, HTML+, Java, Masm, Tasm, Fasm ++, на PC 586+, начиная с 98-го, что-то знаю больше, что-то - меньше, на все времени - нет.


все что написал Крис Касперски щас в это время не актуально!
. . .
Щас более новые книги уже есть,


Крис Касперски писал Азбуку анализа кода, как пример Грег Хогланд, Гари Мак-Гроу - Взлом Программного Обеспечения, Анализ и Использование Кода(ISBN 5-8459-0785-3). Всё, что использовано в книге, это комбинация методов, которые описал КК. И таких примеров, я могу приводить кучу.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

28

= общий =    07.08.2021, 01:35
Vlados:

потому как я сам могу тебя поучить!


Я Вам ничего не навязываю, просто, прочитать книги КК, если читали обновите знания.

от автора книги О.А.Калашников "Ассемблер это просто"


Какое издание?

причем он даже где то есть на фотке с майкой этого сайта


тут только выберите статус - большой
У меня такая тоже есть. Как-то с Олегом мельком пересекались(это не майка по почте smile ), в Киеве, метро "Арсенальная", он тогда ехал к @ Лысков Игорь Витальевич на встречу.

На сколько мне известно, люди которые хорошо знают ассемблер по-любому исследуют защиты программ


Изучение и лом кода, это не равно: изучение, лом и распространение. Вы очень мало знаете, о людях, которые знают хорошо ассемблер.

Я не занимаюсь "ломом", я занимаюсь вирусологией, в моей коллекции уже 5028-ем штук исходников, моих, которые именно я выловил = 41-ин, один из них "мантикора" = сволочь редкосная. Вирус + монитор, который контролирует наличие вируса(если нужно востанавливает его) + контролер монитора(который контролирует наличие монитора, если нужно, востанавливает его), контролер и монитор работают крактко-временно, поэтому почти все антивири на них не обращают внимание. Остальные получил(в далеком 2000) с CD-"Компьютерная безопасность", так и втянулся.
smile

потому как я сам могу тебя поучить!


В Вашем доступе есть поиск портала, пройдитесь по нему, прочитайте мои ответы и сообщения в минифорумах, составьте мою программу обучения.
smile
Клянусь буду следовать ей.
smile

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Vlados

Посетитель

ID: 404330

29

= общий =    07.08.2021, 11:18

Вот сайт его в архиве >>
Вот книга:

А вот сам автор книги:

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 244

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 197

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 43

Nastya

1-й класс

Рейтинг: 3

Evgen aka Chuma

6-й класс

Рейтинг: 0

cain52

3-й класс

Рейтинг: 0