Сейчас на форуме: zds (+5 невидимых)

 eXeL@B —› Программирование —› Запросы на сорцы
<< . 1 . 2 . 3 . >>
Посл.ответ Сообщение

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

Создано: 01 сентября 2010 12:02
· Личное сообщение · #1

Подобной темы не нашел, потому предлагаю постить тут.

Цель темы: Выкладывать запросы на сорец чего-либо.
Обоснование: Иногда чел хочет принести вклад в общество, либо ему хочется чего-то сделать, а вроде ничего и не надо, но кодить-то хочется! ;))) Тогда заглянув сюда, можно увидеть кому-чего надо и тем самым помочь не только себе, развитием навыков, но и другому, разработкой хоть какого-то готового куска кода.


Формат постов с запросами:
1) Цель сорца, т.е. что должно сделать функция
2) Язык разработки и нужны ли файлы проектов, солюшенов

Формат постов с решениями:
1) Указать номер поста, пример "#2"
2) Приложить файл с сорцами, проектами или еще чем-то
3) Указать возможные баги, т.е. на чем нужно потестить просившему решение
4) Указать ограничения, к примеру сервис пак винды

Формат постов с доработкой и просьбами улучшить:
1) Указать номера постов или последнего с выкладываем решением
2) Указать чего не хватает

Возможные правила:
Удаление постов не подходящих под форматы выше


ЗЫ:
1) Вот ща хочу чего-нить полезное сделать, так сказать дома в свободное время, но чего не знаю, вот и возникла подобная мысль )
2) Если модеры сочтут темой бредовой, не обижусь если удалят )




Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 08 сентября 2010 11:07
· Личное сообщение · #2

Av0id, да, правильно.

Av0id, yanus0 спасибо!

-----
StarForce и Themida ацтой!





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 09 сентября 2010 06:41
· Личное сообщение · #3

>> int пишет:
>> Ещё нужен парсер .h файлов (заголовочный файлы), а если конкретно, нужно вытаскивать прототипы
>> функций и их параметры. Парсить надо вплоть до выдирания всех структур со всей их вложенностью.

> Вот это более интересно. У меня даже есть готовое ТЗ на эту тему, прилагаю. Парсер требуется для
> Декомпилятора С++.

Делать парсер хедеров - это сильно унылое занятие, сравнимое по сложности с написанием того-же компилятора. А декомпилятор С++ - это во первых ересь, а во вторых он уже куплен Ильфаком =)
Даю наводку - парсить .pch/.pdb гораздо проще, хотя годика 4 назад, когда я обработал весь Platform SDK, осталалось некоторое количество экспортируемых функций, для которых не образовалось протототипов. Толи это был косяк парсера, толи их действительно небыло в .h файлах, толи я скомпилял не тот SDK - не разбирался, ибо моя задача была решена сполна




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 09 сентября 2010 06:56
· Личное сообщение · #4

> Там кто-то интересовался на счет zip-крякера под CUDA. На сколько я знаю алгоритм используемый в zip'е
> под CUDA будет работать ничуть не быстрее, чем на CPU, может даже медленее!!!

Это почему же? Старый zip-crypto - это практически банальный xor с перестановкой, новый - AES.
Сами алгоритмы естесно паралелятся хреново, да это для брутфорса и не надо - главное можно 100500 тредов запустить под разные пароли.
Могу попробовать, хоть и не сталкивался никогда, надо тока zlib и crc32 на куде написать, хотя, подозреваю, что все уже давно написано и вылизано - уж больно задача бенчмарковая.




Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 09 сентября 2010 08:06
· Личное сообщение · #5

DrGolova пишет:
А декомпилятор С++ - это во первых ересь, а во вторых он уже куплен Ильфаком

Ересь это то, что вы сказали... сперва нужно думать головой, а не выкладывать непроверенную инфу

-----
Everything is relative...




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

Создано: 09 сентября 2010 14:41
· Личное сообщение · #6

[offtop]
DrGolova
Я на досуге решил почитать про старую шифровку зипа. В связи с этим, у меня возник вопрос. Файл шифруется тремя 32хбитными ключами, а для проверки используется в лучшем случае 2 байта (CRC32 или времени). Получается, надо расшифровывать весь файл, если проверка прошла? И дальше считать CRC32 и сравнивать? Но тогда все равно можно на коллизии наткнуться. СRC32 - 32 бита, а ключей -96 бит. Получается, должно быть примерно 1<<64 коллизий? или там не все ключи возможны?

[/offtop]




Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

Создано: 09 сентября 2010 15:26 · Поправил: neomant
· Личное сообщение · #7

Offtop
Подсчёт CRC32 может и пройдёт верно, но это совсем не означает, что текст расшифрован правильно. Действительно валиден только один ключ.

-----
Следуй за белым кроликом




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

Создано: 09 сентября 2010 16:06 · Поправил: tomac
· Личное сообщение · #8

neomant
Так а как тогда понять, что расшифровали правильно? Что действительно валиден один ключ и так понятно, вопрос как понять, что он действительно валиден?

Предлагаю обсудить вопросы zip в ЛС, чтобы не засорять ветку.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 сентября 2010 16:17
· Личное сообщение · #9

DrGolova
А по вашему написать компилятор очень сложно? Если без оптимизации, то это пишется очень быстро. Не за пять минут, но всё же за разумное время. И нужен на самом деле не полноценный компилятор, а разбор лексический и синтаксический.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 09 сентября 2010 22:20
· Личное сообщение · #10

int
И нужен на самом деле не полноценный компилятор, а разбор лексический и синтаксический.

Если только лексический разбор то это интерпритатор, который куда проще чем компилятор

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 сентября 2010 22:26
· Личное сообщение · #11

Интерпретатор выполняет код, компилятор создаёт бинарный само выполняющийся код. Общая их часть, это лексический анализатор, синтаксический анализатор, семантический анализатор. Также часто цепляют конвертер в ПОЛИЗ.

Теперь внимание вопрос. К чему это написано:
Coderess пишет:
лексический разбор то это интерпритатор, который куда проще чем компилятор

?

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




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 10 сентября 2010 03:10
· Личное сообщение · #12

int
Теперь внимание вопрос. К чему это написано:

Не берите близко к сердцу, я вас не правильно понял, тоже писал интерпритатор Си подобного языка

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 10 сентября 2010 06:54
· Личное сообщение · #13

tomac CRC проверка не дает 100 проц. вероятности в том что файл оригинален, НО вероятность достаточно велика в твоем случае 1/ FFFFFFFF FFFFFFFF т.е. практически 100 проц. И применяеца потому что это достаточно быстрый способ с достаточной степенью вероятности определить оригинальность файла. Если ВЫ такой счастливчик и попадете в эту вероятно то лучше играйте в лотореи

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




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

Создано: 10 сентября 2010 12:34
· Личное сообщение · #14

VodoleY
Если ключей 96бит, а CRC32 - 32 бита, то вероятность получить коллизию - почти 100%. Ну, если считать, что CRC32 зависит от ключей и распределена равномерно. Вероятность - 1 - (FFFFFFFE/FFFFFFFF)^(FFFFFFFF FFFFFFFF FFFFFFFF)



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

Создано: 10 сентября 2010 16:26 · Поправил: geograph
· Личное сообщение · #15

Здесь http://www.golubev.com/blog/?p=112 у Ивана Голубева (который написал RAR-взломщик для CUDA) спрашивают на счет взлома zip-архивов с помощью CUDA на что он отвечает:
classic zip encryption isn’t that suitable for GPUs (especially for ATI ones) because of CRC32 (== lookup tables) and 32-bit multiplications usage. Can’t say for sure but there are some chances that GPUs will be even slower than CPUs for this task.
I’m planning to add plaintext and guawz attacks (with CPU usage only) for classic zip though, as they still can be very useful.




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

Создано: 10 сентября 2010 20:04
· Личное сообщение · #16

geograph
Из того, что я знаю о CUDA, lookup возможен достаточно эффективно в пределах небольшой таблицы. crc32, вроде бы, нужно 256 4-хбайтных чисел, то есть килобайт памяти. Такое должно влезть в shared память.



Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 11 сентября 2010 00:10
· Личное сообщение · #17

ИМХО лучше писать под SSE 4.1, где есть аппаратный crc32

-----
PGP key <0x1B6A24550F33E44A>




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 16 сентября 2010 00:15
· Личное сообщение · #18

Кстати парсер хедеров уже сделан в metasm:
code.google.com/p/metasm/source/browse/metasm/parse_c.rb



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

Создано: 16 сентября 2010 14:31
· Личное сообщение · #19

этих парсеров хедеров полно, достаточно загуглить "header parser"

например
ctags.sourceforge.net/
www.gccxml.org/

только на выходе все-равно затачивать под себя надо.

если не очень усложнять задачу, то можно парсер структур на перле и регексах сделать, будет не большим. у меня в 150 строк уместился - ищет структуры в h/c/cpp и на выходе выдает скрипт для иды.



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

Создано: 16 сентября 2010 18:13
· Личное сообщение · #20

Эм... будете смеяться =)
Уже месяц пишу пытаюсь закейгенить на дельфи крекми 4 от Фант0ма.
Если что буду рад сырцу (то ли я косорукий, то ли гугл просто не хочет показывать мне исходники )



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

Создано: 16 сентября 2010 22:33
· Личное сообщение · #21

doctor_flasher
Функция принимает имя, на выход даёт ключик. С эдитами и кнопочкой сообразишь )

Code:
  1. function gen(name: string): string;
  2. var
  3.   i: integer;
  4. begin
  5.   for i := 0 to length(name) - 1 do
  6.     begin
  7.       name[i+1] := chr( (ord (name[i+1]) + i xor i)     mod $1A + $41 );
  8.     end;
  9.   Result := name;
  10. end;





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 21 сентября 2010 03:42
· Личное сообщение · #22

> А по вашему написать компилятор очень сложно?

Может я отстал от жизни, но по моему - совсем не просто.
Особенно, если надо распарсить полтора гигабайта Platform SDK, написанного далеко не на стандартном С++
Йа неоднократно видел, как на этой задаче падают плашмя интеллисенсы, вижалассисты и прочие статические анализаторы кода, которые пишутся не первый год, и далеко не в одно рыло. Так что рекомендую протереть розовые очки.




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 21 сентября 2010 03:53
· Личное сообщение · #23

> Файл шифруется тремя 32хбитными ключами, а для проверки используется в лучшем случае 2 байта
> (CRC32 или времени). Получается, надо расшифровывать весь файл, если проверка прошла? И дальше
> считать CRC32 и сравнивать? Но тогда все равно можно на коллизии наткнуться. СRC32 - 32 бита, а
> ключей -96 бит. Получается, должно быть примерно 1<<64 коллизий? или там не все ключи возможны?

Таки да, контекст классического zip-crypto - 'всего' 3 дворда (48 бит) + офицальный backdoor с быстрой проверкой правильности пароля (после расшифровки 12-ти байтового salt'а последние 16 бита должны совпадать с младшим вордом TDS). Эту быструю проверку можно распараллелить на GPU.
А дальше - расшифровывать кандидатными ключами поток, и пытаться его распаковать, сравнивая результирующий размер и CRC32. Так, собственно, приходится делать для любых зашифрованных архивов. На кривых данных zlib распаковка тоже будет быстро обламываться. Но тем не менее - это банальный брутфорс, зоть и с кучей быстрых стоп-условий. Это тоже должно неплохо параллиться.



Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 февраля 2011 11:08
· Личное сообщение · #24

Просьба помочь новичку с примером на DELPHI простейшего трейсера,
умеющего атаковать программу в памяти и ставить Hardware breakpoint on execution.

Видел хорошие примеры от Hellspawn и PE_Kill, тут и тут был.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 февраля 2011 13:26
· Личное сообщение · #25

"Простейшего" и "Hardware breakpoint" трудновато совместить. Работа с тредами, синхронизация их контекстов, битовые флаги DRx регистров. ИМХО ты не стой стороны к задаче подошел.

-----
Yann Tiersen best and do not fuck




Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 19 февраля 2011 13:59 · Поправил: VodoleY
· Личное сообщение · #26

harad
http://users.iafrica.com/d/da/dart/zen/zen.html
Может поможет, когдато искал, для делфи лучшего не нашел
Там хардваре нету,но основные структуры все уже есть.

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 февраля 2011 15:07
· Личное сообщение · #27

Спасибо за примеры, как чувствовал что тут помогут.
Начну изучать.



Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 февраля 2011 08:38
· Личное сообщение · #28

PE_Kill пишет:
"Простейшего" и "Hardware breakpoint" трудновато совместить. Работа с тредами, синхронизация их контекстов, битовые флаги DRx регистров. ИМХО ты не стой стороны к задаче подошел.


Дорогу осилит идущий.
Флаги, треды - рога до копыта остались от них.
Разобрался в теме:


MiniDebug.zip

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




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 20 февраля 2011 09:13
· Личное сообщение · #29

Я лишь сказал, что слово "простейший" тут никак не подходит, а то, что всё можно сделать - это лишь вопрос времени. Сюда бы и прилепил исходник.

-----
Yann Tiersen best and do not fuck




Ранг: 488.1 (мудрец), 272thx
Активность: 0.350
Статус: Участник

Создано: 23 февраля 2011 10:21
· Личное сообщение · #30

а никто случайно не писал плагины под ольку на делфе, Plugin.h переписанный хотелось бы в студию

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 23 февраля 2011 10:36
· Личное сообщение · #31

VodoleY пишет:
а никто случайно не писал плагины под ольку на делфе, Plugin.h переписанный хотелось бы в студию

Старо как мир.

432e_22.02.2011_CRACKLAB.rU.tgz - OllyDbg.7z

-----
Лучше быть одиноким, но свободным © $me


| Сообщение посчитали полезным: VodoleY
<< . 1 . 2 . 3 . >>
 eXeL@B —› Программирование —› Запросы на сорцы
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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