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

rcr eax, 1

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

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

Обсуждение

давно
Старший Модератор
31795
6196
04.08.2021, 09:55
общий
Адресаты:
Как работают эти команды, своими словами?
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
404330
20
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
давно
Посетитель
404330
20
04.08.2021, 11:01
общий
Дело в том, что при rcl значение меняется, потом при rcr, когда флаг не известен CF значение потом не восстановить прежнее, вот в чем дело.
давно
Посетитель
404330
20
04.08.2021, 11:09
общий
Самое что интересное, что если CF известен при зашифрованном значении, то он расшифруется как надо. Только как этот флаг CF узнать у значение которое было до rcl в зашифрованном значении
давно
Старший Модератор
31795
6196
04.08.2021, 13:06
общий
Я несколько о другом спрашивал.

Пишем проверочный код, который не меняет флаг CF:
[code lang=asm]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[/code]
Запускаем в отладчике, и внимательно смотрим на результат работы в строке 0х140


Теперь попробуйте проанализировать результат и ответить как работает команды RCR и RCL.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
04.08.2021, 22:26
общий
Адресаты:
Ваши выводы?

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

давно
Посетитель
404330
20
04.08.2021, 22:32
общий
Дело в том, что в одном крипторе используется шифрование при помощи этих команд RCR и RCL, вот, и я пишу щас на Си дешифровщик используя немножко ассемблер.
давно
Посетитель
404330
20
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, а надо чтобы была девятка.
Надо чтобы оба блока были равны!
Я буду очень благодарен, если Вы хоть как-то поможете решить данную задачу.
давно
Посетитель
404330
20
04.08.2021, 23:07
общий
Пример набросал, так что так будет понятней.
давно
Посетитель
404330
20
04.08.2021, 23:09
общий
все числа сдвигаются на 1 бит, это важно!
давно
Посетитель
404330
20
04.08.2021, 23:16
общий
MOV EAX,928C30B9
CLC
RCL EAX,1
CLC ; STC Если поменять флаг, то значение восстановится.
RCR EAX,1
В результате в EAX будет значение 128C30B9

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

Вот такая я вот задача! ;)
давно
Старший Модератор
31795
6196
05.08.2021, 16:14
общий
Адресаты:
Обратите внимание на книги Криса Касперского, в частности "Записки Мыша" - защита программ, дальше будет больше.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
404330
20
05.08.2021, 16:51
общий
Совет и я могу дать! ;)

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

Я сам как Крис Касперский, еще лучше даже. Что нам мешает быть лучше других, согласись?
давно
Старший Модератор
31795
6196
05.08.2021, 18:29
общий
Цитата: Vlados
Я сам как Крис Касперский,

Круто.

Цитата: Vlados
еще лучше даже


Вы так и не смогли ответить на вопрос:
Цитата: Зенченко Константин Николаевич
Как работают эти команды, своими словами?

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

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

давно
Посетитель
404330
20
05.08.2021, 18:33
общий
Спасибо, понял!
Про команды RCL и RCR я знаю.

За ваш ответ огромное спасибо!
давно
Посетитель
404330
20
05.08.2021, 18:37
общий
Вы не могли бы скинуть ссылку на эту книгу про которую Вы говорите?
давно
Старший Модератор
31795
6196
05.08.2021, 19:22
общий
Адресаты:
Ну хотя бы тут..Но прочитать нужно будет больше, т.к. реверс = это комплекс мер, всё в одной книге нельзя описать.

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

давно
Посетитель
404330
20
05.08.2021, 19:24
общий
Спасибо огромное!
давно
Посетитель
404330
20
05.08.2021, 19:29
общий
Я щас пишу keygen к одной программе, вот собственно столкнулся с такой задачей как RCL RCR ADC SBB, но я решил ее.
давно
Старший Модератор
31795
6196
05.08.2021, 20:49
общий
Адресаты:
Цитата: Vlados
Я щас пишу keygen к одной программе, вот собственно столкнулся с такой задачей

Цитата: Зенченко Константин Николаевич
В книги Криса Касперского

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

Читать-изучать нужно будет много.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
404330
20
05.08.2021, 22:20
общий
Не, Crack это программа пропатченная, которую распространяют в виде офф программы(пропатченая). А Patch это уже отдельная программа, которая распространяется в виде отдельной специальной программы патчищая другую программу. Самый лучший взлом считается это когда ты напишеш Keygen, потому как ключи можно потом продавать на черном рынке за пол цены от стоимости программы.
Сам то я знаю Си и Ассемблер. Так что для меня не составляет большого труда проделать такие вещи как написать патч или кейген. Отладчик знаю на ура, иначе бы не занимался бы реверсингом.
давно
Старший Модератор
31795
6196
06.08.2021, 22:36
общий
Адресаты:
Цитата: Vlados
Отладчик знаю на ура, иначе бы не занимался бы реверсингом.


Я писал:
Цитата: Зенченко Константин Николаевич
т.к. реверс = это комплекс мер, всё в одной книге нельзя описать.

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

Я Вам писал:
Цитата: Зенченко Константин Николаевич
В книге есть пару примеров как анализировать программы

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


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


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

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

Простите, но до
Цитата: Vlados
Я сам как Крис Касперский, еще лучше даже.

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

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

давно
Посетитель
404330
20
06.08.2021, 22:45
общий
Кстати, я больше скажу, что все что написал Крис Касперски щас в это время не актуально! Ты думаешь я его не читал, ты смеёшься по-моему. Я в программировании 15 лет. Щас более новые книги уже есть, чем книги Криса Касперски. Я не говорю, что Крис Касперски плох.
давно
Посетитель
404330
20
06.08.2021, 23:15
общий
Очень хорошая книга мне понравилась это от автора книги О.А.Калашников "Ассемблер это просто" причем он даже где то есть на фотке с майкой этого сайта, помойму на его сайте видел, когда он существовал, щас то сайта нет уже, только что фотки можно найти его в поисковике.
давно
Посетитель
404330
20
06.08.2021, 23:23
общий
У Вас есть личный crackme, который Вы написали, или нет? Мне интересно глянуть его. На сколько мне известно, люди которые хорошо знают ассемблер по-любому исследуют защиты программ, а значит и есть, возможно, свои crackme.;)
давно
Посетитель
404330
20
06.08.2021, 23:31
общий
Главное что я знаю то, что я знаю. А свое мнение ты мне не навяжишь, потому как я сам могу тебя поучить!!!!.))))))
давно
Старший Модератор
31795
6196
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-го, что-то знаю больше, что-то - меньше, на все времени - нет.


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

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

давно
Старший Модератор
31795
6196
07.08.2021, 01:35
общий
Адресаты:
Цитата: Vlados
потому как я сам могу тебя поучить!

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

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

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

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

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

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

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

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


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

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

Клянусь буду следовать ей.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
404330
20
07.08.2021, 11:18
общий
Вот сайт его в архиве >>
Вот книга:

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