0x0ACE gameC неделю назад анон принес фотографию листа с ip адресом, перейдя по которому предлагается сыграть в некую игру.После прохождения нескольких уровней прошедшие получали страницу с сообщением, что игра будет продолжена 30 марта в полночь (сегодня, 02:00 по московскому времени).В этом треде успешно прошедшие в прошлый раз аноны вкатываются в игру, помогают, подсказывают.Кто впервые видит, тоже вкатывайтесь. Сразу поясню, игра для программистов.http://80.233.134.208/
Заглушка, показанная прошедшим прошлые задания анонам. Висела до сегодняшнего дня.
бамп
>>149931733 (OP)Как решить первое задание?мимоинтеллектуал
>>149931733 (OP)>http://80.233.134.208/вспомнил как проигрывал с макак не умеющих в base64
>>149932142
Cicada уровня b, кота проебал, прости меня.
>>149932142Тогда это им точно не решить.я тоже хз, как это решать, с ассемблером дел не имел
Бляпасоныкакрешать
>>149932247Конкретно пиши, что не понятно.
>>149932279>/0bfaef6068392c9c77ed0ff9796039f30e6abc7a6a656de9783c8114768c7b47.html
>>149932279Времени супер мало
>>149932300Ну там же написан адрес, куда переходить. И что делать, написано.
>>149932339Для ручного ввода, да.
>>149932217Надо ВМку написать чтобы выполнить в ней бинарник. То что будет в регистрах при завершении ВМ - ответ.
>>149932399Логично. Спасибо за подсказку. Сам решать будешь?
Бля, сделал бы если бы был ПК под рукой
>>149932455Обязательно порешаю как будет время. Обожаю реверсинг.
>>149931733 (OP)Заголовки блять эти менять.. Мне лень. Что там дальше?
>>149932488С ассемблером дружишь? Я вообще в нем не секу, хотя из описания >>149932217 вроде бы, все понятно.Попробую на php написать виртуальную машину, не знаю, что из этого выйдет.
>>149932488>>149932547PS. Там инструкции ассемблерные тоже описаны.Интересно, это под какой то существующий компьютер или выдуманные?
>>149932547как это делать правильно?
>>149932635О, так там даже список инструкций есть? Я думал надо самому его составить реверснув бинарник. Тогда это вообще тривиальная задача.
бля, доверчивый
>>149932687Не для того, кто сталкивается с ассемблером впервые.Но я все равно постараюсь решить. Не зря же прошлые задания прошел.
>>149932677Так там же и сказано как.
>>149932635Вангую, что выдуманые или очень старые.
давайте решайте, волшебники ебаные, интересно же
>>149932995Спать уже надо идти.
Шарящие в ассемблере призываются в тред. Что значит imm, reg, reg+imm, reg+reg в mod байте? >>149932635http://80.233.134.207/0x00000ACE.html
>>149933128imm - immediatereg - registerЭто адресация. Типа mov r1, [r1 + 10] -> mov reg, [reg + imm]
>>149931733 (OP)Гоу задудосим сервак?
>>149933215Анус себе задудось, дудосер.
>>149933178А можно чуточку поподробнее? Ассемблер для меня нов, никогда в него не вникал.
че это значит? http://80.233.134.207/0x00000ACE.html
>>149933283Ключ какой то тебе нужно вписать в запрос к этой странице и получить ответ
>>149933283Это для тех, кто прошел все задания, начиная с http://80.233.134.208/
>>149933254Ну вот есть память. Чтобы что-то прочитать или записать в память нужно использовать адресацию:mov r1, [0x1000] (прямая адресация) -> прочитать 2 байта из памяти по адресу 0x1000 (4096) в регистр r1mov r1, 0x1000 mov r2, [r1] (косвенная адресация) -> тоже самое, только делается через регистр. Зачем? Ну, например если надо прочитать 100 байт из памяти, то можно сделать цикл в котором r1 будет увеличиваться и соотвественно будет читаться новый адрес памяти.http://asmworld.ru/uchebnyj-kurs/014-rezhimy-adresacii/
>>149931733 (OP)СИНИЙПРОГРАММИСТНЕ БУДИ МЕНЯ, Я ДВА ДНЯ НЕ СПАЛЯ В ИГРЕ
в этом треде я буду постить картинки и вебм
Вот вам подсказка
>>149933389Вроде понятно, спасибо. При прямой адресации данные берутся откуда? Из того bin файла?
>>149933471Ассемблер, наверное, под него.
>>149933515>>149933542Репортите это урода.
>>149933556мог бы просто попросить не постить
>>149933389Да, imm и reg понятно, а что тогда значит imm+reg и reg+reg?
последний раз
>>149933626Годный тредж, но, боюсь, что тем, кто может это порешать завтра на работу. Сам завтра гляну.мимо-бухая-студентота
>>149932635>* - nth opcode is not nth byte in binaryЧто это значит? По какому адресу переходить тогда, если это не байт в бинарном файле?
>>149933215
ОПЯТЬ ВЫЧИСЛЯТЬ ПРОТЕИНЫ,НЕ НАХУЙ ИДИ
>>149931733 (OP)А, так вот почему тот школник тред создавал, лол.
>>149934136Адрес перехода будет зависеть от длин всех команд от текущей до целевой. Вообще немного ебанутая схема.
>>149934477Ну пипец, вообще не понятно. А переходить то куда, по указанному смещению в бинарном файле или как?
>>149932399громко кекнул. Это не нужно
>>149934575А что нужно?
>>149934547Разбиваешь команды по границам и нумеруешь. Операнд команды условного перехода - номер пронумерованной команды. В вирмейкинге есть такая хуита, называется "дизассемблер длин" - тут тот же принцип.
>>149934671Вот так? Там же команда из 4 байт состоит?
>>149934756Картинка отлипла.
Слишком сложна
>>149934756>>149934766Судя по описанию часть операндов опциональна, поэтому просто разбить на куски по 4 байта не выйдет. Нужно распарсивать каждую команду по отдельности.
>>149934808Опциональные же нулями замещаются, разве нет?
>>149934846В описании этого не увидел. В реальном процессоре с архитектурой x86 - нет, проц последовательно декодирует каждую команду.
>>149934889А как тогда узнать, есть ли там опциональные байты или это уже следующая команда?
Тред на форче.https://boards.4chan.org/g/thread/59642690
>>149934916Если ли опциональные байты определяется в коде операции и в байте mod-r/m для тех кодов операций, где он применим.
>>149934978Вроде понимаю, если в мод указано imm, читать два следующих байта. Так?Если там указано reg, то читать значение из регистра dest-reg (или src-reg?).Пока непонятным остается, что такое reg+imm и reg+reg, что делать с этим?
>>149933489я застрял на этом(( шо делать?
Что то не понял, как двоичные данные в шестнадцатеричные переведены.Если перевести 00000000 00010010 00011010 10011111 в шестнадцатеричный вид, будет 00 12 1A 9F, а не так, как на пикрил.6815 в hex тоже будет 1A 9F.Я что то не понимаю? или там перепутаны байты?
>>149935051>что такое reg+imm и reg+reg, что делать с этим1. взять содержимое регистра reg и сложить c imm. Что делать с этой суммой зависит от опкода2. взять содержимое регистра reg1 и сложить c содержимым регистра reg2. Что делать с этой суммой зависит от опкода
>>149935306>или там перепутаны байты?>little endian processorВ глаза ебешься или в гугле забанили?
>>149935307>сложить То есть, если команда у нас 0x01 logical or, нужно сделать логическую операцию reg or imm или reg + imm or (??)
>>149935320Да, да, спасибо, понял.
>>149935300Там простые числа, кароче.
>>149935354и шо мне туда рандомное простое число записать?
>>149935383аа блять. понял
>>149935383Почему рандомное. Все простые числа между указанными двумя. и у тебя на это есть всего 5 секунд
>>149935354><input type="hidden" name="verification" value="62702,65604.KEtJWwkJGiFleDFidRwfFCZJPT4VZAsMaBd+GT4UX0Q4MQ==" />Там вот такая хуйня в сорцах. При каждом запросе рандомится. Расковырял что это?
>>149935403да да понял)
>>149935423ну это я видел. но к чему это я не понял
>>149935423Главное, чтобы в post запросе он тоже был отправлен. Вроде рандомный, это не важно, на самом деле.
>>149935466Ни к чему не относится. В запросе с числами не забудь его отправить и все.
>>149935468>>149935487ну это чтоб типа не слать запросы ботом, оно спецом рандомится и хиден инпут стоит. хотя я думаю там это может быть как то использовано, по скольку там первая часть это числа через запятую. а не просто радномные символы
>>149935403>Все простые числа между указанными двумяих запятой разделять или пробелами или как?
https://boards.4chan.org/g/thread/59642690we are also looking except not really
>>149935603>comma-separated list:в глаза ебусь.
>>149935590>хотя я думаю там это может быть как то использованоНет, не для чего оно не используется. Просто отправь эту строку в запросе и все.мимо прошел этот уровень
>>149935612// ==UserScript==// @name New Userscript// @namespace http://tampermonkey.net/// @version 0.1// @description try to take over the world!// @author You// @match http://5.9.247.121/d34dc0d3// @grant none// @require http://code.jquery.com/jquery-1.12.4.min.js// ==/UserScript==(function() { 'use strict'; var n = $(".challenge").html().replace(']','').replace('[','').replace(' ..., ','').split(',');var output='';for (var i=(parseInt(n[0])+1);i<parseInt(n[1]);i++){if (isPrime(i)){go(i);}}function go(number) {output=output+=number+',';$('input[name=solution]').attr('value', output.substring(0, output.length - 1));}function isPrime(number) {var start = 2;while (start <= Math.sqrt(number)) {if (number % start++ < 1) return false;}return number > 1;}})();I am the american fag again, USE TAMPERMONKEY
сатрите че нагуглилwww.programiz.com/c-programming/examples/prime-number-intervals
>>149935651>I am the american fag againSee.
>>149935651I decided this with php, lol.
Интересно, к чему эти нижние подчеркивания?
>>149935695>ace ace
>>149935676solved*не благодари
>>149935704Азамат Ашмакын
No eh podido solver este problema, no le entiendo
>>149935790I think, it no disassemblers available for this code.
Вы код отдизасмили уже? Дайте бинарь, если нет.
>>149935608>https://boards.4chan.org/g/thread/59642690Why can not I post?
Что там с числами 1000409 - 1066577 было? Оба простые, но между ними слишком много других простых чисел
>>149935910Не чем его дизассемблировать. Нужно вручную заpбирать.Там каждый раз бинарь разный.http://rgho.st/7lSFZg9KB>>149935945Вот их все и нужно ввести.
>>149935917turn off vpn, could be russians are banned
>>149935961> нечемПроцессорный модуль для IDA пишется минут 15.
>>149935997Не работал с IDA, к сожалению, и тем более не знаю, как писать к ней процессорный модуль.Впринципе, тут на любом языке можно написать виртуальную машину, я думаю.
>>149935961да ебнешься ведь за 5 секунд это делатьмимо-застрявшей-на-этой-хуйне
>>149936039А вручную и не сделаешь. Автоматизируй.
>>149936039поэтому надо писать скрипт, я на питончике заебашил, который сделает это за тебя
>>149936039>ься ведь за 5 секунд эты шо дурак. это кодом делать нужно. у меня другой вопрос я сука все сделал нашел все числа и ввел туда но оно пишет bad request
>>149936054тебе нужно туда помимо ответа отсылать ключик итп же. Писали в начале
>>149936054Header и verification не забыл?
>>149936067двачую, скорее всего в этом проблема
>>149936065его туда же в строку дописывать? в начало или конец?
>>149936049>>149936052понятное дело скриптом только.кстати, есть те, которые уже прошли этот уровень?
>>149935403Странно, пихаю этой фигне весь список простых чисел - а оно 400 bad request.Пробовал и через запятую, и через пробел.Это из-за превышения задержки в 5 секунд?
>>149936091у меня друг сейчас быстренько четыре левела прошел и пошел спать. Завтра закончит. Наверное
>>149936067Какой ещё verification?
>>149936092headerverificationне забывай
>>149936107ты шо осел. Тебе дан был твой уникальный ключ на втором этапе
>>149936091Я прошел, еще в прошлый раз.>>149936107Тот, который в hidden input в html коде.
a = parseInt(document.getElementsByClassName('challenge')[0].innerText.split(',')[2]); b = parseInt(document.getElementsByClassName('challenge')[0].innerText.split(',')[0].slice(1)); function isPrime(num) { for (var i = 2; i < Math.sqrt(num); i++) {if (num%i===0) return false} return true}; primes=[]; for (var i = b + 1; i < a; i++) {if (isPrime(i)) primes.push(i)}; console.log(primes);var str = '' + primes[0]; for (var i = 1; i < primes.length; i++) {str += ', ' + primes}; document.getElementsByName('solution')[0].value = str; я вот такой скрипт написал . запускаешь в консольке хрома оно сразу тебе засунет его в инпут
Анон, шарящий в ассемблере, если ты еще тут.Вот пытаюсь я разобрать пример, у меня получается, что значение 6815 перемещается то ли в регистр r0, то ли в r2. Когда в примере написано, что значение перемещается в r1.Подскажи, что я не так делаю?
>>149936128Всё, посмотрел html, допёр.Эх, я с JS не силён, и фигачить автоматические постилки в расширения браузера не смогу так быстро.Надо завтра будет продолжить
>>149936039Может все инструкции срут в r1?
>>149936133блин, там ошибка была в коде. function isPrime(num) { for (var i = 2; i <= Math.sqrt(num); i++) меньше равно крч а не меньше
Ссылки на треды недельной давности есть?
>>149936213Может на архиваче или тут в архиве, только хер найдешь теперь. Я не сохранял.
>>149936228Что там хоть примерно в оп-посте было?
>>149936329Пикча, как в оппосте, похожая.Что ты там найти то хочешь?
>>149936164Не понимаю, как там выглядит mov reg, reg
лучше бы кто-нибудь скрипт для бинаря скинул
>>149936373Всмысле? Все скриншоты я уже скинул, больше там ничего.
Нас наебали походу. Больше похоже на формат op, dest, src, mode, а не как в описании.
>>149936566Поподробнее пожалуйста, если шаришь.
Или не наебали, а пик был твой. Там биты нумеруются слева направа: 00 12 -> 00 опкод, 2 (4 бита) mode, 0 и 1 (по два бита), dest и src регистры соответственно.
>>149936636Ну так это понятно, вон я выше скрин вкидывал, где пытался разобраться, что есть что. Только там получается, что значение записывается в регистр r0, нахера там 10 (r2) вообе не понятно. >>149936164
Я тебе об этом и пишу все там норм.00 12 -> 0x12000x1200 & 0xff: опкод 0x12(0x12 >> 8) & 0x0f: режим 2 (reg + imm)(0x12 >> 12) & 0x03: в регистр 1.(0x12 >> 14) & 0x03: в регистр 0.Ну и imm читаем. А теперь, внимание, вопрос на засыпку: С ЧЕГО ВЫ ВЗЯЛИ, ЧТО ТАМ ЕСТЬ ПАМЯТЬ?.
>>149936769Что то ты фигню написал, по моему. Там приведен пример кода и написано, что он делает. так же приведены все команды.>С ЧЕГО ВЫ ВЗЯЛИ, ЧТО ТАМ ЕСТЬ ПАМЯТЬ?.Там есть четыре регистра, о чем и написано.
>>149936830> Что то ты фигню написалНу да, опкод 0, не 12. Получаем:MOVE reg, immMOVE r1, (на исходный регистр похуй) imm
>>149936859>MOVE r1Но вот только нихера не r1 получается, или я что то не понимаю. imm же в dest-reg по идее записываться должен? А там 0x00, то есть r0.
>>149936899PS. Это я про пример.
>>149936899Погоди еще 15 минут.
>>149937011Да, я тут пока. Не понятен мне этот пример и откуда там взялся регистр r1? Там или ошибка, или я жестоко проебываюсь где то.
>>149937085Ты не в том порядке декодируешь биты после опкода.
>>149937111А как надо? 9f и 1a перевернуты, это я понял. Но если таким же образом перевернуть два первых байта, там ерунда выйдет.
Ребят скиньте книжек, тоже хочу научиться такое решать и понимать. А то.я максимум говнокодить на c#/java умею. Ток не на английском. Словарный запас маленький, дольше переводить приходится.
>>149937141Взять два байта. В первом байте опкод. В младших битах второго режим, в старших регистр назначения, в самых старших регистр источника (если нужен по режиму). Если режим требует, взять два байта imm, поменять местами. Всё.Я почти дописал эмуль.
>>149937392Блин, разобрался. Теперь все встало на свои места, спасибо, анон.Ну и гимор же, ужас, все не по порядку.
>>149937469http://ideone.com/vUzIug как-то так, но мог наебаться с signed/unsigned и прочим.
>>149937487Запускал? Получается? Теперь отправить все это по быстрому надо.Я на php попробую писать, но уже, наверное, завтра.
>>149937511Там же и запускается. Смотри последнюю строку выхлопа.
>>149937528Ошибки там.
>>149937552Страницу перезагрузи, я поправил давно.
>>149937564Пробуй теперь на следующий уровень.
>>149937586Я мимокрок, не знаю даже чего и куда. Создай лучше ночью тред снова.
>>149937604А решил чисто из любопытства?Смотри, все таки недопонимаю, получается младшие биты второго байта не инвертируются, а старшие инвертируются?
>>149937639не инвертируются, а задом наперед становятся, переворачиваются.fix
>>14993763900 12 9f 1a: 0x1200 операция, 0x1a9f непосредственное значение. Разбираем операцию: 0x00 опкод, 0x12 = 00010010 = 00 01 0010 = 0010 режим, 01 регистр назначения, 00 регистр исходный. Никакие биты инвертировать не надо, просто ты берешь их справа у байта.
>>149937757Тьфу ты, я дурак, сам себя запутал, спать пора, все.Разобрался, спасибо тебе еще раз, анон.Сам не думаешь поиграть?
>>149937757БЛЯЯЯЯЯЯДЬ ХУЛИ ТАК СЛОЖНО ТО Аанон, как научился этому? кто по специальности? кинь пожалуйста литературы или уроков по асм/си. посмотрел твой код на си, нихуя почти не понял, расстроился.
>>149937794При желании я могу это пройти, наверное, но надо сидеть, а мне лень, да и спать уже пора.Код мой говно, писал быстро и некрасиво. И наебался наверняка где-нибудь. По специальности я говнокодер. Си-тредик c литературой есть в /pr/, реверсинг тоже там же, уроки по асму в ассортименте в бэкапах wasm.ru (они вроде восстановили что-то на wasm.in, но я не разбирался), алсо http://beginners.re/
Там кстати из описания не совсем понятно, то ли JZ/JNZ переходит по опкодам, то ли все же JZ/JNZ переходит по 16-битным словам. Или по 32-битным. Хуй знает. Настоящие процессоры не умеют по индексу на инструкции скакать, если размер инструкции не фиксированный.
>>149937890спасибо. спокойной ночи, няша
>>149937993Кстати, про переходы я тоже не понял.Там написано: >* - nth opcode is not nth byte in binaryчто адрес куда переходить, это не смещение с бинарнике?Куда переходить тогда?
>>149938058Ну вот я прочитал, и решил, что это номер инструкции, считая с нуля. Т.е., сначала нужно весь код обработать, т.к., некоторые инструкции 2 байта, а некоторые 4, и поэтому без знания длин вперед прыгнуть не получится.
>>149938090Просто порядковый номер инструкции? Возможно, кстати.
>>149931733 (OP)Годнота тред. Жаль, что я кулхацкер-прыщеблядок, не умеющий в нормальный кодинг. Респект тому, кто все это затеял.
Ладно, я спать, завтра продолжим, если тред утонет, к вечеру новый запилю. Если кому не лень, можете на архивач закинуть.
Что-то у меня ощущение, что как минимум в половине регистров должно оказаться 0x0ace, а у меня мусор какой-то.
>>149938359>Что-то у меня ощущение, что как минимум в половине регистров должно оказаться 0x0aceБред.
>>149931733 (OP)bump
бамп, посмотрим, где же все мамкины фрилансеры 300ккк/наносекунда
>>149939741Чего бампать-то? Ну написал я вм утром еще, ну прошел предыдущие уровни. Ну поправил ошибки. И получил пикрелейтед. Возможно, можно как-то продолжить сейчас, а не через месяц, но у меня в любом случае нет IPv6, так что я ебал.
>>149941068скажи свой телеграм, анончик лень писать вм, а ipv6 и напоминашки в календре есть
Вот исправленная версия эмулятора (время правки на ideone закончилось, а автор квеста дебил, и не различает побитовые и логические операции). Читает challenge, пишет response. http://ideone.com/MSDJwU>>149941292Нет телеграммы. Возьми любой компиль под Linux (с ключиком -std=c11) или Pelles C под винду.
>>149931733 (OP)Поясните, что нужно знать, чтоб решать такие задачки? Тененбаума читать?
Бамп годному треду.