41

Re: Шлях на криптографічну вершину

Щось інше - пошук колізій в імпортах функції длл (MessageBoxA - назва функції, за нею програми імпортують хвункції цієї длл). Я мав на увазі спарсити назви хвункцій та перевірити на колізії геш хвункції  за допомогою них

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: 221VOLT1

42

Re: Шлях на криптографічну вершину

Добре, пізніше пропарсю, повідомлю результати.

Yml0Y29pbjoxNmVTc0NyOXJySHBTV
DlGVmZjamV5djh5ZEtHM1NuNFNaCm
RvZ2Vjb2luOkROdXhrWExCaEh6eE1
wajFwbWhSdGlKWXZvWXJRckNiQjc=
Подякували: 0xDADA11C7, 221VOLT2

43 Востаннє редагувалося /KIT\ (10.12.2017 18:48:00)

Re: Шлях на криптографічну вершину

Я вас щиро вітаю: колізій нема! Аргументи функції стандартні.
Назви брав тут: http://www.geoffchappell.com/studies/wi … nel32/api/

Yml0Y29pbjoxNmVTc0NyOXJySHBTV
DlGVmZjamV5djh5ZEtHM1NuNFNaCm
RvZ2Vjb2luOkROdXhrWExCaEh6eE1
wajFwbWhSdGlKWXZvWXJRckNiQjc=
Подякували: 0xDADA11C71

44

Re: Шлях на криптографічну вершину

KERNELBASE.DLL - колізій нема :)

Yml0Y29pbjoxNmVTc0NyOXJySHBTV
DlGVmZjamV5djh5ZEtHM1NuNFNaCm
RvZ2Vjb2luOkROdXhrWExCaEh6eE1
wajFwbWhSdGlKWXZvWXJRckNiQjc=
Подякували: 0xDADA11C71

45

Re: Шлях на криптографічну вершину

Перевірте ще User32, тоді я може на асмі напишу імплементацію вашої геш хвункції і застосую в простецькому шелкоді, як буде вільна хвилинка.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

46

Re: Шлях на криптографічну вершину

NTDLL.DLL - колізій нема! Можете юзати  *YES* .

Прихований текст
Тільки при використанні, в коментаріях до коду пишіть, будь-ласка, шо то я цю геш хвункцію нашкрябав
Yml0Y29pbjoxNmVTc0NyOXJySHBTV
DlGVmZjamV5djh5ZEtHM1NuNFNaCm
RvZ2Vjb2luOkROdXhrWExCaEh6eE1
wajFwbWhSdGlKWXZvWXJRckNiQjc=
Подякували: 0xDADA11C71

47

Re: Шлях на криптографічну вершину

Написати скрипта для CFFExplorer`а - безцінна річ для низькорівневого кодера.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

48

Re: Шлях на криптографічну вершину

Написати скрипта для CFFExplorer`а - безцінна річ для низькорівневого кодера.

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»

49

Re: Шлях на криптографічну вершину

user32.dll - колізій нема! Юзайте на здоров'я!

Yml0Y29pbjoxNmVTc0NyOXJySHBTV
DlGVmZjamV5djh5ZEtHM1NuNFNaCm
RvZ2Vjb2luOkROdXhrWExCaEh6eE1
wajFwbWhSdGlKWXZvWXJRckNiQjc=
Подякували: 0xDADA11C71

50

Re: Шлях на криптографічну вершину

Я правильно розумію, що ви інвертуєте число у десятковій системі?

51

Re: Шлях на криптографічну вершину

так

Yml0Y29pbjoxNmVTc0NyOXJySHBTV
DlGVmZjamV5djh5ZEtHM1NuNFNaCm
RvZ2Vjb2luOkROdXhrWExCaEh6eE1
wajFwbWhSdGlKWXZvWXJRckNiQjc=

52

Re: Шлях на криптографічну вершину

а тепер розкажіть для нубів типу мене - яким чином перевіряються колізії?))

Це ще не кінець. Це навіть не початок кінця. Але, можливо, це кінець початку.
Зростання мудрості можна точно вимірювати ступенем зменшення злоби.

53

Re: Шлях на криптографічну вершину

Механічно, пошуком збігів.

Подякували: 0xDADA11C7, 221VOLT2

54 Востаннє редагувалося koala (11.12.2017 15:40:59)

Re: Шлях на криптографічну вершину

Фігня цей ваш хеш. По-перше, він обробляє весь рядок визначену кількість ітерацій, тобто малоефективний на довгих рядках (якщо мені треба хешувати гігабайт, то він буде цей гігабайт 32 рази пробігати, навіть якщо переписати його, щоб не в пам'яті це крутив).
А по-друге, ефективна довжина хешу значно менша. Дивіться:

    result = 0xBA5E0FDA7AB17C01 //довжина хешу - 8 байт
    data = str(data)
    for i in range(itr):
        for char in data: 
            #розбираємо по частинах
            o = ord(char)|(ord(char)<<16)
            '''якщо ord(char)<256, то o - 256 значень до 3 байт; якщо char 2-байтовий, то до 4 байт. 
            Наприклад, для ASCII максимальне значення char дає 0x7f007f, що містить 23 біти'''
            r = int(str(result)[::-1])
            '''тут найцікавіше. Якщо число не ділиться на 10, то обернене має таку саму довжину в 10-й системі 
            (не факт, що у двійковій вона зберігається, іноді може навіть зростати, але в середньому без змін). 
            Але якщо ділиться - то число зменшується в 10 разів, тобто на 3 біти, раз на 10 операцій, 
            а іноді в 100 і в 1000.'''
            result = r^o
            '''ефективна довжина результату після досить довгого рядка - приблизно максимальна довжина
            символа+16 біт'''
       
        result = (int(str(result*salt)[::-1])<<i)%int(length*'F',16)
        '''Таким чином, ефективна довжина хешу довгого тексту з 2-байтовими сиволами - 4 байти, 32 біти.   
        Підбирається на сучасному компі за пару годин, і те тільки тому, що код дуже неоптимальний.'''
        
    return result
Подякували: 0xDADA11C7, /KIT\, 221VOLT, leofun014

55

Re: Шлях на криптографічну вершину

Ось вам колізія на 32 ітераціях:
https://ideone.com/ffOJpc

Подякували: /KIT\, 0xDADA11C7, 221VOLT, leofun014

56

Re: Шлях на криптографічну вершину

Дякую за критику і поради. Оскільки я тільки вчуся, то алгоритм малоефективний, проте теорію треба перевіряти на практиці.

Yml0Y29pbjoxNmVTc0NyOXJySHBTV
DlGVmZjamV5djh5ZEtHM1NuNFNaCm
RvZ2Vjb2luOkROdXhrWExCaEh6eE1
wajFwbWhSdGlKWXZvWXJRckNiQjc=
Подякували: 0xDADA11C7, koala, 221VOLT3