Сейчас на форуме: Magister Yoda, subword (+9 невидимых)

 eXeL@B —› Основной форум —› R-Wipe&Clean 7.6 - замусоривание кода?
Посл.ответ Сообщение

Ранг: 52.1 (постоянный), 1thx
Активность: 0.020
Статус: Участник

Создано: 28 мая 2008 22:42
· Личное сообщение · #1

Программа R-Wipe&Clean 7.6
Предназначена для безопасного удаления файлов и конфедициальной инфц-ии.

Программа работает 15 дней, предлагая зарегистрироваться.

Вот участок кода (из RWipe.dll):
102D364E |. 85C9 TEST ECX,ECX ; ! If length <> 0 then Jamp
102D3650 |. 75 07 JNZ SHORT RWipe.102D3659
102D3652 |> 33C0 XOR EAX,EAX ; ! Result := False
102D3654 |. E9 0D040000 JMP <RWipe.RegFunc_Exit> ; ! Exit
102D3659 |> C785 84FDFFFF >MOV DWORD PTR SS:[EBP-27C],RWipe.10311EC>
102D3663 |. C785 84FDFFFF >MOV DWORD PTR SS:[EBP-27C],RWipe.10311EC>
102D366D |. 8D85 84FDFFFF LEA EAX,DWORD PTR SS:[EBP-27C]
102D3673 |. 50 PUSH EAX ; /Arg2
102D3674 |. 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8] ; |
102D3677 |. 51 PUSH ECX ; |Arg1
102D3678 |. 8D8D 88FDFFFF LEA ECX,DWORD PTR SS:[EBP-278] ; |
102D367E |. E8 ED030000 CALL RWipe.102D3A70 ; \RWipe.102D3A70
102D3683 |. 8B95 88FDFFFF MOV EDX,DWORD PTR SS:[EBP-278] ; ! must return EDX > 0
102D3689 |. 81E2 FFFF0000 AND EDX,0FFFF ; ! gets low word
102D368F |. 83E2 01 AND EDX,1 ; ! gets bit0
102D3692 |. 85D2 TEST EDX,EDX
102D3694 |. 75 07 JNZ SHORT RWipe.102D369D ; ! if EDX = = then Exit with Zero
102D3696 |. 33C0 XOR EAX,EAX
102D3698 |. E9 C9030000 JMP <RWipe.RegFunc_Exit>
102D369D |> 68 2083B8ED PUSH EDB88320 ; /Arg1 = EDB88320
102D36A2 |. 8D8D 6CF9FFFF LEA ECX,DWORD PTR SS:[EBP-694] ; |! ^- CRC Polynom
102D36A8 |. E8 A3050000 CALL RWipe.102D3C50 ; \RWipe.102D3C50


В 102D3A70 вызывается пара функция - первая неинтересна, а вот вторая - ее размер 4674 byte, встречаестя код вроде:
MOV DWORD PTR SS:[EBP-F0],EAX
MOV EАX,DWORD PTR SS:[EBP-F0]


Иногда встречаются условные переходы, которые (не)выполняются всегда.

Как раз читал статейку Касперского про замусоревание кода., это может быть что-то подобное, уж больно код мутный?

P.S. Кстати маленько поискав не нашел кейгена к этой программе, только патчи.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 29 мая 2008 06:29
· Личное сообщение · #2

Wyfinger пишет:
MOV DWORD PTR SS:[EBP-F0],EAX
MOV EАX,DWORD PTR SS:[EBP-F0]

Это еще цветочки. Видел гораздо масштабнее конструкции. Просто компилятор без оптимизации.

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 52.1 (постоянный), 1thx
Активность: 0.020
Статус: Участник

Создано: 29 мая 2008 07:19
· Личное сообщение · #3

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

Это я привел к примеру, там есть и более хитрые вещи, например сначала строка ключа затирается нулями, что-то вычисляется, потом опять туда заносится ключ, снова вычисления, результаты которых никуда не идут. Да и какой программист в здравом уме будет писать такие длинные процедуры, есть же золотое правило: процедуру длиньше 15 строк не делать.

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



Ранг: 52.1 (постоянный), 1thx
Активность: 0.020
Статус: Участник

Создано: 29 мая 2008 13:04
· Личное сообщение · #4

Нет, это все-таки не замусоривание.. просто тупой компилятор.


 eXeL@B —› Основной форум —› R-Wipe&Clean 7.6 - замусоривание кода?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати