Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+5 невидимых)

 eXeL@B —› Программирование —› Мусорный код в программах
Посл.ответ Сообщение

Ранг: 6.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 07 апреля 2008 23:52
· Личное сообщение · #1

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




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 08 апреля 2008 00:27
· Личное сообщение · #2

Речь наверное идёт о коде для распаковки программы... Так он становится "мусорным" после снятия пакера, т.к. больше не нужен

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 6.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 08 апреля 2008 04:08
· Личное сообщение · #3

Isaev
Остается ли у него (мусорного кода) какая либо привязка к программе, пусть даже ничего не значащая или он целиком принадлежит пакеру?




Ранг: 271.6 (наставник), 2thx
Активность: 0.30
Статус: Участник

Создано: 08 апреля 2008 06:28
· Личное сообщение · #4

Isaev
нене. походу не то.
Tiratron пишет:
Вопрс состоит в том, каким образом мусорный код создается?

Мусорный код может быть например полиморфным, то есть например как вычисление:

Первый вид: 2+2=4
Второй вид: 6-2=4
Третий вид: 5+6/2-4=4


Исходя из этого можно понять, что к одному результату ведут множество методов.

Возможно, что в защищаемой программе будет зашит какой-то определенный мусорный код. (Смотри аттач. Там мой крякмис с мусорным кодом и без него. Открой в дизасме или отладчике и поймешь=)

Tiratron пишет:
Остается ли у него (мусорного кода) какая либо привязка к программе, пусть даже ничего не значащая или он целиком принадлежит пакеру?

В 80% случаев у муснорного кода снятого протектора нет привязки к защищаемой программе, то есть наоборот: у защищаемой программы нет привязки к коду протектора.

be33_07.04.2008_CRACKLAB.rU.tgz - Primers.rar

-----
iNTERNATiONAL CoDE CReW





Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 08 апреля 2008 07:01
· Личное сообщение · #5

Tiratron, зависит от пакера - иногда это мёртвая секция с упакованым кодом, а иногда зашифрованые куски, которые вызывает прога...



Ранг: 9.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 08 апреля 2008 07:12
· Личное сообщение · #6

Spirit, ты забыл еще про Confusing Disassemblers
К примеру PESpin юзает такие вот конструкции
Junkdb.cfg:

PatList_PESpin=_P1,_P2,_P3,_P4

[CODE_P1]
; call m1
; m2: jmp m3
; db _junkcode
; m1: jmp m2
; db _junkcode
; m3: add dword ptr [esp],0C
; retn
; db _junkcode
;
S=E803000000EB04??EBFB??8304240CC3??
R=9090909090909090909090909090909090

[CODE_P2]
...

тоже мусор..

а терь ТС, расскажи нам про что ты хотел спросить)))




Ранг: 271.6 (наставник), 2thx
Активность: 0.30
Статус: Участник

Создано: 08 апреля 2008 07:16
· Личное сообщение · #7

_taha_
Дык я же не буду рассматривать каждый известный мне прот, и тараканов, которые заюзол аффтар.
Я лишь привел пример, для того, чтобы топикстартер понял суть. А глубже рулед только гугл и книжки.

-----
iNTERNATiONAL CoDE CReW




Ранг: 9.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 08 апреля 2008 07:39
· Личное сообщение · #8

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



Ранг: 6.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 08 апреля 2008 11:11
· Личное сообщение · #9

Spirit
Спасибо за пример, буду разбираться.
Из всего вышесказанного следует, что мусорный код, не совсем является мусором. Я это веду к тому, что может ли у определенных пакеров присутствовать свой мусорный код?



Ранг: 9.7 (гость)
Активность: 0.010
Статус: Участник

Создано: 08 апреля 2008 11:57
· Личное сообщение · #10

>>Из всего вышесказанного следует, что мусорный код, не совсем является мусором.
Это когда как..

2+2=4 и 5+6/2-4=4
не совсем мусор.. это обфускация

Пример 1:

xor al,al
test al,al
jnz metka1
je metka2
metka1: db 0xFF
metka2: call blabla

Все выше call blabla - просто мусор...

Пример 2:

macro stdcall proc,[args]
{ reverse
push args
common
db 0xEB ; <- мусор
call proc }

Тебе решать является ли мусорный код просто мусором или несовсем!

Найди книжку Reversing_Secrets_of_Reverse_Engineering, там простым(английским) языком написано про Code Obfuscation, Confusing Disassemblers и тп




Ранг: 271.6 (наставник), 2thx
Активность: 0.30
Статус: Участник

Создано: 08 апреля 2008 11:57
· Личное сообщение · #11

Tiratron пишет:
Я это веду к тому, что может ли у определенных пакеров присутствовать свой мусорный код?

Как уже было сказанно выше, после снятия пакера, код депака становится мусорным. То есть он уже не выполняется, в него не пишутся данные и с него не читаются данные.
А вот если брать к примеру всем изветный ASProtcet, то там уже идет другая система. Этот протектор может "воровать" определенное количество байт с оригинальной точки входа в программу. и после снятия прота на месте ОЕП'a будет уже не нормальное начало, а нули, либо еще какие-нибудь байты.

-----
iNTERNATiONAL CoDE CReW




Ранг: 6.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 08 апреля 2008 12:59
· Личное сообщение · #12

_taha_
К сожалению простой английский язык по причине некоторой лени мне недоступен. А из книг на русском языке, в наличии только "Ассемблер и дизассемблирование" В. Пирогова и Крис Касперски, Ева Рокко "Искусство дизассемблирования", последнюю 3 дня назад взял и еще внимательно не посмотрел. А у Пирогова штудирую РЕ-формат.
Spirit
Посмотрел примеры. Понял одно, что если аккуратно в программе намусорить, то без хорошего знания ассемблера разобраться будет трудно. Линейку ASProtect прохожу, начал VM, вот поэтому и возник этот вопрос.




Ранг: 271.6 (наставник), 2thx
Активность: 0.30
Статус: Участник

Создано: 08 апреля 2008 13:46
· Личное сообщение · #13

Tiratron пишет:
английский язык по причине некоторой лени мне недоступен

Так далеко не уйдешь.
Tiratron пишет:
Понял одно, что если аккуратно в программе намусорить, то без хорошего знания ассемблера разобраться будет трудно

Если и не мусорить тяжело разобраться без знаний.
Tiratron пишет:
Линейку ASProtect прохожу, начал VM, вот поэтому и возник этот вопрос.

По аспру и особенно ВМ у нас рулед внекрилов, лучше с ним пообщайся.

-----
iNTERNATiONAL CoDE CReW




Ранг: 38.3 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 08 апреля 2008 17:19
· Личное сообщение · #14

Spirit
Над было наверное к своему кейгенми и исходник выложить, интересно всё-таки посмотреть. Мусор конешн жосткий, прирост в файле в 1.5 раза .

fsg1.0, сам файл пожат этим же fsg, а дальше идёт код разбавленный мусором (sal eax, 0 \ jl xxx), довоьно просто, можно даже статически "раскриптовать". Мож есть у кого пару простеньких исходничков с нечто подобным. Мож даж самого fsg1.0 .
Так, для общего развития пригодитцо.



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 08 апреля 2008 22:59
· Личное сообщение · #15

Spirit
неинтересный мусор в крякми - очень просто чистится шаблонами.




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 08 апреля 2008 23:06
· Личное сообщение · #16

ssx пишет:
чистится шаблонами

Хмм... Это как? В иде что ли?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 08 апреля 2008 23:33
· Личное сообщение · #17

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


 eXeL@B —› Программирование —› Мусорный код в программах
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати