|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Сен 2, 2003 01:32:10 Привет. Помогите решить проблему. Есть такой код: mov edx, eax imul edx, 2F5C55F3h imul edx, 2A3376D3h imul edx, 9BFA03Bh imul edx, 9E51CF03h imul edx, 84A1B3EBh imul edx, 0EE69DA83h imul edx, 0D437ED3Bh imul edx, 0D7422C43h imul edx, 0A4D159FBh imul edx, 0E466E7CBh imul edx, 0C8AE3C4Bh imul edx, 0BAEE533Bh imul edx, 0A9EA299Bh mov eax, edx Как можно восстановить начальный eax, имея результат после перемножения? Ведь всё время теряется старшая часть числа. Сделать это можно.. Что-то из теории больших простых чисел, вычетов... Не знаю с чего начать.. :P Буду очень благодарен. |
|
|
Дата: Сен 2, 2003 09:55:06 а перебор не подойдет? зарядить цикл, пока выходное значение не совпадет с нужным. таких чисел (входных), возможно, будет несколько. не думаю, что время перебора будет слишком большим. |
|
|
Дата: Сен 2, 2003 11:52:21 Восстановить невозможно в принципе - будет слишком много значений Здесь в eax исходное значение mov edx, 1 mov ebx, 6A281303h div ebx А здесь будет один из вариантов. |
|
|
Дата: Сен 2, 2003 12:46:04 Bruteforce not allowed, как говорится.. А откуда 6A281303h? Или это пример просто?.. |
|
|
Дата: Сен 2, 2003 12:49:09 · Поправил: masquer Почему пример? Это типа magic value, для данного случая, конечно. Ладно, просто весь этот код (из верхнего поста) можно привести к одной строке mov edx, eax imul edx, 6A281303h mov eax, edx |
|
|
Дата: Сен 2, 2003 14:07:17 Ага, ясно.. |
|
|
Дата: Сен 2, 2003 14:25:31 А как этот magic value быстро получить? Алгоритм какой-то или просто математика? Поясните, пожалуйста, а то чуть-чуть не понимаю... |
|
|
Дата: Сен 2, 2003 14:32:21 Перемножь все числа |
|
|
Дата: Сен 2, 2003 17:07:20 Точно: D8EBF244|6A281303 Ну я и... ;P |
|
|
Дата: Сен 3, 2003 03:20:48 Взгляните на это: mov edx,magic_value imul edx,eax mov eax,0FFFFFFFFh sub eax,edx inc eax Вернёт в eax начальное значение точно после: mov edx,eax imul edx,dword mov eax,edx Но как вот отыскать этот magic value? И в чём тут вся "фишка"? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.035 |