Автор Тема: заменить crc32 на нужный  (Прочитано 9796 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
заменить crc32 на нужный
« : 21 Сентябрь 2010, 18:06:45 »
нужна прога.
p.s. (в 9Index и gogl) не посылать.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #1 : 21 Сентябрь 2010, 18:20:53 »
Пошутил?)) Посути не рассказал чегео надо ). Ещё надо догадываться? Додумывать задание? :)
Первое до чего догадываюсь более полно звучит так: заменить crc32 на нужный crc32.

Сразу бросается в глаза бред: как можно заменить crc32 на данном файле на другой crc32? Только изменением файла. Но при изменении файла - поменяется crc32 и для данного файла, получится что crc32 оригинальный то есть не изменённый. Меняется файл -> меняется crc32. Тогда постановка задачи должна быть другой: поменять файл так, чтобы crc32 сумма сменилась на нужную. В чём различие? - Никаких crc32 мы не меняем, мы подбираем изменение файла. Тогда другой вопрос поднимается - какие ограничения на изменения файла? Ктому же никто не сказал что crc32 у файла.

Теперь получается что ещё и неизвестно у чего crc32 менять.

Вторую трактовку задачи придумал: заменить crc32 на нужную функцию чексуммы ). Короче можно гадать, на этих парочке строчек. Задача не ясна. Пытайтесь изложить задачу полностью.

Добавлено позже:
Третья трактовка: гдето тусит значение crc32 чексуммы, его нужно автоматически пересчитать.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #2 : 21 Сентябрь 2010, 18:27:08 »
Цитата
Тогда постановка задачи должна быть другой: поменять файл так, чтобы crc32 сумма сменилась на нужную
да это и имеется ввиду. ну например 4нуля в конце файла. если мало там ~полметра нулей, файл 2метра.
требуемый счас скажу:  01 1B C1 AD    текущий (C1 3F C6 D0)

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #3 : 21 Сентябрь 2010, 18:32:11 »
Эта задача не из лёгких. Тоже самое что брутать пароль, или даже сложнее. Чексумма хотя и достаточно простая, то если использовать методы простого брута - то немало времени уйдёт. А если делать умный брут - то надо много знать по криптографии или теории чисел, точно не знаю. Ознакомься если есть время с самой чексуммой... и подумай сколько будет времени брутать. Я даже предположить не могу.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #4 : 21 Сентябрь 2010, 18:36:20 »
Чексумма хотя и достаточно простая, то если использовать методы простого брута - то немало времени уйдёт.
тогда убей процедуру проверки чексуммы при соединение по сети во kega fusion версии v3.63. (ошибка 'WRong rom')
я проверил там проверяется именно она (нашел подброщик только файл создавть умеет)

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #5 : 21 Сентябрь 2010, 18:41:33 »
Берёшь эту же IDA pro используешь абсолютно теже методы что и с сегой. Но ты наверно тот метод не использовал никогда, который я часто использую... о нём описано в начале http://elektropage.ru/index.php/2010-08-18-20-47-04/38------q----q
Когда разберусь со своими траблами - займусь много чем ) может и это тоже допишу, обещал пример так и не сделал  :unsure:

Добавлено позже:
Ой ошибся, в середине со слов "Теперь два подхода."

Оффлайн УльтраБлокС

  • Пользователь
  • Сообщений: 1166
  • Пол: Мужской
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #6 : 21 Сентябрь 2010, 18:47:01 »
Для CRC32 есть алгоритмы поиска коллизий. Но я не натыкался на реализацию оного на любом из языков программирования (всмысле сорцы).

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #7 : 21 Сентябрь 2010, 19:00:55 »
Нетрудно было догадаться что есть ))). Даже у MD5 есть алгоритмы поиска коллизий, тока время которое они затрачивают... Я тоже на сырцы не натыкался.

Добавлено позже:
Ой ошибся, в середине со слов "Теперь два подхода."
Кстати этим методом я мучал StarCraft 2 Installer успешно )) даже хотел уже сделать брут ключа дешифрования ) но... подсчитал что до релиза времени не хватит )) такчто толку нет.

Добавлено позже:
(ошибка 'WRong rom')
Поищи String reference на 'Wrong rom" может чего найдёшь )). поставь туда бряк, и смотри где оно вызывается. Ещё есть call stack ). В Ida Pro встроен отладчик x86 (для винды).

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #8 : 21 Сентябрь 2010, 19:02:53 »
Но ты наверно тот метод не использовал никогда, который я часто использую... о нём описано в начале
ну если ты про дебаг, откуда я узнаю адреса куда ставить? или повсюду проверять?
и вообще у меня его нет, ты говорил вроде в студии есть , но её надо ставить это раз, во-вторых надо знать как его юзать это два, в третьих в твоей статье об этом ничего не сказано, в 4-ых надо наверное еще X86 знать.(чтобы хоть примерно видеть).    
выходит заменить/подобрать проще... (но готовый подброщик я не нашел.), а если неготовые опять же надо ставить студию и учить C++, чтобы его запустить.
кому охота стока возится?никому. поэтому и спрашиваю.





Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #9 : 21 Сентябрь 2010, 19:13:49 »
Если вылетает в окошечке так называемом "MessageBox" поищи в функциях импортированных её. т.е. MessageBoxA,MessageBoxW,MessageBoxExA.MessageBoxExW вроде так они называются... и на них бряки поставь... и во время такой ошибки должен сконать бряк, если не сконает - значит юзают что-то другое. Аналогично строку Wrong rom могут зашифровать чтобы не нашли - например прибавлением к каждому символу единицы - самое тупое сокрытие ).

Добавлено позже:
ну если ты про дебаг, откуда я узнаю адреса куда ставить? или повсюду проверять?
Метод позваляет находить подпрограмму сокращая поиск сначала с полной проги (диапазон все адреса), до нескольких подпрограмм. Такчто адреса ты не знаешь, но УЗНАЕШЬ ) если ты осознал как и на каких принципах работает. А команды знать не надо )).

и вообще у меня его нет, ты говорил вроде в студии есть , но её надо ставить это раз,
И что, что я говорил что в студии есть, это не означает что только в студии, я сказал что в IDA Pro встроен для x86.
во-вторых надо знать как его юзать это два,
Все они одинакого используются. Step In, Step Over, Run. ещё бывают некоторые фишки.

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

в 4-ых надо наверное еще X86 знать.(чтобы хоть примерно видеть).
Заблуждения.

выходит заменить/подобрать проще... (но готовый подброщик я не нашел.),
Может проще, но время подбора для разных чексум может быть до нескольких лет, и даже столетий. Примером этому служит брутер Rar. Самые лучшие которые я видел 11 паролей в секунду перебирают ).

а если неготовые опять же надо ставить студию и учить C++, чтобы его запустить.
Заблуждение.

кому охота стока возится?никому. поэтому и спрашиваю.
Ты типа на форум вышел и написал: "Халява прийди! Халява прийди!". )) Логично что никому не охото, причём непонятно кому делать. Единственный варьянт, либо ты сам, либо найти того кто уже это сделал, или найти человека с общими интересами.

Добавлено позже:
Ах да, самый нормальный варьянт - заплатить кому-нить )) пусть сделает.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #10 : 21 Сентябрь 2010, 19:14:50 »
так он не встроен, кажется она должна называться IDA.5.2+WINCEdebugger(он)?, а у меня просто IDA_Pro_Advanced_v5.2.rar , во всяком случае у себя я его не видел, где он должен быть?, так что этот вариант отпадает.

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #11 : 21 Сентябрь 2010, 19:17:24 »
кидаешь в дизасм exe-шник, в меню должно добавится Debug->Start и прочее.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #12 : 21 Сентябрь 2010, 20:33:56 »
кидаешь в дизасм exe-шник, в меню должно добавится Debug->Start и прочее.
понял фишку, меню не появляется если открыть уже готовую базу, надо заново экзе-файл каждый раз открывать. (видимо это просто баг, из-за того что база старая была)
но всё равно вариант с 'подгоном' всё таки лучше, по некоторым причинам.

Добавлено позже:
Заблуждение.
заблуждение что? неготовый, т.е. исходники какие-то или формулы? и что я с ними сделаю??

а в статье твоей один мусор, и где-ж ты там все дебаггеры объяснял? ты только 1строчку написал что надо использовать, причем даже не написал что это такое, и где взять.
полстатьи - это описание про то как убить об стену, далее вообще непонято что идёт, описание всяких hex-чисел и xor.  
то есть по твоей статье я уже нашел " 'Ага, теперь мы нашли кусок кода', а потом уже идет описание что такое hex-числа.  далее приводится список 'битовых' операций, почему именно они? а потом описание сеги, (а причем тут сега если статья назыв. ломать всё как угодно?).  и уже приводишь из RRR где этих битовых флагов я даже не примомню(это в dune их навалом), только байтовые.



Добавлено позже:
Примером этому служит брутер Rar. Самые лучшие которые я видел 11 паролей в секунду перебирают ).
Ты типа на форум вышел и написал: "Халява прийди! Халява прийди!". )) либо найти того кто уже это сделал
написано же ИЩЕТСЯ ПРОГА (вариант Б."того кто уже это сделал"). что Непонятно??

Добавлено позже:
http://forum.antichat.ru/showpost.php?p=382222&postcount=1
вот описание, и прога там даже есть, но она только с экзе файлами работает.

Оффлайн УльтраБлокС

  • Пользователь
  • Сообщений: 1166
  • Пол: Мужской
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #13 : 21 Сентябрь 2010, 20:36:37 »
Цитата
но она только с экзе файлами работает.

Я так и не врубился где нужно чексумму править: В эмуле? В РОМе?

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #14 : 21 Сентябрь 2010, 21:03:06 »
Я так и не врубился где нужно чексумму править: В эмуле? В РОМе?
именно в роме, причем можно даже в двух. (главное чтобы одинаковая стала)

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #15 : 21 Сентябрь 2010, 21:45:34 »
Добавлено позже:заблуждение что? неготовый, т.е. исходники какие-то или формулы? и что я с ними сделаю??
Оу, извени мой косяк... клинонуло - хрень написал ).

а в статье твоей один мусор,
Может и мусор, но так и есть. Пока ты смотришь на это как на "мусор" - он для тебя и останется мусором. Там расписывал как я мог идею. Главное - идея, а реализация может быть разной. И пытался побольше юмора добавить кому-то неинтересного.

и где-ж ты там все дебаггеры объяснял? ты только 1строчку написал что надо использовать, причем даже не написал что это такое, и где взять.
Незнаю про какую ты строчку, но я "второй подход" неслабо расписал на 3 абзаца если не больше (непомню лень заглядывать).

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

далее вообще непонято что идёт, описание всяких hex-чисел и xor.
Оу, это я уже в конкретику полез, и остановился на полшаге.

то есть по твоей статье я уже нашел " 'Ага, теперь мы нашли кусок кода',
Нашел кусок кода нужный? Маладец, кури этот кусок - исправь переходы и хак готов.
а потом уже идет описание что такое hex-числа.
Для тех кто не знает как это просто считается.

и уже приводишь из RRR где этих битовых флагов я даже не примомню(это в dune их навалом), только байтовые.
В RRR битовые - нажатия клавишь. Спрайты, и это не всё.

http://forum.antichat.ru/showpost.php?p=382222&postcount=1
вот описание, и прога там даже есть, но она только с экзе файлами работает.
Ну хорошо что естЬ, только она тебе же не подходит ).

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #16 : 21 Сентябрь 2010, 23:19:40 »
Нашел кусок кода нужный? Маладец, кури этот кусок - исправь переходы и хак готов.Для тех кто не знает как это просто считается.
В RRR битовые - нажатия клавишь. Спрайты, и это не всё.
Ну хорошо что естЬ, только она тебе же не подходит ).
ты не понял: читая твой статью я должен уже уметь ломать код ( а только потом дается объяснения hex и прочего), не ты ли мне про азы говорил?? что начинать нужно с них? у тебя они не пойми как - в середине и конце.  
а я читаю статью (сверху-вниз) и что вижу? что такое дебагер , как изменить  кусок кода об этом не сказано-нет. а сразу говорится сделай это, а потом учись hex считать и про биты, но если я уже это знаю, то мне не нужно читать всю нижнюю часть статьи.

джойстики везде так сделаны, ну спрайты и не всё? и ВСЁ? а остальное 95% игры не биты! (а rts/jsr/move/add/ beq/bne и прочее, логики хватает тоже и что? не с нее же начинать)

Ну хорошо что естЬ, только она тебе же не подходит ).


« Последнее редактирование: 21 Сентябрь 2010, 23:26:52 от Ti_ »

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #17 : 21 Сентябрь 2010, 23:33:57 »
Еслиб ты внимательно читал статью на которую ссылку давал, то там делается XOR маска... и вообще он ничего не фиксит, просто ему вводится offset где фиксануть 4 байта, и текущий->новый CRC32 и работает не только на ехе-шники.
ты не понял: читая твой статью я должен уже уметь ломать код ( а только потом дается объяснения hex и прочего), не ты ли мне про азы говорил?? что начинать нужно с них? у тебя они не пойми как - в середине и конце.
Кроме идеи я низачё не раздувал вроде... дай цитату.

джойстики везде так сделаны, ну спрайты и не всё? и ВСЁ? а остальное 95% игры не биты! (а rts/jsr/move/add/ beq/bne и прочее, логики хватает тоже и что? не с нее же начинать)
Эээ ты сталкивался с форматом графики в SNES? без битового представления вообще непонятно ничего. Я не говорю что битовая фигня это главное, но это тоже надо. С хексом надо дружить, иначе толку 0 будет.

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

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #18 : 22 Сентябрь 2010, 19:15:57 »
Вот этот исходник с твоей ссылки посути и надо тебе скомпилить, я пробовал искать скомпилленный, чтобы поймать на понт, что прога уже есть, но блин, так и не смог )).

#include<stdio.h>
unsigned long c,c2,p2,pol=0xEDB88320;
long n,k;
main()
{
printf("CRC32 Adjuster (c) 2001 by RElf @ HHT/2\n");
printf("Length of data: "); scanf("%ld",&n);
printf("Offset to patch: "); scanf("%ld",&k);
n = (n-k)<<3;
printf("Current CRC32: 0x"); scanf("%x",&c);
printf("Desired CRC32: 0x"); scanf("%x",&c2);
c ^= c2;
p2 = (pol << 1) | 1;
while(n--) if(c&0x80000000) c = (c<<1)^p2; else c<<=1;
printf("XOR masks:%02X%02X%02X%02X\n",c&0xff,(c>>8)&0xff,(c>>16)&0xff, c>>24);
}

Может скомпилю, а так... кроме студии есть и другие вещи которыми можно компилить... DevCPP и прочее...
« Последнее редактирование: 22 Сентябрь 2010, 19:30:34 от r57shell »

Оффлайн УльтраБлокС

  • Пользователь
  • Сообщений: 1166
  • Пол: Мужской
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #19 : 22 Сентябрь 2010, 19:37:59 »
Цитата: r57shell
Может скомпилю, а так... кроме студии есть и другие вещи которыми можно компилить... DevCPP и прочее...

Кстати gcc не компилирует:

crc32.c:15: error: expected ‘)’ before numeric constant

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #20 : 22 Сентябрь 2010, 19:43:07 »
Кстати gcc не компилирует:

crc32.c:15: error: expected ‘)’ before numeric constant
Был косяк когда я сорц воткнул, в 15-й строчке там где я теперь поправил было "1 6" теперь "16". Такчто не парься ).

Добавлено позже:
Ещё кроме того когда я компилил, я перед main() написал int main(), т.к. так правильнее, ну и логично return 0; в конце.

Добавлено позже:
Кстати вполне логичный алгоритм, можно на стандартных свойствах сдвигов и ксоров доказать что он корректен.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #21 : 22 Сентябрь 2010, 20:05:23 »
я пробовал искать скомпилленный, чтобы поймать на понт, что прога уже есть, но блин, так и не смог )).
вот и я не нашел, только траффик сжег.
так что тебя можно поздравить с созданием первого CRC фиксатора доступного для всех.
« Последнее редактирование: 22 Сентябрь 2010, 20:09:19 от Ti_ »

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #22 : 22 Сентябрь 2010, 20:12:43 »
Не с созданием а с компилированием.

Оффлайн УльтраБлокС

  • Пользователь
  • Сообщений: 1166
  • Пол: Мужской
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #23 : 22 Сентябрь 2010, 20:26:39 »
Хех, прикольная штука. Даже сам файл не нужен. Только нужно будет чем-то ещё поXORить файл...

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #24 : 22 Сентябрь 2010, 20:28:27 »
XOR-ить можно комплектом: стандартный калькулятор + какой-нить хекс редактор.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #25 : 22 Сентябрь 2010, 21:34:15 »
Хех, прикольная штука. Даже сам файл не нужен.
да и кода мало, интересно можно ли на сегу написать (ради интереса), хотя в stdio.h (а чего то читается?рассчеты все)

Оффлайн r57shell

  • Пользователь
  • Сообщений: 1402
    • Просмотр профиля
Re: заменить crc32 на нужный
« Ответ #26 : 22 Сентябрь 2010, 22:40:17 »
stdio.h - стандартный ввод/вывод - короче считывание данных.