В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: реверс-инженеринг.Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС? Вам сюда.Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.
>>891716 (OP)Вкатился, кто знает, что может означать инструкция "jmp ." в GAS? В гугле не нашел.
1. Реквестирую гайды по фасму и его макросам.2. Что-нибудь о программровании на асме под x64, а то васм со статьями закрылся.
>>891716 (OP)Плохой заголовок для треда, не одобряю. Пожалуюсь модератору, пусть переименует.>>891719>jmp ." в GASМегабыстрое гугление говорит, чтоjmp label1Может быть, это метка? Скомпелируй и посмотри результат.>>891728>2. Что-нибудь о программровании на асме под x64, а то васм со статьями закрылся.Прямо программирование? Или ты подразумеваешь реверс?Ну и у меня вопрос. Как реверсить приложение (x64 в данном случае), напичканное антиотладочными приёмами? Нужен нормальный отладчик. Глючный x64dbg такой глючный, что лучше без него. Какой-нибудь эмулятор цп?
>>891749>Прямо программирование? Или ты подразумеваешь реверс?И то, и другое. Например, хочу разбираться в том, как настраивается контекст процессов на x64.
>>891749>>jmp ." в GAS>Может быть, это метка? Скомпелируй и посмотри результат.Это уже листинг декомпельнутого ядра. Системщики опять забыли принять таблетки.>Как реверсить приложение (x64 в данном случае)?Только с MSIL работал, декомпил в C#, далее стандартные средства рефакторига студии, после этого решарпером пройтись. Становится вполне читабельным.
>>891754Ссылок не подскажу, т.к. меня только реверс интересует. Но отличий от x86 не настолько и много. Если умеешь в него, то и с этим асмом проблем быть не должно.>как настраивается контекст процессов на x64Это что значит?
>>891759>Только с MSIL работал, декомпил в C#А если обфусцирован? ConfuserEx'ом каким-нибудь модифицированным?
>>891761Прям с изменённой структурой кода? Ну вообще обычно такое не юзается в языках, где важен порядок операторов(многопоточность и всё такое). Я видел только с изменёнными идентификаторами по типу axxxx, но большая часть из них восстанавливается.
>>891768Не знаю, что там было. Пытался его декомпилировать, но не получилось. В IDA так же не понятно, потому что код приложения запакован.Но мне интересно про декомпиляцию не C# приложений, а нативных. Какой отладчик, кроме WinDbg ещё можно использовать?
>>891774Раньше юзали OllyDbg.
>>891749>Плохой заголовок для треда, не одобряю. Пожалуюсь модератору, пусть переименует.Ага, обосрался с ним.>>891761>А если обфусцирован?Ищи деобускатор. Если его нет- пишешь его и выкладываешь на радость остальным.>>891774>Какой отладчик, кроме WinDbg ещё можно использовать? OllyDbg.
Зачем здесь вызову ZeroMemory передается адрес указателя и размер этого указателя? Защита от нублолов?
>>891788Забыл код http://ideone.com/1UBYbw
>>891760>Это что значит? Настройка структуры CONTEXT при инжекте в процесс. Видел, как у кого-то возникли проблемы на XP при настройке процесса в приостановленном состоянии.
>>891785>Раньше юзали OllyDbg.>>891786>OllyDbg.x86-64. Про OllyDbg знаю, само собой.
Собственно ради чего я создал тред. Сейчас я ковыряю ядро винды, мечтаю подпилить его для запуска семёрочных приложений. Интересуют 64 битные версии. В итоге должно получится что-то типаhttp://blog.livedoor.jp/blackwingcat/archives/1706829.htmlЭто патч от японского хакера, но он для 32 битной версии.Для создания подобных патчей на х64 не хватает инструментов, а именно1) Возможность добавления записей в ExportTable2) Перемещение и изменение размера таблицы секций3) Релокации для функций, чтобы после выполнения предыдущих действий всё работало4) Контрольные суммы для PE.Собственно я их разыскиваю.В идеале следовало бы декомпилировать нужные файлы полностью, или допилить соответствующие исходники вынь2000.Так же я разыскиваю дебажные сборки семёрки и десятки, авось пригодятся. Такие сборки для XP x32 SP2 и Server 2003 x64 beta у меня есть, но не откажусь от XP x64 и релиза Server 2003.
Посоветуйте книг ньюфагу
>>891805С.В. Зубков: Assembler. Язык неограниченных возможностей.
>>891788Ошибка там. Хотели, наверное ZeroMemory(data, strlen(data)). Потому что указатель можно занулить и без использования ZeroMemory. Но тред не об этом, тебе в прикреплённый.>>891792Что значит "настройка"? Ты и так можешь установить любые значения регистров в нём, чего настраивать то? Сейчас такую программу реверсю, в ней через векторные исключения проверяется состояние регистра dr7 и сбрасывается флаг TF (а ещё он же устанавливается для чего-то). Чтобы установить контекст, нужно вызвать GetThreadContext приостановленного потока (в документации так написано). Или через исключения. Но всё заранее должно быть создано, что нужно для передачи управления на инжект-код. Ты сформулируй вопросы, а то очень уж общий вопрос задаёшь. Или даже так: в чём у тебя возникли сложности?
>>891808Благодарю
>>891808А есть по-новее?
>>891805Платформа?
>>891801Немного специфичные требования к софту.1, 2 и 4. LordPE посмотри.3. Это не знаю. Наверное, тебе придётся самому написать.Посмотри книгу К.Касперски "Техника отладки программ без исходного кода". Он как раз рассматривает способы внедрения кода в чужое приложение. Книга хотя и старая, но формат исполняемого файла остался тот же.
>>891719Сначала я решил, что это текущий адрес, потом я пошёл в гугол и нашёл, что это текущий адрес. Либо оно зацикливается, либо ничего не делает, в зависимости от того, что подразумевается под текущим адресом в этом случае.http://tigcc.ticalc.org/doc/gnuasm.html#SEC49
>>891864А для чего? Это нестареющая классика, актуальная и через века. Нубы будут программить мышкой в очередном говнофреймворке, делая приложения,пожирающие гигабайты и гигагерцы, а аксакалы по старым методикам писать на асме проги в 30кб.
>>891956>1, 2 и 4. LordPE посмотри.Смотрел. Может только редактировать, добавлять в таблицу экспортов не умеет. При работе с секциями побил файл нафиг.
>>891716 (OP)Наканецтагод учил си, и ждал пока ктонибудь запилить нужный тред по RE
>>892128А надо было учить асм.
>>892155> учить асмНадо учить все, до чего дотянешься. Особенно если хочется в реверсинг. Кроме 32-битных x86 процессоров существует IA-64, кроме нее существуют и широко распространены ARM и MIPS, кроме кода для реальных процессоров часто приходится иметь дело с байтокодом CLR/JVM/Dalvik/AVM и прочими виртуальными машинами, поэтому нужно более-менее знать язык, который в это скомпилировался. Бывает, что байткод каждый раз новый (протекторы), а бывает, что ебать приходится USB- или Blutetooth- протоколы или структуры файла, а не код.Так что сишечкой и асмом ограничиваться ни в коем случае не стоит.
Лучше бы тред по демосцене запилили.
>>892159>существует IA-64Он официально мёртв.>Так что сишечкой и асмом ограничиваться ни в коем случае не стоитА вот это верно.>>892177Так запили.
>>892039Тогда вариант - написать самому.>>892159>протоколы или структуры файла, а не кодКак без реверсинга можно разреверсить протокол или структуру файла? Это же набор (не)случайных байт, попробуй пойми, что к чему относится.Вот ещё вопрос. Кто как реверсит сетевой протокол? У меня очень не эффективно, как мне кажется. Просто без реверса даже и не поймёшь ничего. Сначала IDA, дебаггер, а только потом какой-то результат. А ещё для упрощения работы пишу диссектор для Wireshark. Удобней становится.
>>892189Да, я имел в виду Intel 64 (x86-64), постоянно названия путаю.>>892288> Как без реверсинга можно разреверсить протокол или структуру файла?Предназначение файла известно, иначе зачем его реверсить. В протоколах тоже чаще всего знаешь хотя бы общую картину происходящего. Берешь тот же Kaitai или 010 и разбираешь. Ищешь офсеты и длины, флоаты, строки, zlib брутфорсом неплохо находится. Иногда кода на руках нет, но можно нарыть много файлов и искать корреляции. Хотя если пошифровано правильно а не ксором каким-нибудь, то, конечно, без кода хуй что сделаешь.
Ладно, если вы не против, я покидаю сюда всякого говна по теме, которого насобирално так и не приступил к изучениюДолжен предупредить, что все это в целом ньюфажное
Блог дядьки написашвего RE for begginners, ссылка на книгу там же.https://yurichev.com/blog/Тут подборка книгhttps://www.goodreads.com/shelf/show/reverse-engineeringНе совсем RE, но все такиhttp://security.cs.rpi.edu/courses/binexp-spring2015/
Тред будет неполон без ссылок на:https://www.hex-rays.com/ - лучший в мире дизассемблер, с хуевым отладчиком, и каким-никаким, но декомпилятором. Позволяет реверсить код под любую архитектуру, а в тех редких случаях, когда архитектура все-таки не поддерживается - позволяет за вечер запилить процессорный модуль на крестах или питоне.http://radare.org/ - безумная смесь дизассемблера, hex-редактора и отладчика, затмевающая даже vim своим умением все портить и пикатьмолча. Но из бесплатного - это самое годное, что существует.
Посоветуйте современных и годных книг по ассемблеру
Дан массив из 3 байт. Рассматривая его как массив из 8 трёхразрядныхслов, найти “исключающее или” всех 8 слов для выражения “101”. Помогите пожалуйста с ассемблером. Нужен массив в 8 итераций. В благодарность скину шекели на сотовый.
>>892517Выше кидали ссылку. Если тебе по новым возможностям процессоров, то бери мануал от Intel и смотри его.>>892571Даже не понятно, что тебе надо. Надо зашифровать массив последовательностью 101?Аноны, TitanHide.sys есть у кого сконпелированный и плагин от него же для x64dbg?
>>892366Так, навреное все таки уменя больше ссылок не по реверсу, а по байнари эксплоитейшонне знаю даже, надо ли такое кидатьhttp://programminggroundup.blogspot.ru/http://althing.cs.dartmouth.edu/local/www.acm.uiuc.edu/sigmil/RevEng/ch01.htmlhttp://www.program-transformation.org/Transform/ReengineeringWikihttp://dobrochan.com/s/res/45693.xhtmlhttp://asm.shadrinsk.net/index.php?par1=3&par2=0&par3=0&par4=0&par5=14762263https://forum.reverse4you.org/
>>892578Мне нужно сделать операцию XOR к каждому 3-хразрядному слову из массива в 3 байта. Прилагаю свой код. Только мне нужно сделать цикл в 8 итерацию.data segment mass1 db 11001100b, 10101011b, 00011101bdata endscode segment assume cs:code, ds:data start: mov ax,data mov ds,ax mov bx,2 mov cl,8 a0: mov al,mass1[bx] mov ah,00000101b sub cl,8 neg cl cmp cl,3 jb a1 sub cl,3 a1: shr ah,cl xor al,ah sub cl,3 neg cl cmp 1 ja a3add cl,3mov ah,00000101bshl ah,clxor al,ah a3: mov ah,00000101b shl ah,cl xor al,ah shl ah,3 xor al,ah mov mass1[bx],al dec bx jns a0 quit: mov ax,4c00h int 21hcode endsend start
>>892587Плачу 500 рублей. Очень нужно, помогите.
>>892587Условие неполное. Можно разбивать, начиная со старших бит 110 011 00'1, а можно с младших бит 100 001 11'1.
>>>89262>>892629Со старших. Слева направо 110 011 00b, 1 010 101 1b, 00 011 101b
>>892634http://pastebin.com/qSngVQ5q фасм, комментарии не писал принципиально, тут реверса тред лол алсо читай шапку.
>>891801Поищи пикрелейтед.>>891813>Ошибка там. Хотели, наверное ZeroMemory(data, strlen(data)).Все там правильно написано, долбоебина, а вот у тебя - полная хуета. Не знаешь - не пизди.Мамкины какеры, лол.
>>892644>Не знаешь - не пизди.Объясни.
>>892644PETools ему экспорты тоже не добавит. Я уже говорил в ньюфаг треде, что лучше сразу написать кастомный линкер под такую задачу. Руками он править заебется на второй день.> Все там правильно написаноТы забыл спросить, нахуя вообще обнулять указатель таким странным способом, когда можно просто присвоить, и нахуя вообще обнулять указатель, который в худшем случае до следующего вызова какой-нибудь функции в стеке пролежит. И ты мог бы догадаться, что оба аргумента ZeroMemory изначально были неправильные, и имелось в виду именно то, что ты процитировал. Хотя возникает вопрос, нахуя обнулять буфер с отосланным текстом.
>>892652>>892653И действительно. Извиняйте, котаны, обмишурился.
Для x64dbg скачал плагин TitanHide. Во-первых, приложение отладку продолжает определять (через исключения, проверка регистра dr7). Во-вторых, пикрелейтед. Что не так? Уже надоело искать места, где проверка происходит.
>>893525А что отлаживаешь? Там какой-то кастомный протектор?
>>893525Алсо, в ридми титанхайда написано, что нужно оторвать у винды патчгард, ты оторвал?
>>893531>А что отлаживаешь?Поделие от Blizzard.>>893534>ты оторвалНе дочитал до туда. И так пришлось столько движений сделать, чтобы собрать и запустить драйвер. Сейчас попробую.
Посоны, помню когда-то в пр мелькала ссылка на древний блог какого-то хуя, который анон горячо всем рекомендовал, помню ещё, там дезигн был совсем топорный и сам блохер типа обучался по ходу написания постов, а ещё писал, что проганьем до этого никогда не занимался. Никто не вспомнит и не поделиться?
>>893588Блог по асму и реверс инжинирингу, есессно.
>>893588>поделитсяqfix
Компиляю я ядро WRK.Оно поставляется со своим компилятором cl.exe версии 14.0, ml64.exe 8.0 и т.д.Я решил обновить тулзы, взяв их из установленной Visual Studio 2010, а именно cl.exe 16.0, ml64.exe 10.0 и т.д.Само собой вылетают ошибки. Некоторые из которых я пофиксил сам, типа\amd64\procstat.asm(325): error A2022: instruction operands must be the same sizeВот строка в исходниках:https://github.com/stephanosio/WRKRazzle/blob/master/base/ntos/ke/amd64/procstat.asm#L325Тут я в определении структуры выше заменил SavedXmm6 db 16 dup (?) на SavedXmm6 OWORD (?) (это вообще корректно? И разве это не одно и тоже?), и этот файл скомпилировался.Но вот ошибка..\amd64\trap.asm(2134): error A2156: constant value out of rangeПовергает меня в пучины отчаяния- она указывает на пустую строку, и что с ней делать- ХЗ. Строка в исходниках:https://github.com/stephanosio/WRKRazzle/blob/master/base/ntos/ke/amd64/trap.asm#L2134Кто-нибудь знает, что ему нужно?Если скомпилировать эти фалы отдельно старой версией и подсунуть при компиляции новой, то они нормально линкуются, ядро рабочее, и меньше на пару сотен килобайт относительно компиляции старой версией.
Что нужно для того, чтобы стать хорошим системных программистом? Надо ли уметь реализовать свой менеджер потоков под что-то вроде распберри или stm32?inb4: написать в контактике "системный программист"
>>893538>Сейчас попробую.Всё запустилось. Только опять dr7 не пустой (смещение 70h). Что интересно, при модификации (занулении dr7) hardware breakpoinnt не сбрасывается. Можно пропатчить в таком случае.>>893637Ничем даже помочь не могу. А зачем обновлять инструмент?.allocstack 0 - почему тут ноль?
>>893669>А зачем обновлять инструмент?>>893637>меньше на пару сотен килобайт относительно компиляции старой версией.То есть в новых инструментах новые оптимизации.>.allocstack 0 - почему тут ноль?Функция ничего не делает, вот и стек нулевой. Но действительно, нафиг не нужно. Спасибо, скомпилял.Чем можно протестировать производительность ядра ОС? Какие-нибудь проги, дрючащие функции API. Интересно сравнить производительность родного ядра с WRK и с WRK, скомпилированным новым инструментом.
Ах, даhttps://www.reddit.com/r/ReverseEngineering/comments/hg0fx/a_modest_proposal_absolutely_no_babies_involved/
>>893965Там все порядком протухло. Недавно вроде пасту посвежее в этом же сабреддите постили.
>>893986А я не глядел, если честно, давно уже туда, якак-то азы сейчас ботаю
Я не знаю, надо ли это тут, но вот http://www.programminggroundup.blogspot.fi/
65 сообщений, и ещё никто не упомянул Криса Касперски? Непорядок, пофиксил.
>>894851А криска жив еще или таки сторчался?
>>894851А кто это? Автор антивируса штоле?
>2к16>ассемблерРжу.
>>894891Ньюфаг чтоле? http://web.archive.org/web/20070305173922/http://kpnc.opennet.ru/
>>894928Т.е. уже неактуально? Ну а нафиг тогда надо?
>>894887Жив, с парашютом прыгать приноровился
>>895188> с парашютом прыгатьШо опять? Помнится, лет пять назад на васме он обещал без парашюта прыгать.
>>895216Ну видимо передумал. Вон, естьвидосы на тытрубе на его канале.
>>894926Ну попробуй пореверсить на C++.>>894930Научись реверсить хотя бы как он, а уж потом пиши, что не актуально.
>>895533Зачем учится какой-то устаревшей технологии?Она не востребована на рынке => зря проебешь время.
>>895629Реверсинг сам по себе не востребован на рынке. Заказов мало, желающих много, и для того, чтобы этим зарабатывать, знать нужно овердохуя. Алсо, это ваши модные нодежс превращаются в устаревшие технологии, а ассемблер как был в 60-х прошлого века, так и в 60-х нашего века никуда не денется.
>>895634>Реверсинг сам по себе не востребован на рынке.Серьёзно?
>>895652Ну смотри. Есть computer forensics разного рода, но это не совсем реверсинг. Есть AV, но это работа за еду, хуже PHP-макак. И есть разовая полулегальная работа. Алсо есть куча ололо-секьюрити-рисерчеров, которые реверсят все подряд в качестве хобби, чаще всего для себя и бесплатно. Что-то еще назвать сможешь?
>>895668поиск и эксплуатация зеродеев. грейхэты
>>895634>Реверсинг сам по себе не востребован на рынке.Тот же Крис Касперски вполне себе съебался в СШАшку и работает там на удалёнке. Был бы он нахуй никому не нужен, его бы туда не взяли.
>>895777Крис - крайне хуевый программист и ничем не выдающийся реверсер. Он выехал исключительно на имени (написал книжки, по которым училось целое поколение, потому что других книжек нихуя не было) и на этой его охуительной истории про эксплуатацию бага в микрокоде.
>>895668>Есть AVЧто означает сия аббревиатура?>Что-то еще назвать сможешь?Банальное - кейген. Не банальное - формат файла, сетевого протокола, работа драйвера с устройством.Другой уровень - реверс существующих устройств. Прошивка, взаимодействие компонентов и прочее.Ещё один вариант - установка ПО и ОС на устройства, это ПО и ОС изначально не поддерживающих. Например, какой-то навигатор в автомобиль, в котором ОС Windows Mobile.В общем, очень много всего. Учитывая, что (в последнее время особенно) полно закрытых проприетарных устройств, программ, ОС, которые не дают возможность сделать что-то, что разработчик не разрешил.
>>895855> AVРазработка антивирусного ПО. Полуавтоматический анализ сэмплов вредоносного ПО посредством различных утилит, скриптов и полутора-двух килограмм биомассы, которую пока заменить нечем.> установка ПО и ОС на устройства, это ПО и ОС изначально не поддерживающихЭкономически невыгодно, даже если найдется толпа некрофилов, которые на это скинутся. Такое только для энтузиастов, которым некуда девать свое время, а времени для таких финтов нужно овердохуя.> Банальное - кейгенМы там выше говорили про востребованность на рынке, это подразумевает что-то хотя бы слегка легальное и приносящее некий доход.О том, что существует множество интересных вещей, в которых можно лампово ковыряться по вечерам после работы, я не спорю. Но вот платят за реверсинг хоть и много, но редко.
>>895804>Крис - крайне хуевый программист и ничем не выдающийся реверсер.Как видишь, даже такие люди могут съебать в США.
>>895954А ещё, не смотря на лёгкий аутизм, у него была (а возможно и есть) тян. Что за несправедливость, да?
>>895978Нет, ну я, конечно, первый про Криса начал, но мы тут какбэ реверсинг собирались обсуждать, а не его негритянокмулаток.
>>895979Ты бы лучше сажу отклеил.
>>893734>Чем можно протестировать производительность ядра ОС? Какие-нибудь проги, дрючащие функции API. Интересно сравнить производительность родного ядра с WRK и с WRK, скомпилированным новым инструментом. В общем использовал PassMark PerformanceTest, результаты в пределах погрешности.
Bump.
>>897771Это мои слова! Правда не понял, чего тут бампать, когда ответов никто не задавал.ОП
>>891716 (OP)Что там с драйверами на микроволновку? Вирус говорят уже есть, драйверы чтобы к компу подключить напишете?
>>897846Переходник спаяй - подключим.
cпасисбо за тред поцоны. сам вкатился в асм недавно, ибо доебали проблемы с производительностью\оверхедом в высокоуровневых языках.удивляюсь как ещё нет фреймворка для разработки приложений под асм x86-64? и пакетного менеджера либ\макросов\сниппетов, по типу pip\npm.может посоветуйте ресурс со списком библиотек? а то единственное более-менее полезное что я нашёл это BASELIB.алсо может есть _современная_ книга по имлементации алгоритмов на intel x86-64?вообщем за недолгое время использования меня асм приятно радует скоростью, низким оверхедом, минимализмом. алсо как вы думаете кряк-сцена загнётся лет через 5? все переходят на веб приложения, которые не хранятся на десктопе.молодёжь предпочитает покупать софт в интернете у оффициальных дистрибьюторов и не задумывается об использовании пираток.
>>897878> проблемы с производительностью\оверхедомТы что-то делаешь не так. Сишные компиляторы как миниум идут наравне с тем, что ты способен написать. А учитывая, что твой код все равно более, чем полностью состоит из вызовов либ, какая тебе разница, кто будет аргументы в стек/регистры пихать - ты или компилятор?
>>897878>молодёжь предпочитает покупать софт в интернете у оффициальных дистрибьюторов и не задумывается об использовании пираток.То чувство, когда ощущаешь себя стариком, который даже предустановленную винду с омерзением сносит, чтобы поставить пиратку.
>>898281Просто ты долбоеб.
>>898315Что поделать, если это проще, чем вычищать тонны блоатвари, а порезанные домашние винды ввергают в пучины отчаяния?
>>898379Но ведь... большинство знакомых сидят на этой блявари и винде, и им норм.Т.е. жрать говно - это нормально, а ненормальные - это мы, избалованные могуществом не жрать говно.Но ведь ненормальным быть плохо. Нужно приучать себя жрать говно, чтоб не выделяться, как все. Бить по рукам, когда они тянутся к очередному системному инструменту или диску с виндой. Устраивать 10-ти часовые сеансы работы с нагскрином/баннером посреди экрана. И всякие такие экзекуции. Ну вы поняли.
>>898535>Но ведь ненормальным быть плохо.Вовсе наоборот, нормальным быть плохо.
>>898379А ты вон о чем. Извиняй, братан, попутал. Только смысла покупать пиратку нет - бери оригинальное.
>>898591Нормальным быть легко - весь мир рассчитан под нормальных.А ненормальным быть тяжело - ты сам под себя должен адаптипровать весь мир.
>>898625>весь мир рассчитан под нормальных.И рассчитан ненормальными.Так оно и работает.^_^
>>898649Каковы инженеры...
fasmесть сабрутина print : mov rax, sys_write ;sys_write mov rdi, 1 ;stdout lea rsi, [msg] ;msg mov rdx, msg_size ;get count from fasm example syscall ret segment readable writeable msg rb 100 msg_size = $-msg и есть ещё моё незнание асма. Как в рантайме присвоить поменять значение переменной?хочется написать макрос в котором будет (или прямо в main)msg = "sometext" или msg = %1, или mov msg, "sometext" похуйкак это сделать? а то у меня максимум что получалось это одну букву записать mov [msg], "L" если больше одной то фасм выдавал ошибку то invalid operand size, то ещё что то.тут мне пару корешей предлагают вызвать sys_read, но нахуй он мне нужен если у меня всратая переменная значение которой код будет генерировать на лету, и нету файлового дискриптора с которого её считать.
>>899154mov rax,msg2mov [msgptr],rax...msgptr dq msgmsg2 db "yoba",0Или чего ты хочешь?
>>899154Классный кстати был отладчик- можно было при наличии определённого скилла и из BSODа выйти с его помощью.
>>899154Побайтно копируя в цикле из одного места в другое. В rsi кладёшь ссылку на источник, в rdi ссылку на место, куда писать, и поехал:mov rsi, OFFSET sourcemov rdi, OFFSET destxor rcx,rcxloop:mov al, [rsi+rxc]mov [rdi+rcx], alcmp al, 0jne loopКак-то так.
>>900362Перед cmp там ещё 'inc rxc', забыл.
>>891719Переход в текущий assembly point.5.4 The Special Dot Symbol==========================The special symbol `.' refers to the current address that `as' isassembling into.
Ну вот что в оригинале было? Согласно http://www.openrce.org/articles/full_view/23 должно быть: ссылка на таблицу виртуальных функций, данные класса. Почему здесь подряд идут? Это что-то вроде:class Some_Class : public Abstract_Class_1, public Abstract_Class_2, ...При переходе в функцию все данные начинают отсчитываться от смещения таблицы виртуальных функций, а не от начала класса. Как следствие, смещение нужного мне элемента должно быть 0xC8, а становится 0xC4. Как в Иде такие моменты разрешать?
>>900457> должно бытьНикому не должно. Ватком вон вообще в конец класса таблицу совал раньше.> Как в Иде такие моменты разрешать?Никак, лол. Сделай структуру Fields, сложи туда данные класса, сделай ClassView, положи туда указатель на vft, дырку нужного размера и Fields). Сделай структуру Class, сложи туда ссылки на vft и все Fields классов. Когда сделаешь это в десятый раз, напиши скрипт.
Столкнулся с ARM и не знаю, чего ему не хватает.1. Ida не может правильно дизассемблировать файл. Частично сделано правильно, частично оставлено как массив байт. Ручное дизассемблирование (клавиша "C") не работает. Подозреваю, что это Thumbs и Ida не может работать с такой смесью кода в одной секции. Костыльное решение с моей стороны - взял отдельную секцию из файла и дизассемблировал. Получилось. Название функций и прочее перенёс с помощью IDC файла.2. Надо посмотреть, как работают некоторые участки кода. Попробовал с помощью QEMU - не помогает, отладка отваливается после первого же шага.>FFFFFFFF: process has started (pid=4294967294)>Debugger: attached to process <GDB remote process> (pid=4294967294)>Network error: Удаленный хост принудительно разорвал существующее подключение.Судя по отрицательному PID, не видит отладчик. Пытался гуглить, но описания подобного не нашёл.
>>903550> Ручное дизассемблирование (клавиша "C") не работает.Значит, это не ARM, или тыкаешь не там.> Подозреваю, что это ThumbsВ нужном месте Alt+G, T, 1, OK, потом уже C и т. п. Тебе об этом написали, когда только грузил файл.
>>903740>Значит, это не ARM, или тыкаешь не тамНаписал же, что Ida частично код дизассемблировала. Это ARM. Когда отдельно секцию скопировал и дизассемблировал её, Ida всё правильно начала распознавать. Почему так - не знаю.>В нужном месте Alt+G, T, 1, OK, потом уже CНе работает.
>>903796Может быть, покажешь файл?
>>903800Файл не могу выложить. В принципе, дизассемблировал, пусть и таким кривым способом.У меня другой вопрос - почему не подключается к QEMU? Есть ещё какой-нибудь способ выполнить произвольную часть кода (скорректировав регистры, само собой)?
>>903550>>903820А у тебя QEMU насколько древний?
>>904935Брал старый (0.13, хотя в документации написано, что нужно 0.10.6 или 0.11) и свежий (2.8.0). Всё равно не получалось с отладкой ничего. Поэтому пошёл по ещё более простому пути - скачал Keil и "проэмулировал" в нём, копируя интересующие меня куски кода.Но, вообще, беда какая-то с эмуляторами под ARM. Ни один не смог заставить работать.
>>905207Ну хуй знает - у меня стандартный способ, когда ты выбираешь тип отладчика GDB, в настройках отладки выбираешь запуск QEMU и там же конфигурацию, выделяешь код функции и нажимаешь запуск - отлично работает сейчас IDA 6.x/QEMU 2.8, но и раньше проблем не было.
RE- Гад тир!Моя несбыточная места в 31 год.Уважаю этих бойцов невидимого фронта.Возился с Lena151 туториал и русским курсом от какого то типа. Всё есть на торрентах.И есть еще форум четкий - должен гуглиться по RE в гугле.Пацаны РЕ инженеры - это сливки ИТ.
>>905376Сам себя не похвалишь - никто не похвалит, да? Мамке позвони.
Граф в иде. Такие вот методы обфускации лол. с дефкона, выступление называлось "психологические методы давления на реверс-инженера"
...Мне хочется плакать, мне хочется смеятьсяМне хочется прыгать. Бодаться и брыкаться...
А как вам такое: х86 ехешник в 3д.
>>907185порвал демо сцену?
>>907191причем тут демо сцена?
>>907196я просто через призму глянул, и тут навеяло
>>907202ты хотел сказать через усеченную пирамиду, видимо.
>>907181А зачем нужен этот граф? Ищешь же определённые функции, а как они друг с другом связаны, не всегда надо. А если это был C++ с виртуальными функциями? call eax там только будет.
>>907221свое вкатывание в РЕ просто я начал (и не закончил лол) именно с этой софтины. а то что там надо найти хэш-функцию и recv - это уже стало ясно(стало ли?) потом.
>>907181Мне такое нужно полностью декомпилировать до собирающихся в оригинал исходников, а не просто вылечить одну болезнь.
>>907259ПИЗДА.сколько за такое заплатят?
>>907221шарппричем функционал этой проги умещается навскидку в 1-2к строк максимум на питоне. впечатление такое что 90% кода - чисто обфускация. это чё - нормально на рынке софта типа?
>>907225>именно с этой софтиныТак это не IDA? Точнее, один из её модулей, wingraph.>>907259500 строк в оригинале? Если больше - завязнешь надолго. А может ты профи в своём деле, кто тебя знает.>>907291От центов до десятков тысяч далларов. Хотя, если программа большая, то быстрее, дешевле и проще написать всё заново. А реверсинг использовать для необходимого - узнать как работает алгоритм, как происходит взаимодействие с сервером и прочее.
>>907551>Так это не IDA? Точнее, один из её модулей, wingraph.имел в виду не ИДУ (это инструмент) а сам софт который надо было расчекрыжить.
>>907748Вот ты о чём, всё понятно. Сам и не помню, что у меня за первая программа была. Зато помню, что первое, что смог разреверсить до результата - это CS1.6, создал для него генератор ключей, который так и остался на моём компе. На момент создания (наверное, 2008-2009 год был) действующего генератора не нашёл, что несколько странно для такой мегапопулярной игры, ведь у меня на тот момент и опыта было чуть-чуть (хотя, его и сейчас не много). Видимо, реверсеры не играют в CS.
>>907762Годноа я недели две потратил, набирая хотя бы словарь для понимания, чтто нужно делать в рамках поствленной задачи. после того как на дерево это ебучее взлянул.вот щас отдыхал пару дней, установил идапитон. через час в бой и не знаю, когда уже в следующий раз остановлюсь, анон. затарился колой, сисинтерналсами, вайршарком, оллидебагом, виндоус сдк тулзами. в бой хули
Посоветуйте сишную библиотеку для дизассемблирования кусков машинного кода так, чтобы между инструкциями можно было вставлять мусор.
>>907291Ноль, это хобби. Выше, ковыряющий ведро венды- это я и есть.>>907551>500 строк в оригинале?45 млн. Говорят, столько строк в XP.Хотя конечно расковыривать буду не всё, только основное- ядро и главные библиотеки, подрачивая на WRK, ReactOS и прочие вайны.Самая сложная функция тут будет в коде патч-гуарда, там 11к строк кода, написанного самыми запутанными патернами. А без него ядро ОС будет дырявым как решето.Хочу прикрутить возможность запускать некоторые новые проги и дрова.>>907551>А может ты профи в своём деле, кто тебя знает.Нуб, заглядывающий в справку за тем, чтобы почитать, что такое звёздочка.Инфибо Не осилишь, бросай
>>908082>некоторые новые прогиОни должны запускаться просто после замены версии в заголовке. Если не запустятся, значит в системе нет необходимых функций (тот же iwicimage появился в винде только с третьего сервиспака хр). В общем, ты не туда копаешь.
>>908167>Если не запустятся, значит в системе нет необходимых функцийИх я и собираюсь добавлять. А чтобы их добавить, нужно компилить исходники, которые я и собираюсь сделать.>>908167>тот же iwicimage появился в винде только с третьего сервиспака хрВо втором версии х64 тоже должен быть.
>>908319Пока я тут ядро ковырял, кто-то запилил враппер для прог:https://habrahabr.ru/company/reactos/blog/319110/
Как отключить контроль вызовов, чтобы компилировались инструкции типа __asm call 0x00000000?
Сап, Ананасы. Поставил себе Иду. Как сделать так, чтобы в псевдокоде отображались значения переменных из других функций? Не просто "dword_3D08E04", а именно содержимое этой переменной, например, "хуй".Сначала всё так и работало, но затем я решил поковыряться в настройка и где-то напортачил
>>911549Проблема решена, это я дурак.
>>891716 (OP)Ура, два года все го прошло, тред появился. Научите как написать свою ОС на ассемблере? Почитал там калашникова, вот это все, про прерывания, флаги, регистры про 2^8. Вообщем мне интересно с чем именно взаимодействует ассемблер, во что преобразовывается, как IDE(а fasm, masm и прочие это IDE которые преобразует буковки в машинный код) как они заставляют работать процессор, вот это все. Не, ну понятно что там машиный код хуе-мое но все же. Алсо, реквестирую способы как написать свой ассемблер с нуля. Также всегда было интересно как погромировали самый первый в мире комп? Это щас ты юсб пограматор запустил, 2 провода в микроконтролер засунул и все есть и ты такой крутой мигаешь гирляндой.
>>911684Тененбома читал? Операционные системы, архитектуру*
>>911684>Также всегда было интересно как погромировали самый первый в мире компНадыбай писульки Адушки, она там для манямашины что-то накодила
>>911684По чертежам Бэббиджа и фон Неймана собирали, вручную создавали электрическую схему вместо набора кода.
>>911684Нахуй иди, быдлан из /b/.
>>911684Васм (найдешь где-нибудь) дамп. Заклинание кода от Аквилы.
>>911684По написанию ассемблера (и пердолинг сигналов) - nand2tetris на курсере. Более глубоко (и сложно) - Computation Structures от мита на едх. По осям - научись в асм и читай "процессор интел в защищённом режиме" с васм.ру и, наверное, Таненбаума.
Про защищенный режим Зубкова же читать надо.
>>892456А оли? Еще в 32 битной винде есть консолька дебаг.
>>911984Я в Оле так и не понял, как искать значения в памяти (по типу ArtMoney).
https://habrahabr.ru/post/230359/Поясните за эту вещь, аноны. Сори, я не такой уж знаток но как я понел тут специально для тупых запилили тот же ассемблер, но работающий на высокоуровневых языках. В чем тогда профит учить асм в 2017?
>>911991> В чем тогда профит учить асм в 2017?Для взлома чужих прог, как правило.
>>911991Это обычный редактор. Как notepad++, например.
Очередной раз сталкиваюсь с программой, защищённой протектором и не знаю, что делать дальше. Прошлый раз это была Enigma 3.70. С ней было проще - нашёл скрипт для OllyDbg, хотя мне и не удалось снять защиту, но нужные данные вытащил. Здесь же тот же самый скрипт пишет, что версия 5.50 и, естественно, завершается досрочно. Как тут действовать? Через GetWindowTextW нужного окна перехватил момент получения текста. Но дальше он как минимум в пять разных мест копируется, какие-то действия выполняются и всё - ключ не правильный, программа завершается. В OllyDbg только один брекпойнт на память можно ставить. Подскажите, в какую сторону копать.
Доставьте все книги и статьи мыщъха, а то я проебал.
>>912441lmgtfy https://yadi.sk/d/CxzdM1wyea4WP
Посоветуйте мануал по ассемблеру интел. Интересуют опкоды инструкций и раскуривание адресации в вызовах (прямая адресация, косвенная, дальняя и т.д. + опкоды вызовов и отличия E8, E9 от FF15).Алсо, какой опкод отвечает за вызов функции из кернеля, но не FF15? FF15 использует косвенную адресацию.
>>912858SYSENTER/SYSCALL ?
>>912858> Посоветуйте мануал по ассемблеру интелСоветую: https://software.intel.com/en-us/articles/intel-sdmФормат инструкций и опкоды во втором томе.
>>912895Как используется этот буллшит SYSENTER? Как при помощи него вызывать функи из kernel32? __asm { push 0; mov eax, ExitProcess; ;mov edx, esp; SYSENTER; };PS. Юзал SYSCALL под никсами, но там все немного по-другому.
Студент в треде. Возникла проблема с турбо ассемблер для процессора intel 8086. Суть проблемы в умножении слова на двойное слово. Все консультации проебаны, как и отношения с преподом. Вся надежда на тебя, анон. Пока моих скудных знаний хватает только но то, чтобы в AX занести младшие 2 байта двойного слова и умножить на слово. Что делать со старшими разрядами представляю смутно. Результаты отдельных действий заношу в ячейки размером в двойное слово. конечный результат имеет длину четверного слова. (d2+w3)-b1(w1b2-b1)/b3/w3 - Вот формула по которой вычисляю. b,w,d - переменный длинной в байт, слово и двойное слово.
>>913154Алсо, про нейтив апи знаю, но вызов Nt/ZwExitProcess что-то не получается. Это говно в хедере определено?
Булшит void *zwExit = GetProcAddress(LoadLibraryA("ntdll.dll"), "ZwTerminateProcess"); __asm { push 0; mov eax, zwExit; mov edx, esp; SYSENTER; };
Как определить индекс системного вызова по нужному мне апи? Пишу вспомогательный шеллкод для вызова апи по хэшу. Почти все готово, но вызов апи костыльный. Хочу сделать хорошо.
>>913162А, ты хочешь напрямую функции из ядра вызывать минуя ntdll? У меня тут есть кодец готовый - http://pastebin.com/vAY6KW0r
>>913195Смотри, что я хочу сделать. Вызов апи по хэшу для дополнительной антиотладки.http://paste.ofcode.org/EzJbj84TmgiJHsVBZ7fnpnНо не знаю, как правильно вызвать функцию, адрес которой получен. Можно сделать костыль: сохранить адрес в начале шеллкода в четырех байтах и использовать косвенную адресацию, но это выглядит мерзко.
>>913154>Как при помощи него вызывать функи из kernel32Никак. sysenter нужен для перехода из ring3 в ring0. В регистр eax заносится число, по которому ядро определяет, какую функцию вызывают. Крайне системозависимо.>>913157А в чём проблема расширить слово до двойного слова и перемножить? Или у тебя там 16 битный процессор?>>913159>вызов Nt/ZwExitProcess что-то не получаетсяА посмотреть, как реализовано в ОС нельзя?
>>913200Ааа, понял.>Но не знаю, как правильно вызвать функцию, адрес которой полученЗапушить аргументы, и потом:mov eax, funcAddrcall eaxНо если ты хочешь вызывать функции ядра через SYSENTER как тут >>913162 то тебе первым делом надо SDT индекс этой функции получить. А потом вызвать её можно вот так на х86 системе - http://pastebin.com/9CrNQZKj Соответственно callgatex86 вызывать вот так: return callgatex86(sdtIndex, 5, 0, ProcessHandle, BaseAddress, ProtectSize, NewProtect, OldProtect);
>>91320116 битный процессор, в этом все сложность.
>>913204>mov eax, funcAddr>call eaxТак и думал, что придется увеличивать число команд. А как лучше потом вызвать этот шеллкод? Если через CallWindowProc, то придется в начале шеллкода извлекать четыре переданных аргумента из стека. Создавать поток как-то слишком громоздко и я не уверен, что получится одной строчкой получить то, что вернула функция.
>>913206google:умножение 32 битных чисел на 16 битном процессореПервая же ссылка http://asmworld.ru/isxodniki/32-bitnoe-umnozhenie/
>>913210Аригато
>>913214Зачем выебываться японским языком, из которого ты знаешь пару слов?
>>913216Нани? Аната ва ватаси мо паверулевелу га вакаримасен!
>>913227>Что? Ты, я тоже, паверлевел не понимает!
Помогите, пожалуйста. Я хочу просмотреть пошагово выполнение процедуры в игре с помощью отладчика, но как только я переключаюсь на его окно, процесс игры приостанавливается. Само собой, выполнить программу нормально не получается, так как программа сразу же переключается на библиотеку ntdll. Как сделать так, чтобы окно программы было активно и при этом её можно было просматривать с помощью отладчика? Я использую OllyDbg.
>>9136411. Запускай игру в оконном режиме.2. Ставишь точку остановки на нужную процедуру.3. Когда срабатывает точка остановки, переходишь в отладчик и пошагово проходишь интересующий тебя код.
Как восстановить (создать) таблицу импорта у dll? Есть адреса, где вызываются, есть название функций. Попробовал через CFF Explorer, но это вручную надо вбивать сотни строк. Через ImpRec не получилось, пишет, что невозможно прочитать данные, когда указываю адрес загруженной dll.
>>915482Адрес IAT правильно указал в ImpRec? Если знаешь IAT - сможешь хоть вручную скриптом на каком-нибудь питоне сгенерить таблицу импортов, там простой формат. Но в целом, ImpRec должен работать. Покажи скриншот ольки и imprec с прописанными адресами.
>>915677Как этой программой пользоваться, не пойму. Нашёл, что нужно выбрать dll отдельно. Искал в гугле, но картинок нет, есть только текст.dll загружено по адресу 10000000. IAT в отдельной секции (если правильно понял) 1003E000. Т.е. там содержатся ссылки на функции. Эту секцию (адрес) надо указывать? Строк с названиями функций у меня нет, всё сожрал злобный протектор.
>>915724Должно все работать. Адрес ты указал правильный, он относительно базового адреса модуля должен быть. Названия импортов нинужны, оно само находит, но нужен правильный размер (не могу проверить). В любом случае оно должно по Get Imports хотя бы первые импорты правильно находить. Разверни невалидный узел, посмотри, что внутри пишет, какие адреса там и какие в ольге. Посмотри лог повнимательнее, обрати внимание на image size.
>>915755ImpRec не понравилось, что у меня программа была приостановлена через отладчик и из-за этого не получалось? Потому что сейчас указал те же данные и всё получилось. Только F9 нажал перед этим. Отлично, секцию импорта восстановил. Уже вручную пытался, действительно, всё просто, но очень долго. А вспомогательный скрипт писать нисколько не хотелось.А вот что делать с релоками? Есть один на всю dll. И тот, подозреваю, нужен был для энигмы. Когда энигма релоки переназначает, не понятно. После распаковки, но до копирования распакованного кода обратно в секцию или после распаковки и копирования? Компилятор VS располагает их в отдельной секции .reloc, которая последняя в файле и идёт после .rsrc. Но в моём файле после .rsrc идёт код энигмы.Ещё и потерял, где настоящая точка входа. Находил ведь, а записать забыл. А как нашёл - не помню.
>>915910> релокиЕсли ничего не поможет, есть старый трюк: ищешь OEP, ставишь бряк, дампишь. Меняешь у исходного файла базу (или занимаешь чем-то этот адрес до загрузки длл), пересчитываешь OEP на новую базу, ставишь бряк, еще раз дампишь. Ищешь различия, генеришь релоки.
>>915910>потерял, где настоящая точка входаНашёл по константе 0BB40E64E. Хорошо, что VS оставляет один и те же константы.>>915924Благодарю за совет.
>>915927Нашёл что-то похожее на таблицу перемещаемых элементов. Энигма не старается скрыть её. Точка остановки на память в месте, где должен быть релок - и тут же находится функция работы с ним.Только не получается простым копированием.>LoadLibrary() reports error 000000C1 (ERROR_BAD_EXE_FORMAT)Как всё муторно.
>>916241Возьми gflags.exe из Platform SDK/Debugging Tools For Windows и включи Show loader snaps для того exe, который грузит твою длл. Алсо скриншот нечитаемый.
>>916319А, ок, на скриншоте вполне валидные релоки. Посмотри еще, может в флагах образа IMAGE_FILE_RELOCS_STRIPPED стоит. Ну и размер директории релоков проверь.
>>916319Копировал-правил, в виртуалку (там запущен не распакованный оригинал), обратно, туда-сюда, ну что ещё надо тебе, загружаю правленый файл, F9 и заработало. Вот что ему не хватало? Столько времени просидел зря.А антивирусы крайне не любят Энигму, точнее дамп программы с ней. Знаю, что зловреды прячут в протекторе и они не детектятся, а у меня наоборот, выкусил из протектора и детект был 8 или 9, пока секции кода и данных протектора не удалил. Сейчас один чего-то ругается. Может быть, ему не нравится, что получилось? Файл-то дырявый получился, между секциями ничейное пространство. Ещё у меня есть подозрение, что можно распаковать файл из Энигмы без правильного ключа и вообще без ключа, но это можно потом поэкспериментировать. Хреновый из меня реверсер, столько дней угрохал на это.
Господа реверсеры, если я получу HINSTANCE библиотеки kernel32 и скопирую секцию кода в другое место, я смогу вызывать функции оттуда по их смещениям?
Аноны, не нашел "основной" тред, о котором говорится в шапке, поэтому пишу сюда. Нужно реализовать алгоритм Берлеке-Месси на Ассемблере nasm. Не бесплатно, имеется 3к. Дедлайн - 24.
>>916417railmaildail@gmail.com или id373341334Отлипли контактные данные.
>>916417> не нашел "основной" тредПрикрепленный ньюфаг-тред. gcc -S тебе все реализует, что захочешь.>>916409Скорее всего тебе повезет. Но могут попасться относительные ссылки на секцию данных, например.
Возможно ли в masm реализовать симуляцию нажатия ЛКМ / Клавиши клавиатуры - ?
>>916693SendInput()
Как вкатиться в низкоуровневое программирование и ревёрс? Пока есть поверхностное представление о архитектуре компьютеров и такое же знание ассемблера 8086 (уровня написать итеративный алгоритм Эвклида).Читать Талмуд Таненбаума не хочется, хочется, чтобы было повелее, и главное, побольше практики, задачек, каких-нибудь laba1.asm писать.
>>916728повеселеефикс
>>916728Просто берёшь и вкатываешься. Для начала научись пользоваться Идой, если ещё не умеешь. А потом сам себе ставишь задачи. И учишь то, что для этого необходимо.
>>916696А по подробнее, не так давно въехал в asm.
>>916976Вот держи https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms646310%28v=vs.85%29.aspx , погуглил за тебя. Это через WinAPI делается.
>>916979Oops , извеняюсь за свою тупость. Весьма благодарен.
>>916976Возникла проблема с восприятием этой функции(точее с параметрами), как к примеру отправить нажатие NumLock / просто нажатие ЛКМ - ?
>>917013Что я должен поместить в unsigned int - Массив клавиш - ?
>>917021Там же всё элементарно, ты чего на ровном месте застрял? Первый параметр - количество передаваемых структур INPUT, второй - сам массив инпутов, третий - размер структуры INPUT. Щёлкаешь на INPUT и смотришь, что там должно быть. Первый параметр - тип инпута и так далее. Всё расписано же.
>>917034Допустим, мне нужно симулировать простое нажатие лкм ->invoke SendInput, 1,;(кол-во передаваемых структур);massiv,0;(т.к мне нужно использовать INPUT_MOUSE);Так вот, я не совсем вникаю в то, как должен выглядеь массив, и он должен располагаться в .data сегменте или .codeМассив должен быть типа:massiv structLButton = 0x01ends-?
>>917090или там где уменя 0 должно быть x,где x=$-massiv - ?
>>917090Ну написано же в документации, ну. Зачем ты в асм полез, если не можешь документацию читать? Ну возьми тогда mouse_event, keybd_event они проще, система за тебя сама SendInput соберет.> он должен располагаться в .data сегменте или .codeДа хоть в .rsrc, всем похуй.> как должен выглядеь массивКак массив. Структуры городить не обязательно.start: invoke SendInput,2,events,28 invoke ExitProcess,0events dd INPUT_MOUSE ; INPUT.type dd 0, 0 ; MOUSE_INPUT.dx/dy dd 0 ; MOUSE_INPUT.mouseData dd MOUSEEVENTF_LEFTDOWN ; MOUSE_INPUT.dwFlags dd 0, 0 ; MOUSE_INPUT.time/dwExtraInfo dd INPUT_MOUSE ; INPUT.type dd 0, 0 ; MOUSE_INPUT.dx/dy dd 0 ; MOUSE_INPUT.mouseData dd MOUSEEVENTF_LEFTUP ; MOUSE_INPUT.dwFlags dd 0, 0 ; MOUSE_INPUT.time/dwExtraInfo
Как в asm выглядит синтаксис Point структуры, что бы получить x и y через GetCursorPos - ? Забил покуда из за недостатка знаний на SendInputs(т.к так и не разобрался, как это работает), использую "устаревшие" как мне говорят mouse_event, вот.
>>917409Да , забыл сказать, работаю в masm32 , использовать int33 и использовать CX и DX - не получится .
>>917413.dataPOINTER STRUCX DD ?Y DD ?POINTER ENDSXX DD ?YY DD ?.codestart:invoke GetCursorPos, POINTERMov eax,POINTER.XMov XX,eaxmov eax,POINTER.Ymov YY,eaxMOV edx,XXЧто делаю не так?
>>917428С чем связана запись в Y - Нуля, а в X - 4-ех ?
>>917466Я вот вижу, как ты определил структуру (тип), но не вижу, где бы ты создавал переменную этого типа. Не знаю масма, если что.
>>917476Переменные должны были быть long , но как их вписать в асм'е покуда хз.Решил путемoffset'a а точнее ADDR.в MyPoint.x записываются координаты x,а в MyPoint.y записываются координаты в y,.dataMyPoint POINT <>.codestart:invoke GetCursorPos, ADDR MyPointmov eax,MyPoint.xmov ebx,MyPoint.yinvoke ExitProcess,0end start
>>917479Ну вот, сам решил, мог бы и не спрашивать в треде.> Переменные должны были быть long , но как их вписать в асм'е покуда хз.Очевидно, что никак (хотя в масме вроде были алиасы). Все эти int/uint/long/ulong/size_t и указатели в 32-битном коде - это дворды, т.е., dd.
>>917485>Очевидно, что никак (хотя в масме вроде были алиасы). Все эти int/uint/long/ulong/size_t и указатели в 32-битном коде - это дворды, т.е., dd.За это благодарен.>Ну вот, сам решил, мог бы и не спрашивать в треде.Я ожидал что мне поможет кто-то более опытный, и мне не нужно будет копаться на всяких форумах/бордах/электронных книгах и тратить время.
Вообще , было бы приятно, если бы кто-нибудь поделился источником где можно прочитать о создании POINT стрктур в ASM, т.к не совсем понятно как создается и выглядит MyPoint структура по примеру " MyPoint POINT <> " Как на пике , или - ?
Где может храниться информация о регистрации? Приложение написано на VB5 в далёком 2003 году, компиляция в Native. ProcessMonitor ничего дельного не показывает, брекпойнт на CreateFileW ничего не дал.C:\Windows\Registration\R000000000006.clb - погуглил, "файлы зарегистрированной базы данных COM+ элементов", не то.HKCR\CLSID\{00000010-0000-0010-8000-00AA006D2EA4} - фигняHKCU\Software\Classes\Licenses\F4FC596D-DFFE-11CF-9551-00AA00A3DC45 - опять не то, свободно гуглится GUIDИ прочее в таком же виде.Как ещё может проверяться регистрация и где может храниться? Брекпойнт на память на строке "Trial" всплывает очень глубоко внутри kernel32 на подсчёте её длины, а до этого в MSVBVM60.DLL. Это создание окна. Неужели есть отдельная полнофункциональная версия?
>>919819Так есть жи декомпилятор от русского автора. Много интересного показывает, и native ему не помеха.
>>919957VB Decompiler Pro? Его и использую. Ида так же дизассемблирует. Но проблема в том, что не могу найти ни место генерации ключа, ни место хранения данных о регистрации. В программе (отдельном модуле, их много, но ничего другого не загружается) всего несколько десятков функций. Но нет ничего. Не пойму, как программа определяет, что она не зарегистрирована. Как в VB может такое быть? Может быть, получается помимо отладчика через p-code что-то выполнить? Нет идей.
>>920030Что за программа? Уверен, что она вообще умеет превращаться в полную версию, а не качать апдейт при вводе правильного ключа, например?
>>920030А нет, что-то нашёл. Очень уж непонятен этот Native VB. После замены условия программа завершилась сообщением об ошибке "No current record." Значит, в базе данных где-то должен ключ храниться. А база данных "Standard Jet DB". >>920100Да ни в чём не уверен, разве кроме скачивания чего-то из интернета, потому что в то время это было не распространено. У меня даже не получается посмотреть, что будет после завершения триала, т.к. счётчик не уменьшается.
Посоветуйте литературу(видеокурсы,статьи и прочие ресурсы)для новичка.(хочу вкатиться в ас. хз с чего начать).
>>920403Ассемблер: абсолютно похуй, как его учить - можно хоть с Human Resource Machine начать, продолжить TIS-100, а потом уже что-то серьезное читать. Реверсинг: beginners.re, а потом уже сам поймешь, надо ли оно тебе, и что учить дальше.
1. Скопировал из гайда такой код , в fasm его скомпилировал.2. Сделал образ диска .iso и в VirtualBox поставил его в виртуальную машину, чтобы с него считывалась эта ОС, выводящая hello world.3. Выводит ошибку.Что я делал не так?
>>921519Сделай образ дискеты, а не диска.
Поцаны, а на каком году изучения асма появляется способность понимать чо происходит в реверснутых программах?Когда сам асм пишешь понимаешь, что происходит. А понять ту мешанину, после декомпиляции очень сложно.
>>921878Ни на каком. Для поднятия скилла реверса нужно, как ни странно, реверсить, и чем больше, тем лучше.Мимо ньюфаг и ОП
>>921878> А понять ту мешанину, после декомпиляции очень сложно. Чтобы понять выхлоп HexRays, нужно не лениться восстанавливать и прописывать типы функций и прототипы, не лениться убирать дубликаты переменных нажатием =.Чтобы научиться понимать дизасм, можно в комментариях к дизасму писать псевдокод, подражая HexRays:mov edx,eax ; edx = eaxshl edx,2 ; edx = eax × 4add edx,eax ; edx = eax × 4 + eax = eax × 5shl edx,1 ; Епт, да это же умножение на 10!А потом, с опытом, придет способность делать то же в уме (а также пользоваться правильными инструментами или писать их самому, чтобы не делать этого в уме).
>>922422Вот эт интересно, а не то что анон выше посоветовал, чтоб приседать на бутылку было не больно, нужно приседать на бутылку. Ахуительные советы блять. Но ведь есть жи особенности как чо делать. Сам то наверное как родился первую прогу реверснул и все понял епт.
>>922871>чтоб приседать на бутылку было не больно, нужно приседать на бутылку.Тут ты обосрался.Судя по местным заседалам из /po/ эта тактика работает. З.ы пока не искатаешь дисциплину ЭВМ хотя бы поверхностно, хуй ты станешь адекватным реверсером.Да и к тому же что бы понять ну "мешанину" после декомпиляции нужно хотя бы немного изучить структуру компилятора которым и была "написана" программа. Ну и как совет больше практикуйся приседай на бутылку , не в реверсе а в написании программ на ASM.
Кто-нибудь кроме меня тут вообще пытался декомпилировать винду?А то в одиночку как-то медленно выходит.
>>922871>Сам то наверное как родился первую прогу реверснул и все понял епт.Расскажу свою историю.Реверс давно меня заинтересовал, поэтому плохо помню, как учился.Сначала кодил на С(++). Даже не понимал, зачем нужен этот Debug, мне и Release подходит. Как-то потихоньку заинтересовался асмом, когда нажимаешь "Go to disassembly" в Visual Studio интересно было смотреть, во что превращается исходный код. Даже каким-то образом скачал Иду, наверное 5.2, а может и из 4 версии. Но ничего не было в этой программе понятно. Благодаря книге "Образ мышления - дизассемблер Ida" разобрался в этой программе. Но до этого мне понадобилось около 2 месяцев на изучение ассемблера, потому что было абсолютно непонятно, то там происходит. Не помню, почему так долго, может быть, из-за учёбы, а может быть некуда было спешить. Постепенно увлекался, это было как хобби.А вот сейчас, когда пытаюсь зарабатывать с помощью реверса, стало понятно, что все эти годы занимался фигнёй. Не было у меня практики. Разреверсить функцию или сетевой протокол в незащищённой программе могу. С некоторым трудом могу восстановить формат файла. Может ещё чего по мелочи. Но если программа как-то зашифрована или накрыта протектором, то уже не знаю, что делать. Приходится отказываться от приличного количества работы только из-за того, что не знаю, как её выполнять. Так что прав тот анон. Только практика может сделать из тебя реверсера. Когда постоянно сталкиваешься с чем-то незнакомым. А не так, как получилось у меня. Теперь приходится навёрстывать. А ещё на асме не пишу.
>>923381Иногда смотрю, как в kernel32.dll или user32.dll выполняется функция или почему возвращает неверный результат. Но не так глобально, как у тебя. Тебе в ReactOS надо вливаться. Или слишком разные у вас пути?
>>923391Конечно разные. Они со своей политикой не подсматривания в сырцы и не дизасма саих файлов далеко не уедут. Собственно по их прогрессу и так видно.Да и видел я сырцы Вынь2000 и WRK, поздно мне туда.
>>923398> политикой не подсматривания в сырцыУ них скорее политика "не пойман - не вор". Внутренние структуры и функции совпадают - они же не из астрала эти данные взяли? Или у них clean room с двумя командами?
>>923400>Или у них clean room с двумя командами?Таки да, иначе бы их давно пидорнул МС. Только чистая комната спасёт их от озалупливания Майкрософтом, и они это прекрасно понимают. Поэтому у них до сих пор глючный клон 16 летней ОС.Впрочем, совпадение там весьма условное. Я как-то сравнивал пару рандомных функций с кодом WRK- совсем иной подход.
>>923405Ну в общем процесс идёт, появилось пару вопросов. Надекомпилял как смог функцию IovUnloadDrivers, из Win2k3 SP2 x64, вот результаты:http://pastebin.com/uH1gD8jEВ общем вопросы таковы:Что за взаимная мастурбация с переменными v16 и v17? Что я тут проебал?Какой тип выставить переменной Object? Функция KeWaitForSingleObject жрёт PVOID, но тут явно что-то большее должно быть. Может это связано с дрочкой v16 и v17.И вообще, скажите, что я сделал не так. В реверсе полный дуб.
>>923555> ObjectОчевидно, что это структура, и ты ее не задефайнил. Гугли DISPATCHER_HEADER для начала.
>>923385> Только практика может сделать из тебя реверсера>Приходится отказываться от приличного количества работыДохуя напрактиковал отказы от работы?
>>923583>DISPATCHER_HEADERАга, подошло. Правда в ядре чаще юзают KEVENT и ему подобное, но ничего кроме лишнего уровня она не добавляет. Так же заметил функцию в заголовочном файле, которая сворачивает всю инициализацию объекта ожидания до вызова одной строчки. Жить стало лучше, жить стало веселее.Вот вопрос- а как такое отгадывать? Остальное я достал из вызываемых функций, которые хотя бы как-то описаны, а вот этот объект юзается только в функции, принимающей PVOID, то есть никакой информации толком нет. Правда конкретно эту я бы мог отгадать сам по примерам другого кода, использующего функцию KeWaitForSingleObject, но как быть с кодом, где никаких подсказок нет? Как реконструировать структуры по коду?Так же я заметил, что проебался с маппингом переменных, так как строки driverObject = 0i64; have_next_device = 0; while ( driverObject ) {Явно ошибочны. Размаппил одну из них, переименовал по вкусу, вроде теперь всё нормально. Зацените:http://pastebin.com/exhumh83
>>923955> как быть с кодом, где никаких подсказок нетИз названия очевидно, что KeWaitForSingleObject хочет объект, а PVOID должен на что-то указывать. Гуглим или реверсим KeWaitForSingleObject, чтобы узнать, что у объекта должен быть заголовок, и какой тип в этом заголовке типу какого объекта соответствует.> ничего кроме лишнего уровня она не добавляетБудешь лениться - запутаешься.> Как реконструировать структуры по коду?Найти код, который структуру создает (если повезет) и код, который ее использует. Поля структуры можно восстанавливать полуавтоматически (правой кнопкой, Reconstruct type возможно, это HexRaysCodeXplorer добавляет, не помню), есть еще Create struct from data. Назначение полей выясняется долгим и мучительным анализом работающего с ними кода (или, в случае винды, гугл и символы весьма помогают).
>>924101>или, в случае винды, гугл и символы весьма помогаютДа вот у меня сейчас такие функции, про которые гугл выдаёт 3,5 ссылки, из них одна сюда и одна на выложенный мною код. Вообще странно, что никто не выкладывал свои раскопки в этом направлении. Не верю, что я первый тут копаюсь.АЛСО, зачем сагаешь? Тред хороший же.
Пробовал ли здесь кто вручную запускать длл напрямую из памяти, накрытую темидой? У меня почему-то крашится на пикрелейтеде. Если загружать длл через LoadLibrary то всё отлично пашет. Для запуска длл юзаю https://github.com/tishion/mmLoader
>>924883Там проблема какая-то со структурными исключениями.https://habrahabr.ru/company/xakep/blog/260577/>для реализации поддержки исключений в динамически размещаемом коде на x86 платформе можно выделить минимум три способа:>Установка/подмена флага ImageDispatchEnable для процесса.>Подмена типа региона памяти на MEM_IMAGE (для PE-образа без SafeSEH).>Реализация собственного диспетчера исключений в обход всех проверок.Может быть, это оно?
>>924883Короче разобрался. Нашёл другую либу для загрузки PE из памяти - https://github.com/DarthTon/Blackbone/ С ней всё заработало.
Господа /pr/ограммисты Немного не по теме но подкиньте какой-нибудь литературы для вкатывания в дизассемблированиеБлагодарю покорно :3
>>925472http://bfy.tw/9s7gНеблагодари :3
>>925472>Немного не по темеНа самом деле по теме. Это я проебался с названием.>>925552Не ходите по этой ссылке, там вирус! У меня от этой фигни брат на функциональных языках писать стал. И говорить.
Путём читания небольшого гайдика "Как написать свою ОС часть 1" и экспериментов я сделал программу, которая работает без опероционной системы и выводит на экран некоторое число, сохранённое в регистре ax. А затем выводит "press any key..." и ждёт когда кто то нажмёт эникей. Но ведь больше 510 байт программного кода написать нельзя. Чтобы дальше пойти, надо на месте этих 510 байт остаьные 2 — сигнатура написать загрузчик операционной системы. Но как это сделать? Что он из себя вообще представляет?
С тех пор как я начал изучать ассемблер я начал переставать понимать си. Мне кажется что си это вообще какой то бредовый эзотерический язык. И как я раньше на нём мог программировать?
>>925581-кунРаспишу свою проблему подробнее. Я хочу для себя писать программки, работающие без специальной ОС чтобы создать армию дронов-автоматчиков. И при этом мои программы будут, естественно больше 510 байт. Так как же загрузить в оперативную память код из участков памяти после первого (загрузочного) сектора?
>>925748-кунУже, похоже, решил проблему. Но я ещё не проверял, спать хочу. Вот здесь http://metanit.com/assembler/articles/MiniOS.php я нашёл код и загрузчика и ядра и даже программы для изменения текста.Надеюсь меня не зобанют за рекламу сайта, на который только что наткнулся
Какие функции в биосе чтобы выводить пиксели, а не буковки?
>>927128NEKOKIE. так в видеопамять напрямую и писали.
>>925882Посмотри ещё http://osdev.ru/viewtopic.php?f=4&t=808Это загрузчик ядра OS/2 (кто-то помнит такую?) - со своей собственной функциональностью запуска модулей и проч... в итоге получился такой небольшой DOS. Может жить и отдельно от OS/2 - на FAT/FAT32 разделе.
Опять протектор, VMProtect версии 2.07. Как пишут на васме, сложнее протектора нет. Определяет отладчик (OllyDbg с плагином StrongOD в Windows XP успешно скрывается), определяет виртуальную машину (а тут уже не знаю, что делать, разве что устанавливать второй ОС WinXP). Даже дамп не снять.У кого-нибудь есть эта версия протектора? Сам нашёл только 2.1.0.
Не понимаю. Почему у меня выходит бесконечный цикл? По идее cx должен уменьшаться.
>>927188Случайно 2 одинаковые картинки прикрепил из-за бага двача
>>927188бамп, срочно надо. А то завтра смогу только после 15:00 вернуться к программе, но на завтра я запланировал просмотр анимы.
>>927141>Как пишут на васмеОн же лежит уже несколько месяцев?АЛСО, отличный сайт для изучающих глубины Windows:http://geoffchappell.com/Описание структур со смещениями для всех версий венды от NT 3.5 до десяточки, функции и ещё много всего. Я охуел от полезности этого сайта и решил его себе скачать целиком.
>>927215>Описание структур со смещениями для всех версий венды от NT 3.5 до десяточкиhttp://msdn.moonsols.com/winxpsp3_x86/PEB.html
>>927215>Он же лежит уже несколько месяцев?http://wasm.in/forum/threads/kto-nibud-lomal-vmprotect.20683/
>>927242Там только до спермооси, десяточки тонет.>>927259Что и доказывает, что wasm.ru лежит.А на том форуме проебали 4 года форума и весь сайт.
>>927188-кунТак и не понял в чём проблема, но решил тем что заменилloop метканаdec cxcmp cx,0jz метка
Какие книги, ресурсы по ассемблеру посоветуете для начинающего?
>>927329>Так и не понял в чём проблемаА где у тебя там было вычитание из cx?>dec cx>cmp cx,0Нет нужды сравнивать с нулём.
>>927359> А где у тебя там было вычитание из cx?А что по-твоему делает loop?мимо другой анон
>>927363>А что по-твоему делает loop?LOOP rCXDecrement count; Jump short if count!=0Ну да, не знал об этом. Ни разу не попадалась такая команда. В таком случае, у него cx = 0 в самом начале и не видно, чтобы ещё какая-то инициализация была, кроме той странной функции, что не приведена.
>>927329Дональт Кнут.
>>927373proverka увеличивает значение cx
В какой участок памяти записывать байты со значением RGB (24 битный), чтобы таким образом выводить информацию на экран? И какие функции биоса надо использовать?
>>927338asmworld.ru, я там научился хелло ворлд делать в досе и простейший калькулятор. Потом походил по другим сайтам и теперь могу выводить и вводить буковки без специальной операционной системы (без линукса, виндовса).
>>927650Если ты про Windows, то забудь сразу. Если DOS, то научись сначала чем-нибудь попроще пользоваться, типа https://en.wikipedia.org/wiki/Mode_13h а потом уже научишься VESA ебать.
>>927857Походу это тот же чел, что пишет на асме на голом железе:>>925581
>>928266В этом случае совет все равно в силе. int 10h/func 00h/mode 13h - это BIOS.
Мне кажется, что мной выбран неправильный способ решения моей проблемы.Мне нужно обойти защиту, которую так и не смог снять (VMProtect).Защита контролирует контрольную сумму всех исполняемых файлов (легко обходится), наличие отладчика (тут уже никак не получилось) и, самое для меня трудное, проверяет, кто вызывает функцию из защищённой dll. Если вызывает нужный exe-файл (не знаю, как определяет, только по имени или как-то ещё), то всё в порядке. А если в стеке присутствует что-то другое (даже не на вершине стека, а предыдущая функция), то функция не срабатывает, как надо.Идея у меня такая - увеличить виртуальный размер последней секции (не хочу, чтобы размер исполняемого файла менялся) и спроецировать на свободное место свою dll, которая будет вызывать нужные функции и которая заменит несколько функций в импорте исполняемого файла.Чтобы избежать инъекции кода (как бы защита контролирует и этот способ, но не проверял, доверился описанию), добавил свою dll в импорт exe, которая при загрузке должна будет делать всю работу.Как решаются подобные задачи?
В чём различия масма, фасма, тасма? Пойдёт ли код, написанный под один ассемблер, к другим?
>>929894D> В чём различия масма, фасма, тасма?В директивах компилятору. В способе записи адресов (все эти квадратные скобки, offset, addr, ptr и т. п.). В макроязыке. В основном, код от одного ассемблера можно преобразовать в другой очень быстро, вручную или какими-нибудь регэкспами. А еще есть AT&T-синтаксис, у них все через жопу.
>>929857>Идея у меня такая - увеличить виртуальный размер последней секции (не хочу, чтобы размер исполняемого файла менялся) и спроецировать на свободное место свою dll, которая будет вызывать нужные функции и которая заменит несколько функций в импорте исполняемого файла.Разве вмпротект позволит это сделать? Он же должен чекать контрольную сумму того исполняемого файла которым он накрыт. Или там только длл накрыта, а экзешник не накрыт?
>>930247>Он же должен чекать контрольную сумму того исполняемого файла которым он накрыт.>>929857>Защита контролирует контрольную сумму всех исполняемых файлов (легко обходится),
>>929857Всё сделал, как планировал. Увеличил виртуальный размер секции, модифицировал MemoryModule, чтобы можно было загружать исполняемый файл без выделения памяти, создал две dll, чтобы не было инъекции, одна загружается через импорт и проецирует вторую в нужную секцию. Вторая подменяет адреса нужных мне функций и реализует необходимый функционал. Всё успешно загружается, лог пишется. Но ничего не работает. Неужели протектор контролирует адрес вызываемой функции? Или контролирует границы секции, было так, а стало больше и вызывает кто-то за пределами? Ну что ему ещё не хватает?>>930247>Или там только длл накрытаНакрыта dll, но защита контролирует целостность всех остальных модулей. Даже удаляет лишние dll, хорошо, что только по расширению проверяет, достаточно переименовать и такой файл не трогает. Размер не проверяется, только CRC32, что очень легко обходится.
Здравия желаю господа.Так уж получилось, что у меня есть фетиш - писать ботов.До этого ограничивался Cheat Engine-ом для поиска базовых адресов, оффсетов и т.д., но развиваться все же хочется.Знаний минимум, ботов писал на простеньком Autoit, поначалу были обычные кликеры, потом бот работающий с пикселями, а теперь уже бот работающий с памятью.Так уж получилось, что хочу поднять уровень своих знаний и доставать самую годноту с помощью Ollydbg(если я правильно понял, он имеет прямое отношение к ассемблеру).Т.е., с Cheat Engine не напишешь бота с функцией Vac хака(функция вакуума, которая притягивает всех мобов к персонажу) и т.д., тут уже нужен Ollydbg для получения этих данных.Будьте любезны, накидайте гайдиков и т.д., где затрагивают подобную тему.Заранее премного благодарен.
>>930397OllyDbg - это отладчик. С помощью него можно найти адреса необходимых тебе функций. Но вот писать своего бота ты будешь на каком-то языке программирования. Можешь выбрать любой язык, какой понравится.
>>930402Спасибо за ответ анон, я это уже знаю.Видимо я неправильно объяснил...Я буду и дальше писать на Autoit, благо все нужное мне в нем есть, вплоть до инъекций, единственный его большой минус - отсутствие многопоточности.Ну так вот, я просто хочу научиться доставать из Ollydbg данные, которые с помощью Cheat Engine не найти. Пример:Я вижу HP и MP своего персонажа и легко нахожу их базовые адреса и оффсеты с помощью Cheat Engine, делаю поиски этих данный с 4byte. Но и есть и такие вещи, которые я не вижу. Например, скорость атаки, скорость бега, расположения мобов на карте и т.д.Вот для поиска именно таких значений мне и нужен Ollydbg.
>>891716 (OP)Да вытолко пиздеть умеете, а когда надо отреверсить блоб модуль ядра нвидия то говорите что нвидия ненужна.
>>930664Это люнупс не нужен.
>>930793Without GNU/Linux there will not be 70% of jobs in IT.
>>930797Ну да, люнупс своим требованием квалификации создаёт рабочие места на пустом месте.Впрочем, мы отклонились от темы.
рейт май код, двач.http://pastebin.com/GHbjYV0hОн должен предлагать ввести число, потом ввести второе число, потом ввсети + или - или * или / и вывести что получилось. Но не всегда можно увидеть что вводишь и делить нельзя.на голой без ОС
>>930389Следующий день подходит к концу, а борьба продолжается. Защита действительно проверяет адрес вызывающей функции и, если он не равен тому, что в исполняемом файле, функция не работает. Такое нагородил уже в exe, приходится убирать весь код вокруг вызова, размещать его в другом месте, а здесь уже делать возможность вызова нужной мне функции. Хорошо, хоть у "cmp eax, 0FFFFFFFFh", которая идёт сразу же после функции, и "ret xxx" размер опкодов одинаков, а то ещё большие костыли пришлось бы городить. И всё это вручную. Плохо быть мной.
>>931238Какая-то идиотская, ни от чего не защищающая проверка. Ищется в .exe байт 0xc3, все функции из .exe вызываются через трамплин, заменяющий оригинальный адрес возврата на адрес байта 0xc3, а за ним уже push-ащий оригинальный адрес возврата, все это можно автоматически генерить.
>>931323>Какая-то идиотская, ни от чего не защищающая проверкаИ это хорошо. Разработчику достаточно было немного усложнить свою защиту и было бы уже очень не просто. А тут даже исполняемый файл можно изменить без сложностей. Хорошо, что разработчик не понимает в реверсе. Зато защиту свою продаёт за даллары.>Ищется в .exe байт 0xc3Не пойму, что ты имеешь в виду. Можешь в псевдокоде показать?Вызываемая функция находится в защищённой dll, адрес возврата в этой функции проверяется и, если он не совпадает с тем, что в exe файле, функция просто не работает.
>>931390> разработчик не понимает в реверсеЛолшто? Вмпротект сделал чувак с exelab (бывший cracklab) и как раз в реверсе он разбирается охуенно.> Не пойму, что ты имеешь в виду. Можешь в псевдокоде показать?Ну берешь и генерируешь себе для каждой вызываемой функции что-нибудь такое:yoba:pop edx ; Старый адрес возвратаmov eax,dword ptr[dll_base] ; Хэндл/базовый адрес DLLadd eax,RETN_RVA ; RVA любого байтика C3 из DLLpush eaxpush edxmov eax,dword ptr[dll_base] ; Хэндл/базовый адрес DLLadd eax,FUNC_YOBA_RVA ; RVA нужной функции в DLLcall eaxФункция вызывается, потом возвращает управление в DLL, но там C3 (retn), оно берет со стека следующий адрес и возвращается уже в твой код.
>>931408>Вмпротект сделал чувак с exelab (бывший cracklab) и как раз в реверсе он разбирается охуенноНет, ты не понял. С VMProtect всё в порядке. Сам протектор использован для усложнения реверса dll. Но вот разработчик этой самой dll как раз в реверсе не очень-то и понимает. Вот он и продаёт свое поделие за даллары. Надеюсь, он не предусмотрел таймаут между вызовами функций.>add eax,RETN_RVA ; RVA любого байтика C3 из DLLВ данном случае так не получится. Адрес возврата должен точно соответствовать определённому числу, тому, где находится вызов функции в exe. А после вызова идут проверки. Соответственно, чтобы вызов этой функции в самом exe работал, пришлось городить переходы в свободные области файла, а здесь делать нормальный вызов с возвратом прямо посередине существующей функции (а чтобы не мучаться с поиском этих функций, добавил их в экспорт).
>>891716 (OP)Поцоны, выручите ньюфага по ассемблеру, вернее ассемблеру в FASM. Хочу себе вывести на экран линию между двумя точками, как в пеинте. Пока что я только начал. Комментарии ставить не буду чтобы поучились реверс инженирингу.Так не работает почему-тоhttp://pastebin.com/mFP1UZR6
>>931863> Комментарии ставить не буду чтобы поучились реверс инженирингу.Отвечать не будем, чтобы поучился гуглить.
>>930908>е число, потом ввНеплоохо
Анон, дай готовый алгоритм для подделки CRC32 путём внедрения байт в произвольное место. В статье КК мне не понятны два последних (и основных) пункта, а приведённые листинги не полные.
>>933017Сходи по ссылкам в статье криса (если сдохли, есть веб.архив.орг). Там, в частности, упоминается CRC and how to reverse it, ее и читай. И там вроде код был.
>>933037>CRC and how to reverse itМоя благодарность тебе, анон. Не знал, как на английском задать подобный вопрос. Через него вышел на вот этот pdf https://sar.informatik.hu-berlin.de/research/publications/SAR-PR-2006-05/SAR-PR-2006-05_.pdf . Там есть исходный код.
>>924262В общем продолжаем банкет. Надекомпилял тут файлик:http://pastebin.com/dKrhniNVПроблема в том, что при компиляции обратно секция PAGEVRFC объявляется как Read/Write, а в оригинале она просто Read. В итоге при линковке получается две секции с разными правами. Всякие там#pragma comment(linker,"/SECTION:PAGEVRFC,R").не катят, как и R!W.В общем где я ошибся и как заставить компилировать в секцию с правильными правами?Ну и ещё у меня только 240 строк, тогда как в оригинале больше 300, ну да пофиг.
Просто интересно, ради так сказать удовлетворения моей убогой любознательности. А вашим эти РЕ можно на доширак заработать? Или это только форма искусства?
>>935428Что ещё за РЕ? Не пиши не понятными аббривеатурами.
Пожалуйста, дайте мне какой нибудь бесплатный дизассемблер.
Как я понимаю чтобы сделать таймер на ассемблере надо засечь число тактов и знать тактовую частоту процессоа. Как я понял число тактов можно засечь с помощью команды rdtsk, а как узнать тактовую частоту процессора?
>>935481Reverse Engineering очевидно же.>>935483Ida Pro 6.8, новее не утекали.Ну или Ida 5.0 раздаётся бесплатно официально.
красиво...http://pastebin.com/NaLMmafb
>>935572>Reverse Engineering очевидно жеНаписал бы РИ или RE.С помощью реверст инжениринга можно пересобрать какую нибудь простую игру и выдать за свою. И продавать.Но я так только думаю. И вообще нужны хорошие навыки как ассемблирования так и дезассемблирования.
>>935676>/ili niet?Пофиксил коммент, не благодари.
>>935676> bandicamВиртуалбокс умеет писать видео сам по себе (Устройства - Захват видео).
>>935676Для чего ты использовал rdtsc в своём коде?
>>935318В общем пришлось вколачивать костыль в билд систему, чтобы перед линковкой снимать этот атрибут с помощью link.exe.Вопрос, как обойтись тут без костылей, остаётся в силе.
>>937670> #pragma data_seg("PAGEVRFC")> #pragma const_seg("PAGEVRFC")> в оригинале она просто ReadЗачем тогда ты создаешь в read-only секции перезаписываемые переменные? Тебе не кажется, что в этом есть какое-то противоречие?
Как убрать надпись, выделенную желтым?
>>937721Хмм... Логично. Впилил это, когда массивы не были объявлены константными. Как всегда, компилятор оказался умнее меня.Блядь, 4 дня никто не мог посмотреть этот код и выявить эту мою тупейшую ошибку.Спасибо, анон, добра тебе. С твоей помощью полные сырцы ядра Windows XP стали немного ближе.Блин, куда бы вылить свои наработки? Всякие гитхабы и прочие битбэкеты выпилят результаты реверса винды на раз, кмк. А то вдруг кто присоединится.
>>937750На гитхабе, и на битбакете овердохуя результатов реверса, всем похуй. Ну или купи шаред-хостинг за бакс и подними там какой-нибудь fossil.
>>936632чтобы сделать шум
Я наконец почти доделал свой код. Эта программа запускает компьютер, вводит его в режим биоса 0x13 (графический режим) и рисует линию, координаты точнее номер пикселя концов, которой, записаны где то там в начале программы. Правда осталась парочка мааааленьких легкопоправимых багов линия может прорисоваться немного вниз от нижнего конца и непонятный баг виден если концы поставить в углах экранаИ ещё программа не оптимизирована. Если захотите оптимизировать, улучшить и всё такое то можете кидать ответом на мой пост код.Чтобы запустить её надо сделать загрузочный диск наверное и флешку можно с файлом .BIN, который сделается в FASMе. Я делал образ загрузочного диска и вставлял в виртуальный дисковод виртуальной машины, сделанной с помощью виртуал бокса.Вот ссылка на мой говнокод:http://pastebin.com/TMKksb6P822 байта.
>>937743попробуй хекс эдитором открыть, найти эту надпись и заменить на пробел (0x20)
>>937759>На гитхабе, и на битбакете овердохуя результатов реверса, всем похуй.А вот сорцы Вин2000 или там движка престо выпилили. А мой код уже содержит части утёкшего кода Вин2000.>fossilМне ртуть привычнее, ну да ладно.
>>937773Слово nodes заменил на casul, на casuls не получается заменить. Остальной текст хитрее закодирован, пока не удалось понять как.
>>937823>Слово nodes заменил на casul, на casuls не получается заменить.Очевидно, что для замены на строку большего размера нужно чуть большее, чем замена пары байт.>Остальной текст хитрее закодирован, пока не удалось понять как.Очевидно, что производитель этой фигни не хочет, чтобы удаляли пометку его авторства, и защитил её от нубов.
>>937839Всё, осилил. Возле nodes] был пробел, так что удалось вместить, а другие скрытые за кракозябрами слова, нашел по номеру версии и нику, они почему-то не было зашифрованы, заменил их пробелами.>производитель этой фигни не хочет, чтобы удаляли пометку его авторства, и защитил её от нубовНе понимаю, зачем так делать, вставлять себя любимого на видное место. По-моему лучше делать вывод информативным, но без излишеств.
>>937883>Не понимаю, зачем так делать, вставлять себя любимого на видное место.Напиши такую фигню сам, узнаешь.Впрочем да, выводить прямо в окне лишнее, думаю, лучше бы при загрузке баннер там, да в реадми строчка.
Nielsen database. Не понятно, как соединить всё воедино и каким образом кодируются числовые значения. Ни вьювера, ни средств по созданию и редактированию базы нет. Только сами файлы в количестве 5 штук. Буду рад любой информации.
Как обнуляют регистр хакеры: xor eax, eax или sub eax, eax?
>>938504xor
>>938525Тогда почему зомби топил за sub?
>>938543И где теперь Зомби, а?
>>891716 (OP)Какие функции биоса надо использовать чтобы записывать данные на жёсткий диск? А на периферию флешка, диск через дисковод. Правда я думаю что для периферии есть функции просто для пересылания сигнала.
В программе есть поля для ввода, как написать dll что бы это перехватить?
>>891716 (OP)Хочу получить базовый адрес kernel32 на си так, чтобы было независимо от версии ОС. Для этого делаю поиск по хэшу модуля. Когда нахожу нужную запись в списке загруженных модулей (то, что это она, видно в олли), возвращаю значения поля DllBase, но вместо адреса кернеля мне возвращается число 11000. Что у меня не так?Минимальный проверяемый кодес:https://paste.ofcode.org/3axP4kLLgPS99fPtFuvMcGh
>>938827Проверь структуру LDR_DATA_TABLE_ENTRY. Похоже, что у тебя там лишнее поле.
>>938883Да вот, смотри, структуры отличаются, но количество зарезервированных байт одно и то же.https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa813708(v=vs.85).aspx
>>893647ты говоришь странными словами.
Сап, реверсач. Есть одно говноизделие на базе модуля SIM900R и его Embbed AT. Помоги как дампнуть код с модуля. Плиз.
Как использовать графический режим VBE 2.0 11Bh 1280x1024x16M, если в регистр al не помещается значение больше 100h (256d)?
>>939620бамп
>>940249Код покажи. Ты как режим меняешь? Почему al, а не bx?
>>940262>>939620Всё, я уже разобрался.Надо сначала в al поместить 0x4F, вызвать перрывание 0x10, затем в ax поместить 0x4F02, в ич 0ч118 (номер режима. Я вібрал такой), вызвать опять 0x10, ну а дальше уже всё понятно. Начало экрана с памяти 0xA000
Почему дальше пиксели не выводятся? У меня предположение что что-то с памятью. Может надо в другие участки записывать?http://pastebin.com/0y7hXcCk
>>9403731) Установи в BX кроме номера режиа еще и бит 14, считая с 0 (0x4000). Это включит режим линейного фреймбуфера.2) Адрес фреймбуфера спросишь у функции 0x4f01.3) К сожалению, этот адрес будет за пределами 640к, поэтому тебе понадобится 32-битный защищенный или нереальный режим (гугли unreal mode), чтобы работать с фреймбуфером.4) Ну или рисуй по кускам, там вроде можно ебаться с окнами/банками (меня миновала эта участь, так что хуй знает, как там что). Гугли VBE switch bank.
>>940382спасибо за помощь.
>>940382>>940553С защищенным режимом нужно ебаться больше, и стандартные прерывания там не работают. А VESA легко позволяет переключать окна в реальном режиме. Функция 4F01h возвращает в ES:DI описание видеорежима, по смещению 0Ch находится FAR адрес подпрограммы, переключающей окна (параметры те же, что и у функции 4F05h, но работает без лишних расходов).См. статьи Сергея Андрианова в "Мире ПК" про VESA.
>>935676Ох, лол, вчера (сегодня ночью) то же самое написал.Правда я в твоём коде нихуя не понял.
>>940554> С защищенным режимом нужно ебаться большеПоэтому unreal mode - наше все.
Как в asm реализовать pointer ? Имея Base Address и нужный оффсет .к примеру game.dll+6552E8 и offset 0x12E464
>>942056mov ebx,[game_dll_base]mov edx,[ebx+0x6552e8]mov [edx+0x12e464],12345всякие dword ptr расставить по вкусу, алсо можно сделать lea и сохранить адрес на будущее
>>937750В общем чтобы обо мне не забывали. Откопал в ntoswrk.lib объектник с названием mmcompress, пустой правда.Интересно, это сжатая память планировалась ещё в XP (так как в 2000 я такого не нашёл)? Или я не так понял предназначение?
>>943177Что вы ковыряете хрюшу?Лучше бы дриснятку ковыряли и сделали швабодную реализацию DX12, а по проще это разобрать блоб нвидии и поудалять легаси затычки оттуда.
>>940373На GNU/Linux гораздо проще на асме писать, куча инструментов, диссасемблеров, hexdump и все все.
>>943189>Что вы ковыряете хрюшу?Базу для сорцов дай, я хоть дристянку ковырять буду. Ковыряю что есть.Впрочем имея на руках чуть более полные сорцы, что есть сейчас, можно их будет допилисвать до состояния дристы, спермооси, дристятки и более новых выкидышей МС. Это и планирую в будущем.
Как перейти в 32-битный защищённый режим в программе, работающей без ОС? И что делает селектор и как его назначить?
Как перейти в 64-битный режим в программе, работающей без ОС?
>>943208Идешь такой на сайт интела, качаешь Intel Architecture Software Development Manual, читаешь от корки до корки. В томе System Programming Guide тебе будет щастье.
>>943243>Intel Architecture Software Development Manualпри чем тут Intel когда у меня Эльбрус?
>>943208Писать 64 битными инструкциями.amd64 например.>>943273att ассемблер универсален. Ну а если эльбрус не работает то иди на сайт эльбруса в поисках Эльбрус Architecture Software Development Manual
>>943193Какую базу для сорцов? Продукты майков ковырять очень тяжело должно быть.Ну нвидии не менее тяжело, но у них хоть нет столько всякого дерьма.http://www.geforce.com/drivers/results/114232
>>943287Там основная часть - ненужно и шлак.Но есть блоб - модуль ядра 30мб с копейками.Вот его реверс индженерить было бы норм, было бы годно выпилить поддержку старых карт если там костыли, выпилить поддержку ксорга если там есть костыли для этого.Оставить DRM EGL для вейланда.
>>943289> есть блоб - модуль ядра 30мб с копейками.Вот почему божественный модуль интела весит всего 1-2 мб, а нвидия накопила хуй знает сколько, в каком стиле они там драйвера пишут?
>>943287>Какую базу для сорцов?Для XP это WRK да утёкшие сорцы Win2000. Ну и в ReactOS никто не мешает подглядывать, хотя это лишнее, они там накодили совсем не то.>>943287>нет столько всякого дерьма>>943289>блоб - модуль ядра 30мб с копейкамиАга конечно нет дерьма. Я из ntoswrk.lib только чуть больше 100кб среверсил, и то половина из Win2000 скомуниздил. А там всего-то 5мб. С копейками, ага.
Вечер добрый господа.Накидайте недо-геймхакеру-новичку книжечек для изучения основ ассемблера.Хотелось бы понимать, как работают все эти mov, call, ebx, esx и т.д.Т.е., понимать все творящее в Cheat Engine и OllyDbg, ну и т.д.Заранее очень благодарен вам.
>>943362>олько чуть больше 100кб среверсил, и то половина из Win2000 скомуниздил. А там всего-то 5мб. С копейками, ага.Ну главное среверсить низкоуровневые вызовы обращения к видеокарте и запросы, они же должны быть видимыми на асме то.Методом тыка узнать что за что отвечает и сложить все докучи, целый драйвер это 3мб кода должно быть в случае нвидии.
>>943576Они разве не опеншорс?Чит энжайны на C можно писать.
>>943576https://software.intel.com/en-us/articles/introduction-to-x64-assembly
>>891716 (OP)Посоветуйте, пожалуйста, русскоязычный можно и україномовний учебник по ассемблеру для ARM
>>943963В армы без знания английского лучше даже не пытаться лезть. Тебе придется читать гигантское количество разнообразных пдф, и никто для тебя переводить их не собирается.
>>944097Ладно, похоже придётся английские читать. Просто так будет дольше раза в 1.5-2.5.
>>943192А на венду этого всего нету,да.И гуя в винде нема.
>>893538Лучше вак отлаживай. Там интереснеемб дамп 2015го, который выложили в сеть уже устарел.
>>944422>отлаживайНаверное, разреверси. А чего там интересного? Бегло читал про него когда-то, защита так себе, учитывая такое количество читеров и читов. Он отладчик определяет, целостность файлов на диске и в памяти проверяет?А ту игру бросил реверсить, не по умениям она мне оказалась. Даже не смог дойти до OEP.
Как зарегить 2017 версию студии? Раньше в старых версиях можно было просто ввести ключ, который нагуглил в интернете.Допустим я хочу просто перевести триал дату вперед. Сложная ли там защита? Никто не занимался этим вопросом?
>>945318Зачем тебе интерпрайз? Чего не хватает в комьюнити?
>>891716 (OP)Какого фига на этой картинке структура сегментного дескриптора равна 32 битам, в то время когда на самом деле она равна 64 битам?
>>945553забыл картинку
>>945555Здесь два 32-битных слова, посмотри внимательнее.
>>945555Сука, всегда подгорает с этой картинки, за всю индустрию ПК, использующую этот ёбанный стыд и наслоение костылей в продакшене.
Не понимаю почему ошибка. FASM. gdtr — 48-битный регистр, dd — 32 бита, dw — 16 бит. В чём проблема?http://pastebin.com/svUkdrsU
>>945559Теперь понятно. Какой же ужасный рисунок. Как понять нижнее это первое или второе?Лучше этот.
>>945658У фасмы есть fword/pword и tbyte/tword для 48-битных и 80-битных операндов соответственно. Т.е., lgdt fword[GDT]. В качестве альтернативы можно оторвать размерность от GDT (GDT: dd 0x7e10 или label GDT_ at GDT перед lgdt [GDT_]).
>>945658Ахда, а ошибка в том, что метка при определении данных получает тип (размер) от определяемых данных. У тебя GDT dd, значит метке GDT присваивается "тип"/размер 32 бита, и значит при lgdt [GDT] фасм пытается сделать lgdt dword[GDT], что, разумеется, неверно.
>>945809>>945811Спасибо, няша.
>>944936>отладчик определяет, целостность файлов на диске и в памяти проверяетНет, он только чекает процессы, память и диск на знакомые сигнатуры. Ну и подписаны ли у тебя драйвераhttps://www.unknowncheats.me/wiki/Valve_Anti-CheatСвежее дампа нет, а на дворе уже 2017. Вот никак не могу понять: они вак вообще не обновляют или как?
>>891716 (OP)Я уже почти перешёл в защищённый режим. Но после это команды всё прекращается. Ошибка в виртуал боксе. Может это потому что я использу. virtual box? Может надо qemu использовать?http://pastebin.com/egDdQCM5
>>946177-кунИ в qemu проверил. Виртуальная машина просто перезапускается.
>>946201-кунВсё, я похожу понял что было не так. У меня бит P был сброшен, а когда он установлен то ошибки нету. Но я не понимаю из-за чего так. Он же вроде бы как используется другими программами.
>>891716 (OP)Я перешёл в защищённый режим, сделал глобальную дескрипторную таблицу, положил в сегментные регистры селекторы дескрипторов, но адресовать больше 1 МБ не могу. Защищённый режим вообще правда сущетсвует?http://pastebin.com/TXpR2hfu
>>946376> mov edi,0xA0000Ты включил LFB, но адрес, по которому этот LFB начинается, так и не получил. Дергай 0x4f01, по офсету 0x28 от начала информации о режиме будет адрес буфера.> mov cxНе делай так. loop в 32-битном режиме использует ecx.
>>946524>loop в 32-битном режиме использует ecx.А в 64 битном RCX.Ждём 128 бит, чтобы опять переписывать наш код на асме.
>>946583Пишу с ноута, выполняющего 32-битную ОС, рядом 32-битные планшет и телефон. Вокруг меня куча железа с 8- и 16-битными контроллерами. Какие 128 бита, о чем ты вообще?
>>946584Сейчас 64 бита норма даже для микроконтроллеров.Есть нужда в 128 битах, потому как памяти надо все больше, и инструкций все больше появляется, а они опциональные а не стандарт.AVX2 и все подобное должно войти в стандарт amd128
>>946584>Пишу с ноута, выполняющего 32-битную ОС, рядом 32-битные планшет и телефонНищеброд. Пишу с ПК х64 (24ГБ ОП), имею ноут х64(8ГБ ОП), даже телефон х64.
>>946524Спасибо, но я уже передумал учить ассемблер для x86(-64). Буду для ARM изучать.
>>946908Я пользуюсь железом, которое удовлетворяет мои потребности. В игори не играю.>>946932Лол, ну удачи. ARM-мирок с двумя десятками семейств, с фактически отсутствующими стандартами даже в пределах семейства, да еще без опыта доставит тебе множество веселых минут.
Совершенный, конечно, оффтоп, но все же.http://www.news-journalonline.com/news/20170213/sky-diver-injured-in-deland-remains-hospitalized
>>948119Совпадение?
>>948219Страшусь спросить, с чем?
>>948221>>948221Прости, лень печатать
>>947274>Я пользуюсь железом, которое удовлетворяет мои потребности.Нищебродские у тебя потребности. У меня сейчас две виртуалки крутятся, браузер с 9000 вкладок, система контроля версий с проектами в сумме с 1млн файлов, и прочий софт. И куча свободной памяти для файлового кеша, что делает работу быстрой как никогда ранее.А у тебя своп своп нехватка памяти пидор.
>>948431Тебя ебёт, какие у него потребности?А не должно
>>948438Просто из-за таких как ты прогресс стоит, а я не могу делать онли х64 софт. Давно бы выкинуть подсистему SysWOW64 из венды, она бы в полтора раза похудела со всех сторон.
>>948712>Просто из-за таких как ты прогресс стоитПрогресс стоит из-за таких как ты - которые срут на сосаче и выёбуются своим железом. А мог бы делом заняться, инновации вводить себе в анус
>>948431>>948712Бессмысленное увеличение разрядности регистров - это не прогресс. 64 бита для арифметики не так уж часто нужны. Это обычно либо финансы, где все равно свои типы с фикседпоинтом, и им похуй, на каком int они собраны, либо длинная целочисленная арифметика, которая тоже не зависит от размера регистров.Увеличенный размер виртуального адресного пространства с одной стороны - штука хорошая, ASLR всякие, меньшая вероятность проблем с фрагментацией. С другой стороны, с увеличением разрядности возникают все более неприятные проблемы с TLB, которые решаются еще более хитрыми способами, и детерминированности в работу системы это нихуя не добавляет.Браузер с 9000 вкладок - это тоже не прогресс, это полный фэйл интерфейса браузера, интернета и твой собственный ты их никогда не прочитаешь, но однажды проебешь без возможности восстановления.
>>948758>Увеличенный размер виртуального адресного пространстваThis.> все более неприятные проблемы с TLBДля вокрлоадов которые втискивались на старом адресном пространстве TLB хватит за глаза. А для тех, которым на 4GB тесно было лишний раз сходить в page table все равно лучше чем сходить в своп> детерминированности в работу системы это нихуя не добавляетВообще заиваться о детерминированности после появления спекулятивного исполнения/бренч предикшена и гипертредов это как то уже моветон.
Откуда он спёр сорцы винды?https://www.youtube.com/watch?v=ka21Sk_5tdU
>>949278http://stephanos.io/archives/21
>>949284Да я видел конкретный пост на svn репозиторий. Но он приватный был уже тогда, а сейчас кажется вообще не пашет.Впрочем вопрос был в том, откуда они у него и как сделать так же. Если это конечно не подделка.
>>949311Там есть упоминания WRK, значит взял отсюда: https://winehq.org.ru/Windows_Research_Kernel
>>891716 (OP)Как правильно распаковать и запаковать rt.jar чтобы нормально потом воспринялся java-ой ? Мне нужно поменять строку в одном классе, но после того как упаковщик хоть как-то изменяет rt.jar - он перестает нормально восприниматься.
>>949351Да не, на видео намного больше, чем есть в WRK, включая такие части, которые вообще никогда не утекали и попросту отсутствуют в коде Win2000 и уникальны для Win2003.И как бы там типа 11ГБ сорцов.Конечно, это можно было подделать, дерево исходных кодов можно извлечь из отладочных сборок, размер взять наобум, а парочку показанных файлов отреверсить и воссоздать самому, но уж больно сложная мистификация безо всякого видимого профита.В общем вдруг найдутся хакеры, которые взломают его хостинг, ПК и анальную девственность и сольют сорцы винды на радость анонимусу.А то я ебусь с реверсом каждого килобайта кода, а кто-то располагает полными сорцами винды.Я бы точно слил, и похуй, сколько меня потом будут иметь потом МС.
>>949398Манифест удали.
>>949430неаError occurred during initialization of VMUnable to use shared archive.An error has occurred while processing the shared archive file.Unable to unmap shared space.
>>949425Поржал с дэбила, хех.
>>947274>>948431Лошье малолетнее. Я на итаниуме работаю на силинок уоллей, уже десять лет все летает.
>>949430>>949447И так как бы я не менял его.
>>949452> Я на итаниуме работаюТруп ты насилуешь. Его уже все закопали, даже Майкрософт, даже Интел, а ты до сих пор с ним забавляешься. Прекрати.
>>949449Поясни причину смеха.
>>891801Не совсем понял сути. Ты хочешь запускать приложения, рассчитанные на win7, на более раннем ядре?
>>949620Очевидно, что да. Так же портировать полезные вещи, типа улучшенного менеджера памяти, ALPC, подсистемы Linux приложений, DX10.
>>894887Как знал... Умер >>948063 (OP)
>>949541Зачем труп мамонта ковырять?Возьмись за ум, ковыряй линукс.Сейчас надо все графические либы на вулкан переводить.
Какие диссассемблеры юзаете? А декомпиляторов никаких нет?
>>949947>Зачем труп мамонта ковырять?Потому что он лучше люнупса. Даже сейчас под хрюшей работает больше десктопных ПК, чем работало под люнупсом за всё время его существования.>Возьмись за ум, ковыряй линукс.Скучно, он как бы открытый.
>>949963>лучше>работает больше пкВ голосину, там в хрюшемирке драйверов давно нет.>открытое скучноДриснятку ковыряй, выпиливай зонды или дирекикс12 реверси.
>>949963https://i.4cdn.org/g/1489035306330.pngПочистили бы говно со своей дриснятки, ато только умничаете что линукс не такой.
>>949990>там в хрюшемирке драйверов давно нетУМВР.>Дриснятку ковыряйКак ХР и спермоось сковыряю, так и за дристянку возьмусь.>>949992>Почистили бы говно со своей дрисняткиОна твоя, а не моя. Моя ОС- это ХР, в которой ни одного зонда, в отличии от какой-нибудь бубунты.
>>943177В общем продолжаем. Вот код:http://pastebin.com/zjMJTxq1что такое с этой переменной v9? Почему ей даётся тоже значение, что и до этой, и выполняется та же проверка? Вообще не разумею.
Есть ли годный ARM эмулятор для Андроида, кроме официального ПО? Или не годный, а хоть какой-нибудь. Нашёл статью про эмуляцию 64 битного ARM (Linaro), а мне бы 32. Или они обратно совместимы, как в Windows 64-bit возможность запуска 32 битных приложений? Или, может быть, кто подскажет, как дебажить приложения под Android?
По какой книге начать изучать ассемблер?
>>950009qemu?
>>950125http://asmworld.ru/page/5/не книга, но годно.
>>950143Спасибо, но все-таки там описывается дос, а где есть материалы по win32?
>>950142И как им воспользоваться? Где взять образ системы? Как запустить?
>>950125Сначала читаешь книгу Таненбаума про архитектуру компьютера, потом мануалы по конкретным интересующим процессорам (и операционным системам, если не под голое железо пишешь) от производителей. Например, вот Intel: https://software.intel.com/en-us/articles/intel-sdm
>>950287Ах да, ещё почитай документацию на ассемблер, которым пользуешься:http://www.nasm.us/doc/https://sourceware.org/binutils/docs/as/https://msdn.microsoft.com/en-us/library/afzk3475.aspx
чуваки изучаю асм(насм, фасм)х86-64, добавляйтесь https://t.me/movebx для совместного изучения, хэлпа и обмена инфой
>>950005В общем забъём.Самый интересный файл в ntoswrk.lib- это файл FOLTZ.obj. Размер его в 151 кб, а IDA там ничегошеньки не видит. Если его открыть в текстовом редакторе, то можно заметить целый вагон инклюдов и прочего, среди которых есть строкаd:\fw\base\oem\src\kernel\patchgd\pgd.cВ общем как бы намекает на то, что там зашифрован код патчгуарда. Я вообще не имею опыта расшифровки файлов с защитой, поэтому прошу помощи сообщества.
>>951622Для начала узнать бы что за шифровка.
>>951622> там зашифрован код патчгуардалицорука.jpg. Вот что бывает, когда люди пользуются готовыми утилитами без малейшего понимания, как они работают.1) Там две функции из пары инструкций и несколько массивов.2) Все килобайты - это отладочная инфа, она в релизе даже не линкуется.
>>952448>Вот что бывает, когда люди пользуются готовыми утилитами без малейшего понимания, как они работают.Таки да, я сразу писал, что я макака, обмазался инструментами и надеюсь на результат. Пока чуть больше 300КБ среверсил, из почти 6МБ.>Все килобайты - это отладочная инфа, она в релизе даже не линкуется.Хорошо, её можно как-то использовать? Она же явно к патчгуарду относится. Вот список подключаемых заголовочных файлов, дохуя 155 штук. Вижу структурки, видимо, используются там.Просто я видел код патчгуарда в IDA, там больше 11к строк, и любая информация должна помочь, поэтому нужно извлечь максимум информации из этого файла. Ведь не просто так его пытались спрятать, переименовав из pgd.obj в какой-то там foltz.obj.
>>952847> Она же явно к патчгуарду относится> Ведь не просто так его пытались спрятатьЭто ты на основании одного хедера говоришь?> Хорошо, её можно как-то использовать?Конечно можно. https://github.com/Microsoft/microsoft-pdb/blob/master/cvdump/cvdump.exe Если не сможешь пропатчить версию подсистемы для запуска утилиты под XP - тебе рано этим заниматься.
>>952847А этот PatchGuard в WDK точно есть?https://rebl0g.wordpress.com/2010/12/09/%D0%B0-%D0%B3%D0%B4%D0%B5-patchguard-%D0%B2-wrk/Или ты за оригинальное ядро взялся?
>>952875>Это ты на основании одного хедера говоришь?Точнее на основании строки с именем объектного файла. При генерации объектника в него записывается имя этого объектника, и во всех объектных файлах WRK эта строка совпадает с именем самого файла. Кроме одного, угадайте какого.К тому же размеры, ни один объектник с 3,5 функциями не весит столько, сколько этот. Он вообще один из самых больших, обычно же такие почти пустые весят от 2 до 10кб.Функции, содержащиеся в нём, никак не могут генерировать столько отладочной информации. А вот код патчгуарда может, так как он лезет во все щели в ядре.>Если не сможешь пропатчить версию подсистемы для запуска утилиты под XPС этим даже макака справится.Впрочем за ссылку спасибо, просматривал аккаунт МС на гитхабе, но до туда не докопался.>>952899>А этот PatchGuard в WDK точно есть?В том то и суть, что нет! Видимо, его отключение в этих функциях сделало так, что при компиляции этого объектного файла туда не попал код самого патчгуарда, а только отладочная информация к нему.И то хлеб, авось поможет при расшифровке кода самого патчгуарда на втором этапе моей возни.>Или ты за оригинальное ядро взялся?Я потыкал палкой всю линейку ядер от Win2000 до Анального обновления десятки, по возможности так же посмотрев отладочные сборки.
>>895188ахахах, допрыгался
Итак, анон, есть reg-файл.Это вот дело служит паролем для базы данных.Насколько я понимаю, dword 83 это какой-то сдвиг фразы "Увррфмсз", потому что когда я ставлю значение 0, то захожу в базу по этой фразе. Как узнать, какая фраза выходит после этого сдвига? Он как-то по ASCII вперед на 83 символа сдвигается или как?[HKEY_CURRENT_USER\SOFTWARE\mtests]"t"=dword:00000083"validate"="Увррфмсз"
>>953683> УвррфмсзТам xor каждой буквы слова "Password" с 0x83.
Как может быть отрицательное смещение у указателя с типом PKPRCB?; void __fastcall PerfSetLogging(PVOID MaskAddress) public PerfSetLogging PerfSetLogging proc near xor r8d, r8d cmp byte ptr cs:KeNumberProcessors, r8b jbe short locret_278 lea rdx, KiProcessorBlock loc_25B: mov rax, [rdx] inc r8d add rdx, 8 mov [rax-170h], rcx movsx eax, byte ptr cs:KeNumberProcessors cmp r8d, eax jb short loc_25B locret_278: retn 0
>>953819Указатель дереференсится же. KPRCB лежит в KPCR, к ней и идет обращение. Точнее сказать не могу, возьми символы и посчитай, что конкретно там лежит относительно офсета PrcbData.
>>953903>дереференситсяПоясни, не понял. Всё равно не могу понять, как он выходит отрицательным.У меня получается только такой код, который компилится с точностью вот до этого смещения, которое у меня всегда положительное.VOIDPerfSetLogging( PVOID MaskAddress ){ ULONG Index; PKPRCB Prcb; for (Index = 0; Index < (ULONG)KeNumberProcessors; Index += 1) { Prcb = KiProcessorBlock[Index]; Prcb->SavedRsp = MaskAddress; // Наобум }}
>>953985Отвечу за него.Это значит, что KPCR лежит внутри KPRCB, в функцию передаётся (или каким он образом попадает) указатель на KPCR. А нужно получить указатель на KPRCB, т.е. на начало структуры. Скорее всего, это через макрос делается, что-то типа offsetof, отсюда и отрицательное смещение.PKPRCB = PKPCR - offsetof(KPRCB, name);В свою очередь, KPCR получается так:PKPCR *name = &PKPRCB->name;
Это с кодировкой шляпа или ватафак и как починить?
>>953985>>953996> KPCR лежит внутри KPRCBНаоборот.> Скорее всего, это через макрос делаетсяДа, только у Microsoft свой, более безопасный offsetof под названием CONTAINING_RECORD:Prcb = KiProcessorBlock[Index];CONTAINING_RECORD(Prcb, KPCR, PrcbData)->КакоеТоПолеKPCR = MaskAddress;> Всё равно не могу понять, как он выходит отрицательным.Офсет того поля, к которому идет обращение меньше, чем офсет PrcbData. Дельта отрицательная.>>954118> как починитьНе использовать это говно? В подсветку асма умеет каждый первый блокнот.
>>954131> КакоеТоПолеKPCRПогуглил за тебя (http://www.geoffchappell.com/studies/windows/km/ntoskrnl/structs/kpcr.htm):0x0180: KPRCB Prcb; в 64-битной структуре, оказывается, не PrcbData, а просто Prcb0x180 - 0x170 = 0x100x10: PVOID PerfGlobalGroupMask; late 5.2 only
>>954131чё я бля непоняля просто копипастнул сурс какойто тупой проги по дигностике пары партов и памяти на диплом, а запустить не запускается, я и строки кода не понимаю, первый раз асемблер вчера увиделмне просто над что бы работало и показать мне дадут документ и я домой
>>953996>>954131>>954133Благодарю, оно самое. Суть метода понял.Если кому интересен мой прогресс, на данный момент ntoswrk.lib похудел на 365кб (х64), или 327кб (i386), к коду WRK добавлено 577 КБ кода в 39 файлах плюс правки в некоторых исходных.
>>954438Ты лучше скажи, ты пробовал компелировать ту срань от ReactOS, которая позволяет современный софт на XP запускать?
>>954454One-Core-Api? Там используются файлы реактОС, но проект с ними не связан.Нет, не пробовал, какая-то непонятная срань. Как вообще можно использовать файлы реактоса, который толком с ХР не совместим, для запуска приложений виста+?
Только осваиваю ассемблер.То, что на пикрелейтед верно?И почему когда выполняю xor reg,reg устанавливаются два флага ZF(потому что результат равен 0) и RF, причем четность?
>>954684PF ставится, когда в младшем байте результата четное число единичных битов. Считай, что 0 - тоже четное число.
>>954684pf = parity flagparity = четность
Problem: Failed to trace the value of the stack pointerПосоны, смотрите пикрил. Хочу понять что делает функция + декомпилировать в си-псевдокод. Хекс-рейс не декомпилирует этот участок.Если я запущу в отладчике этот участок, то эти проблемы исчезнут? Или это навсегда?Есть ли туториал по отладке для суперньюфагов? Мне не надо ничего менять в программе -- только понять что делает эта функция.Эта функция из dll, которую использует гуи-программа.
>>937771Клево. По какой литературе ты научился так делать? Я в курсе про алгоритм Брезенхема, но не думал, что все вместе займет столь мало строк кода.
>>955089>Или это навсегда?Это пока ты не определишь правильные параметры функции, или её границу, или там ещё чего. В общем в этом месте автоматика дала сбой, и ждёт, что человек решит её проблему.>Эта функция из dll, которую использует гуи-программа.А точнее? Нагуглилось вот такое, не оно?https://docs.thefoundry.co.uk/nuke/63/ndkreference/Plugins/classDD_1_1Image_1_1Reader.html#88840f7e58934404af4d0c7c31c5dcbc
>>927215>>927242В туже копилку:http://terminus.rewolf.pl/terminus/Ссылка на шапку, чтобы не забыть после переката.Вообще, нужно шапку накидать, и добавляться в официальные треды.>>891716 (OP)
>>955103>Нагуглилось вот такое, не оно?Оно. Но там все равно только доксиген на хедеры.Сейчас запустил под отладчиком, а эта функция и не вызывается в реальном коде. Вызывается с тем же именем, но с другим набором параметров. Она вот нормально декомпилировалась. Но правда сноумен и хекс-рейс по-разному это сделали.Буду дальше ковыряться.
>>955089Убери прототип нахуй, посмотри, правда ли там функция по джампу или это кусок текущей (что вероятнее), проставь прототип для функции по джампу, проставь прототип для этой функции, и все будет.
>>955132>Но правда сноумен и хекс-рейс по-разному это сделали.Было бы странно, если бы они это сделали одинаково.
Похвалюсь исправлением глюка в программе Apowersoft Phone Manager. Глюк заключался в трёхдневном триал-режиме. Быстро справился с исправлением, поэтому и хвалюсь. Хотя, это не полноценное лечение, кейген работает, но нужно либо писать прокси-сервер, т.к. программа лезет в интернет для проверки, либо запрещать ей фаерволом доступ в интернет. Сам выбрал последний вариант. Через 3 дня узнаю, требуется ли обязательная проверка ключа, а сейчас время не охота переводить.Но как глупо сделана защита. В папке "AppData\Roaming\Apowersoft\Apowersoft Phone Manager\" создаётся два скрытых файла, один из которых называется "trial". Мне не было нужды проверять, но догадываюсь, что удалением этого файла продлевается срок триала ещё на 3 дня. Программа (C#) при пошаговой трассировке сама выводит на модуль, в котором содержится проверка лицензии. Разработчик хоть чуть-чуть усложнил поиск этого места путём запуска модуля в памяти (не знаю, как правильно называется это в C#). При этом оставил все названия функций. Хотя бы мучаться не пришлось.А мой вопрос так и остаётся в силе. Как дебажить ARM приложения? В программировании Android'а не знаком. Нашёл и скачал androl4b. Там есть эмулятор. Но, когда в него перетаскиваешь APK, то пишет INSTALL_FAILED_CONTAINER_ERROR. Погуглил, советуют изменять APK, добавлять какие-то опции в AndroidManifest.xml. Как всё сложно в нём.
Поясните за пикрил. _DWORD и LODWORD -- что это за типы? _DWORD -- это какой-то двухбайтовый тип? Или что это значит?Система x86-64. Программа тоже.
>>955712Сам разобрался.
чем можно начать реверсить DOS приложение? под линью. нужно ставить дос на виртуалку? вроде нужно исполнение, я же не знаю что ищу. и хотелось бы трахаться с radare2.
>>956429r2 для хипстеров. Если тебе нужно не посмотреть пару функций и поправить пару байтов, а именно отреверсить - IDA без вариантов. Доса в досбоксе достаточно. IDA теоретически умеет в Bochs-отладку, практически я никогда не пробовал отлаживать 16-битный код. Алсо, можно собрать кастомный досбокс с их собственным говноотладчиком.
>>956470>IDAне, впизду. слишком жирно и платно. и вообще, я хочу попробовать радар. попробую фриидос на виртуалке загнать, пишут что что-то из венды поддерживают - наверно нужно ставить радар w32. а как ты себе представляешь это на досбоксе? это ещё нужно отличать досбокс от программы? ну нахуй такое счастье.
>>956492>не, впизду. слишком жирно и платно.Но это единственный активно развивающийся дизасемблер, и вообще самая лучшая программа для реверса.С радаром ты будешь ебаться в одиночку, потому что тут его никто не использует.
>>956526Чем они отличаются то? Есть несколько свободных диссасемблеров.
>>956556> Чем они отличаются тоIDA, конечно, тоже полное говно, но она умеет пикать, а если уж соберется что-то испортить, то хотя бы переспрашивает. Если серьезно, то реверсинг - это про восстановление информации. Если информации перед глазами мало, а чтобы получить ее, нужно сплясать на клавиатуре - это хуевая программа. Если единственный гуй у программы - это кривая вебморда, если вообще как-то затесалось слово "веб" в реверсинг, где могут быть сотни мегабайт листингов - это хуевая программа. Если уж есть какие-то претензии к IDA, надо смотреть не на r2, а на Hopper или Binary Ninja (оба платныеПРОПРИЕТАРНЫЕ) - там хотя бы разработчики понимают, какие могут быть требования и цели, а не сооружают вим с дизасмом и фортунками.
http://help.fdos.org/en/hhstndrd/base/debug.htmнемного потыкал. в дебагинге я полный даун.образы заебатые у фридоса - 400 мб ваще ахуеть.я уже дико сомневаюсь в идее радара на досе, это же монопроцессная система - хер знает. я прост алкаш, поэтому такой ленивый, завтра разберусь. хотя, я помню тут разбирался в статических анализаторах - запала не на долго хватило...
>>956621> debug.comВозьми турбо дебаггер хотя бы. А вообще, я все еще настоятельно рекомендую посмотреть в сторону Bochs и/или встроенного отладчика досбокса. У Bochs по крайней мере есть GDB-стаб, и с этим уже можно жить.Что реверсить-то пытаешься?
>>956622> Что реверсить-то пытаешься?не скажу, иначе точно не сделаю. но это графическая программа.
>>956606>HopperЛол, гламурный дизассемблер для пидорасов.
>>956606Есть же просто утилиты что переведут код в ассемблерный файл, чем они плохи?
>>956910Отсутствием интерактива. Они высрут свой ассемблерный файл, и делай с ним что хочешь.ИДА же даёт классную навигацию по коду, построение графа вызовов.Позволяет определить код как данные и данные как код, когда автоматика ошиблась. Определить, где константа, а где относительное смещение. И ИДА сама повторяет анализ изменившихся мест и дополняет ассемблерный листинг новой информацией, зачастую там, где ты даже не догадывался о связи.Неинтерактивные дизассемблеры коррекцию анализа или вообще не позволяют, или это настолько неудобно, что тебя это заебёт на второй итерации.В общем послушай умных людей, не выёбывайся и ставь IDA Pro 6.8.
>>956919Не мокрописька ли виндовая?
>>957168Какой же ты люнупсоид, если не можешь спиратить винду в виртуальную машину и поставить туда пиратскую же иду?
>>957178Да это же местный сумасшедший неймфаг. Поддакивай ему и старайся не обижать.
>>957183>неймфагВляпался не заметив.
https://www.unknowncheats.me/wiki/AssemblyДля нуфажин, которые могут в ангельский. Всё расписано, разжевано, осталось только положить в рот и переварить.
В исходнике был класс с массивом фиксированного размера. Надо увеличить размер этого массива. Как можно это сделать? Сам класс глобальный, расположен в секции не инициализированных данных. Поэтому даже передвинуть массив в конец не получится.Сам вижу только один путь - переделать с фиксированного размера на динамический с выделением необходимого количества памяти.
>>959814Отлови ссылки на текущий инстанс класса, добавь байтов к последней секции, положи туда новый инстанс. Если релоки в бинарнике есть - это делается чуть ли не автоматически. Если нет - IDA, в принципе, справляется, плюс можно PAGE_NO_ACCESS и VEH прилепить на всякий случай, который будет детектить ошибки обращения к старому инстансу, править указатель и писать лог источников, чтобы ты поправил бинарь.
>>959828А если массив не в конце класса? Он идёт после таблицы виртуальных функций. Если изменить размер, это придётся править все относительные ссылки, все не отловишь. Ещё есть абсолютная адресация, т.к. класс глобальный, компилятор некоторые обращения к классу заменил на абсолютные адреса.
>>960012> компилятор некоторые обращения к классу заменил на абсолютные адресаЭто не проблема, аболютные адреса IDA тебе найдет, ссылки на регион памяти можно скриптом перечислить.> придётся править все относительные ссылки, все не отловишьА вот тут проблема, да. Конечно, динамически (c PAGE_NO_ACCESS) можно отловить все, но из-за постоянной обработки исключений будут тормоза.
Пилите перекат с шапкой
>>960280Завтра запилю, без меня не начинать.ОП
>>960363Выложи шапку куда-нибудь, может чего добавлю.
>>960364Так завтра и начну делать, лол.
ПЕРЕКОТ>>960640 (OP)>>960640 (OP)>>960640 (OP)>>960640 (OP)>>960640 (OP)>>960640 (OP)Хуй с ней, с шапкой, в следующем треде поправим.ОП
>>891716 (OP)Спрошу тут может кто знает как в VS2017 С++ проект скомпилить в исполняемый файл с одной секцией. в 2013 получалось в 2017 всегда создает .rdata и .text
Помогите сделать задачу "У гусей и кроликов вместе 64 лапы. Сколько может быть кроликов и гусей (подсчитать количество комбинаций)?"Вот что я сделал и вроде как оно даже работает, но правильно ли я не знаю. Подскажите формулу по которой находятся подобные задачи. И да код должен быть универсальным т.е. может быть и 4000 лап и 6. use16org 100hmov ax,64 ;остаток лапmov cx,4 ; сколько лап у кроликовdiv cxlexa:sub ax,1add si,1 ; количество комбинацийcmp ax,0jne lexamov ax,4C00hint 21h
Неофит ИТТ. Поясните пж за следующую вещь. В hex-редакторе при анализе структуры PE файла (pic 1) вижу, что VA OEP = 10212, а ImageBase = 4194304, тогда абсолютный адрес точки входа = 4194304 + 10212 = 4204516 = 0x004027E4, и вроде как в дебаггере именно это число я и должен увидеть помеченным как entry point, но чому то в ollyDbg2.01 я вижу (pic 2) 0х00CE27E6. Я неправильно считаю точку входа? Неправильно трактую значение адресов в левом столбце в ollyDbg? Или еще что то делаю не так?
>>983097Алсо, я понимаю, что в olly я вижу образ процесса, а не дизассемблированный исполняемый файл, и загрузчик может выравнивать образ по размеру страницы оперативной памяти, но не настолько много ж блеть. Или настолько?И да, исполняемый файл не упакован/не зашифрован, т.к. написан мной.