Sacar777
offline
Опыт:
2,024Активность: |
Спаззлер, вопрос касается больше программного языка.
Спаззлер, вопрос касается больше программного.
Разобрал весь его алгоритм работы, кроме одного фрагмента, не могу понять откуда оно берется. Сам не учил С++ mo[1] = "MPQ" + chr(0x1b) + chr(0x20) + chr(0x00) + chr(0x00) + chr(0x00) + x[8:12] + chr(0x01) + chr(0x00) + x[14:28] + c + x[32:] "с" вот его я и не могу понять. Исходя из кода он берется в этой функции def _p1(c): a = [hex(ord(c[0])).replace("0x",),hex(ord(c[1])).replace("0x",""),hex(ord(c[2])).replace("0x",),hex(ord(c[3])).replace("0x","")] return _p2(a[3]) + _p2(a[0]) + _p2(a[1]) + chr(ord(_p2(a[2]))-1) Например, изначальная карта имеет значения 84 (hex) после спззлера оно стало 01 По какой системе это исчисляется. Заранее спасибо П.с. не нашел куда лучше задать этот программный вопрос, но т.к. он относится к вару и протекту спаззлер, решил что академия именно то место. |
10.06.2013, 10:10 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Fakov
Viva la Fa
offline
Опыт:
102,018Активность: |
спаззлер питоновский.
это не исчислается. скорее всего была найдена сумма байт при котором заголовок считывается как битый или равноценно битый. Вывод сделан из того, что такие "равноценно" битые суммы байт могут быть найден почти в любом месте. Другой вопрос - прием поиска такой суммы. |
10.06.2013, 10:25 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Buulichkaa
Делаю спеллы за еду
offline
Опыт:
20,171Активность: |
*и тут мне впервые стало страшно за людей использующих протекторы* |
10.06.2013, 10:27 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sacar777
offline
Опыт:
2,024Активность: |
ну как то же можно узнать изначальное число, например утилита ZxZ Despazzler она восстанавливала это число, значит способ есть, не перебором же перебирать все числа) |
10.06.2013, 10:48 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Fakov
Viva la Fa
offline
Опыт:
102,018Активность: |
деспаззлеры работают на обратном алгоритме от спаззлера. один из первых таких деспаззлеров появился тут |
10.06.2013, 10:49 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Buulichkaa
Делаю спеллы за еду
offline
Опыт:
20,171Активность: |
Sacar777, цыкл в руки и бесконечное количество итераций |
10.06.2013, 10:56 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sacar777
offline
Опыт:
2,024Активность: |
если бы делать через программу, то да, цикл, но я делаю руками, а каждый раз менять\сохранять и тд долгий процесс для всех возможных комбинации) |
10.06.2013, 10:58 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Fakov
Viva la Fa
offline
Опыт:
102,018Активность: |
для подбора 4 байт в хексе таким образом потребуется чуть больше 20 лет. брутфорс тут не катит) я искал алгоритм подмены суммы байт заголовка - но он видимо канул в лету. Найденной информации не хватает чтобы хотя бы предположить, какая закономерность используется для подмены. |
10.06.2013, 11:00 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
учитесь обратной разработке, берёте функцию, меняете в ней значения на единичку в рандомных местах, смотрите результат, делайте выводы.
char это виртуальный тип, на самом деле это byte, то есть просто число 0-255
84 даёт 01, смотрите что даёт 85 потом 86 потом 8f потом 90 и так далее, боже мой ну проявите вы хоть немножечко смекалки. |
10.06.2013, 11:01 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Fakov
Viva la Fa
offline
Опыт:
102,018Активность: |
так упороться можно. профит от бестолкового изменения и сравнения маловат. спаззлер независимо от исходного значения меняет байт, на заранее известное число. у мпку заголовок всегда одного значения. |
10.06.2013, 11:07 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sacar777
offline
Опыт:
2,024Активность: |
обратный подбор тоже не прокатит, сейчас в карте под спраззлером изменил число 01 на другое, к примеру 74. итог при депротекте все же выдало 84. число от чего то зависит, но не известно от чего. |
10.06.2013, 11:14 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Fakov
Viva la Fa
offline
Опыт:
102,018Активность: |
>___< говорю же - у спаззлера в алгоритме уже стоит на какое значение какой байт менять. и у деспаззлера стоит думать - тоже самое, так как у mpq архивов, коим является карта .w3x заголовок одного значения. но вот если делать смещение на 10 байт вперед, например на 0x2C или 0x2D - то там уже обратное изменение не прокатит, так как в каждой карте байты по этому адресу разные(там техническая информация по карте хранится) |
10.06.2013, 11:18 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|