Сохранен 527
https://2ch.hk/pr/res/1301036.html
Архивач перешёл на постоянный домен ARHIVACH.NG. Независимо от дальнейшего развития событий, сайт всегда доступен через Tor.
Ваши пожертвования помогают нам оплачивать хостинг и домены.

В этом треде мы изучаем самый компактный и низкоуровневый /asm/

 Аноним 25/11/18 Вск 19:50:59 #1 №1301036 
15297920283690.png
1.png
3.png
4.png
В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (RE).

Вы пишите на ассемблере или собираетесь начать на нём писать? Программируете микроконтролёры, пишете драйвера для ОС, а то и саму ОС? Вам сюда.
Вы изучаете алгоритмы работы закрытого софта, пишите патчи бинарников? Вам тоже сюда.

Попрошайки с "решите лабу по асме за меня" идут в общий тред, а лучше нахуй.

Книги по RE:
https://beginners.re/ - "Reverse Engineering для начинающих"- бесплатная современная книга на русском языке. К прочтению вкатывающимся и прочим ньюфагам обязательна!
https://mega.nz/#!Bc9VVAYC!Vk6CFlW6VIoskLNgDKXbsL6FacDQeOKe6LX92wNicKY Нарваха практический курс по дебагингу
https://www.goodreads.com/shelf/show/reverse-engineering - список книг

Сайты по RE:
http://wiki.yobi.be/wiki/Reverse-Engineering
https://www.reddit.com/r/ReverseEngineering/comments/hg0fx/a_modest_proposal_absolutely_no_babies_involved/
http://www.program-transformation.org/Transform/ReengineeringWiki
http://blog.livedoor.jp/blackwingcat/
https://yurichev.com/blog/
http://wiki.xentax.com/index.php/DGTEFF
https://exelab.ru/

Инструменты для RE:
Дизассемблеры:
1) IDA Pro 7.0.torrent (x64 only, для XP нужно патчить PE + вылеты)
2) IDA Pro 6.8.torrent
3) IDA Pro 5.0 - бесплатная версия для некоммерческого использования
4) Radare 2 - наконец прикрутили гуй, но по прежнему нужна только клиническим, не умеющим в скачивания торрентов
5) Остальное

Все книги и статьи Криса Касперски (R.I.P.)
https://yadi.sk/d/CxzdM1wyea4WP или https://rutracker.org/forum/viewtopic.php?t=5375505
+ https://rutracker.org/forum/viewtopic.php?t=272818

Книги по ассемблеру:
"Архитектура компьютера" Э. Таненбаум
С.В. Зубков: Assembler. Язык неограниченных возможностей.

Сайты по ассемблеру:
Замена почившему wasm.ru- https://wasm.in/
https://www.unknowncheats.me/wiki/Assembly
http://asmworld.ru/
https://software.intel.com/en-us/articles/intel-sdm
http://www.nasm.us/doc/
https://sourceware.org/binutils/docs/as/index.html#Top
https://msdn.microsoft.com/en-us/library/afzk3475.aspx

Для ковыряющих винду и софт под неё, сайты с описанием структур со смещениями и разными версиями оных:
http://msdn.mirt.net/
http://terminus.rewolf.pl/terminus/
http://geoffchappell.com/

Предыдущие
№4 https://arhivach.cf/thread/301316/
№5 тонущий https://2ch.hk/pr/res/1216107.html если кому нужен тред, сами архивируйте, я в следующий добавлю.
Loading...
Аноним 25/11/18 Вск 19:56:26 #2 №1301039 
Вкатился.

Анончики, посоветуйте книгу по винде. Желательно что-нибудь новое + x64.
Аноним 25/11/18 Вск 20:10:17 #3 №1301045 
image.png
ГДЕ FLOAT?
scanf, мать его
sage[mailto:sage] Аноним 25/11/18 Вск 20:28:54 #4 №1301059 
>>1301045
В предыдущем треде. А табличка у тебя от printf, они отличаются.
sage[mailto:sage] Аноним 25/11/18 Вск 21:35:24 #5 №1301103 
>>1301036 (OP)
> если кому нужен тред, сами архивируйте
https://arhivach.tk/thread/395971/
Аноним OP 26/11/18 Пнд 00:13:15 #6 №1301195 
>>1301039
"Внутреннее устройство Windows" 7 издание. Ну или 6, или любое другое, там внутрянка не меняется. Или тебе что-то другое?
>>1301103
>У Архивача очередной раз отключили домен
А я то думал, что у меня не открывается.
Аноним 26/11/18 Пнд 01:07:59 #7 №1301223 
>>1301059
> printf
Точно, перепутал

>>1301057
То есть, мне вручную надо преобразовать float в double? Как?
sage[mailto:sage] Аноним 26/11/18 Пнд 01:13:53 #8 №1301224 
>>1301223
fld dword[my_float] fstp qword[my_double]. Ну или сразу на стеке. Можно и вручную, но это битоебля на несколько десятков инструкций, плюс обработка всяких денормализованных чисел, бесконечностей и прочих NaN.
Аноним 26/11/18 Пнд 02:36:05 #9 №1301238 
>>1301195
Ахуеть, свежачок! Еще плотная 1к листов. Дико двачую.
Аноним 26/11/18 Пнд 13:45:24 #10 №1301350 
Очередной раз ассемблер выебал мой мозг.
В Fasm, как я думал, выражение типа word[metka] возвращает значение размером в 2 байта, содержащееся в памяти по этому адресу; но metka без квадратных скобок вернет pointer. Но тогда почему при работе с FPU, если я хочу записать в память значение из вершины стека, я должен написать fstp word[metka], а не fstp metka? Ведь в первом случае, как мне казалось, я передаю как аргумент ЗНАЧЕНИЕ, содержащееся по адресу metka, и логичнее был бы второй вариант. Разъясните этот момент, плиз.
sage[mailto:sage] Аноним 26/11/18 Пнд 15:01:41 #11 №1301383 
>>1301350
> я передаю как аргумент ЗНАЧЕНИЕ
> логичнее был бы второй вариант
Твоя проблема в том, что ты мыслишь в терминах Си. Ты ничего никуда не передаешь как аргумент. Инструкция - не программа (нет, ну на самом деле микрокод и все дела, но это другая история). Ты пишешь инструкции (т.е., указания процессору, что делать), у которых могут быть операнды (указания, с чем делать). Ассемблер их кодирует, представляя их в более удобной для выполнения форме.

При этом и ассемблеру в листинге, и процессору в закодированных инструкциях нужно как-то отличать immediate (непосредственные) операнды, которые представляют собой просто число, готовое к употреблению, от memory операндов (т.е., тех, что подразумевают обращение к памяти). Как кодируются инструкции, рассказывать не буду (можешь погуглить ModR/M). А вот чтобы отличить операнды в ассемблерном листинге, в фасме используется очень простая логика: есть обращение к памяти - есть квадратные скобки. Иначе нет скобок.

Если операнд, работающий с памятью, используется как источник - из памяти что-то читается, если как результат - пишется, если одновременно как источник и результат (например inc [var]) - будут два обращения. Единственное исключение - это всякие lea reg,[bx+si+3]. Но весь смысл этой инструкции - заставить процессор вычислить эффективный адрес, как если бы мы использовали второй операнд для обращения к памяти, но на самом деле никаких обращений к памяти не делать. Именно поэтому в lea скобки есть.

mov bx,1 ; Скобок нет, первый операнд регистр, второй - непосредственное значение, просто число.
mov ax,bx ; Скобок нет, mov прочитает значение из регистра и запишет в регистр.
mov bx,[1] ; А вот тут есть скобки, mov сходит в память, прочитает значение и запишет в регистр.
mov ax,[bx] ; Есть скобки, но прежде чем сходить в память, придется посчитать адрес (прочитав bx).
mov [bx+1],ax ; Более сложный адрес в скобках.
push 123 ; Нет скобок, в стек кладется непосредственное значение. Да, push пишет в память по sp, да скобок нет, но это неизменное поведение push, которое, к тому же, никак не касается нашего единственного операнда. Вот если бы Intel решил явно указывать оба операнда, тогда были бы скобки: какой-нибудь storedec [sp], 123.
pop [123] ; Операнд описывает, куда записать значение из стека. Скобки есть - пишем в память по 123.

> metka без квадратных скобок вернет pointer
Поинтеры остались в Си. Значение метки - численное значение адреса. И это лишь твое дело, как ты будешь это использовать. При использовании имени метки в инструкции, это просто число, оно абсолютно ничем не отличается от других immediate значений. Если адрес метки известен и фиксирован, можешь сделать так, и оно даже будет работать:
org 100h ; COM-файл.
start:
mov ax,4b00h ; Какое-то значение. Просто значение 4b00h.
add ax,start ; Прибавляем какое-то другое значение 100h.
int 21h

> написать fstp word[metka], а не fstp metka
fstp metka = fstp число: immediate-значение, но у FPU нет инструкций с immediate, т.е., нельзя fld 2.0 fmul 256, поэтому ошибка синтаксиса.
fstp word[metka]: скобки есть, инструкция что-то сделает со значением в памяти. Например, напишет туда. Но на самом деле FPU в значения половинной точности не умеет, а fasm об этом знает, поэтому тоже будет ошибка синтаксиса. Вот fistp word[metka] сработает.

В очередной раз я зачем-то написал длинную и бессвязную простыню в ответ на простой вопрос.
Аноним 26/11/18 Пнд 15:29:42 #12 №1301402 
>>1301383
> fstp word[metka]: скобки есть, инструкция что-то сделает со значением в памяти.
Но в том-то и дело: эта команда записывает в память значение из вершины стека fpu. То есть, эта команда использует адрес, но квадратные скобки говорят о том, что, как ты сам сказал, инструкция что-то сделает со значением в памяти.

Вообще, я понял это так: конкретно в случае с этой командой, fasm интерпретирует подобную запись с квадратными скобками и dword/qword не как отсылку к значению, записанному в памяти по адресу metka, а как информацию о том, что записать в память — float (dword) или double (qword).

> Например, напишет туда. Но на самом деле FPU в значения половинной точности не умеет, а fasm об этом знает, поэтому тоже будет ошибка синтаксиса. Вот fistp word[metka] сработает.
Word я написал чисто условно, пусть это будет qword или dword, не важно.

> Поинтеры остались в Си. Значение метки - численное значение адреса.
Виноват, зря использовал слово, значение которого не знаю. Под поинтером я подразумевал как раз то самое численное значение адреса. Думал, это одно и то же.
sage[mailto:sage] Аноним 26/11/18 Пнд 17:39:20 #13 №1301453 
>>1301402
> То есть, эта команда использует адрес, но квадратные скобки говорят о том, что, как ты сам сказал, инструкция что-то сделает со значением в памяти.
У тебя в скобках просто число. Считай, что там fstp [1234h], и именно скобки говорят, что это число - адрес, а не immediate. Я же тебе показал примеры на обычных инструкциях, там очевиднее: mov eax,1 - значение, mov eax,[1] - чтение значения по адресу, mov [1],eax - запись значения по адресу, mov 1,eax - ошибка синтаксиса.

> dword/qword
Это просто указание размера, оно, в зависимости от того, в каком месте операнда ты его напишешь, изменяет либо размер операнда (mov eax,word[1]), либо размер адреса (mov eax,[word 1]). Оно не только с memory операндами работает, но и с immediate: push dword 1 например - сгенерировать не короткую форму инструкции 6a 01, а длинную 68 01 00 00 00. Или можно даже push dword[word 2000h]: используя 16-битный адрес 2000h прочитать по нему 32-битное значение и засунуть его в стек. Но ты пока с address size не заморачивайся, это крайне редко имеет смысл.

> а как информацию о том, что записать в память — float (dword) или double (qword).
Ну да. Но вообще, fasm может хранить вместе с меткой информацию о размере (а может и не хранить). Если не хранит, и он не может никак логически его вычислить, надо указывать размер явно:
var dq ? ; К метке автоматически привязался размер.
fstp [var] ; Фасм сам "в уме" добавит qword к адресу.
var2: dd ? ; Двоеточие не дает привязать размер.
fstp [var2] ; Ошибка синтаксиса: непонятно, сколько писать, и надо указать размер явно.
mov [var2],eax ; Размер не нужен, пишем 32 бита, потому что источник 32-битный.
Аноним 26/11/18 Пнд 17:42:33 #14 №1301454 
> fstp [var] ; Фасм сам "в уме" добавит qword к адресу.
Стек FPU 64-битный?
sage[mailto:sage] Аноним 26/11/18 Пнд 17:49:27 #15 №1301458 
>>1301454
Стек 80-битный, но var dq ?, поэтому он помнит, что где var, там qword.
Аноним OP 26/11/18 Пнд 22:52:00 #16 №1301597 
>>1301238
Рано радуешься, там вышел только первый том, второй ещё или не вышел, или не переведён. Впрочем можешь смело читать 6 издание, там много чего подходит, я как читавший всё со времён третьего говорю.
Аноним 27/11/18 Втр 22:00:12 #17 №1302210 
>>1301453
Спасибо за длиннопосты, анончик
Аноним 29/11/18 Чтв 19:47:42 #18 №1303274 
image.png
Господа асмоебы, вкатываюсь после большого перерыва. Поясните, в x64 теперь у нас новые регистры общего пользования, которым даже имена поленились придумать, а старые 64-битные теперь зовутся rax, rcx и так далее, да?
sage[mailto:sage] Аноним 29/11/18 Чтв 20:55:25 #19 №1303301 
>>1303274
Да. Буковки в именах регистров, пришедших из 32- 16-битного кода, означают accumulator, base, counter, data, source index, destination index, base pointer и stack pointer соответственно. Некоторые инструкции и режимы адресации требовали строго конкретных регистров, потом ограничения ослабили, а у 8 новых регистров, добавленных в x86-64, нет никаких исторических употреблений, нет имен, поэтому и буковки им не нужны. В других архитектурах, где регистры более-менее равноправны с рождения, циферки использовались для большинства регистров изначально.
Аноним 29/11/18 Чтв 20:56:26 #20 №1303303 
>>1303274
А куда ah/bh дели?
Аноним 29/11/18 Чтв 21:35:41 #21 №1303312 
>>1303301
Спасибо, я в курсе про accumulator и так далее, все-таки несколько лет занимался этим, но все равно спасибо. Но как же stosd и т.п. команды, им же esi,edi нужны по идее, равно как и циклы ecx.
Аноним OP 29/11/18 Чтв 21:40:36 #22 №1303319 
>>1303303
В таблицу не влезли.
sage[mailto:sage] Аноним 29/11/18 Чтв 22:10:08 #23 №1303325 
>>1303312
> Но как же stosd и т.п. команды, им же esi,edi нужны по идее
Ну так я сказал, что не отменили, а ослабили ограничения, т.е., значительно расширили эффективную адресацию, например.
Аноним 30/11/18 Птн 12:14:29 #24 №1303510 
Хотел сохранить rsp куда-нибудь в xmm0 и получить на один регистр больше, но оно так не работает почему-то, ловлю рандомные сегфолты, а gdb говорит, что не может прочесть память, хотя там просто из одного регистра в другой данные перекладываются, даже нет обращений к памяти. Пиздец ограниченный регистр этот ваш rsp, нельзя им нормально пользоваться, даже если мне стек не нужен.
Аноним 30/11/18 Птн 12:15:25 #25 №1303512 
>>1303510
Ну и то, что какие-то регистры могут быть базой/оффсетами при чтении из памяти, а какие-то нет — тоже полный пиздец.
То есть для многих задач эффективное количество регистров оказывается намного меньше, чем 16.
Аноним 30/11/18 Птн 12:38:05 #26 №1303530 
>>1303510
Стек не для этого, да. Нахера тебе в rsp класть? Клади в стек - это быстрее и короче.
Аноним 30/11/18 Птн 12:41:19 #27 №1303534 
image.png
>>1301036 (OP)
А есть в треде активные или бывшие демосценеры?
Как вы там, пишите 256б-4кб демки?
Аноним 30/11/18 Птн 15:00:21 #28 №1303648 
>>1303530
>Клади в стек - это быстрее и короче.

Стек - это значит в лучшем случае L1 кеш (в два раза медленнее регистров).
Аноним 30/11/18 Птн 15:04:19 #29 №1303653 
>>1303312
>Но как же stosd и т.п. команды, им же esi,edi нужны по идее, равно как и циклы ecx.

Микроархитектурка порешает, так что в 2к18 этим наследием дремучих cisc-времен заморачиваться не стоит.

Да и в давние времена зилога тру-хацкеры этих еба-инструкций делающих что то сложное чурались и во всей демосцене на спектурме ты ничего кроме простых 8080 опкодов без всей этой зилоговской поеботы не найдешь.
Аноним 30/11/18 Птн 18:41:58 #30 №1303817 
>>1303534
Эти боги уже либо работают во всяких майкрософтах или владеют ими, что более вероятно, либо имеют многомиллионные ботнеты.
Аноним 30/11/18 Птн 18:47:37 #31 №1303819 
>>1303817
Или сосут хуи в нищите как я :(
Аноним 30/11/18 Птн 19:43:09 #32 №1303839 
>>1303819
Не хочу тебя огорчать, анончик, но выбор всегда только за тобой...
sage[mailto:sage] Аноним 30/11/18 Птн 19:50:33 #33 №1303841 
>>1303653
> так что в 2к18 этим наследием дремучих cisc-времен заморачиваться не стоит
Да что ты говоришь? А между тем, начиная вроде бы с Ivy Bridge, явный цикл снова сосет у rep stos/movs.
Аноним 02/12/18 Вск 14:08:47 #34 №1304728 
Аноны, я интересующийся/начинающий не суть. Поясните за отрицательные числа. Обычно в книгах так: берём число (7 младших бит онли), инвертим, старший (8-ой бит) ставим в единицу и готово.

Но т.к. профессору похуй, что ты там нахуевертил, каким образом пояснить ему, что это отрицательное число (например, это -5, а не 251). Возможно, это где-то дальше в книге есть, но пока что даже ремарки, что это обрабатывается программно, самим погроммистом, читайте дальше, в книге есть нет. От этого нет полноты картины.
Аноним 02/12/18 Вск 15:13:55 #35 №1304784 
>>1304728
Отрицательных чисел не существует
-1 и 129 это одно и то же
Аноним 02/12/18 Вск 15:14:44 #36 №1304786 
>>1304784
>-1 и 129
Ну или как там у вас байты крутятся
мимо вебмакак
Аноним 02/12/18 Вск 15:15:48 #37 №1304787 
>>1304784
А в сопроцессоре существуют.
Аноним 02/12/18 Вск 15:35:38 #38 №1304798 
>>1304784
Вообще чисел не существует. Есть только биты.
Аноним 02/12/18 Вск 15:37:06 #39 №1304800 
>>1304784
Числа не числа, знаки не знаки
Так как это работает? Как мне правильно записать, сохранить и считать отрицательное число? Шо для этого сделать надо? Куда гуглить? Какая схема работы?
Аноним 02/12/18 Вск 15:48:40 #40 №1304804 
>>1304800
Как в сраной сишке же.
Написал uint - получил беззнаковое целое, написал int - получил знаковое.
А в памяти один и тот же байт.
Аноним 02/12/18 Вск 15:55:57 #41 №1304808 
>>1304800
Специально ничего не надо сделать. Отрицательные числа придуманы такими, чтобы с ними работало то же АЛУ, что и с беззнаковыми.
Аноним 02/12/18 Вск 16:19:26 #42 №1304819 
Я никогда не писал на ассемблере, но вроде когда-то слышал, что в ассемблере циклы реализованы по принципу goto. Это так?
Аноним 02/12/18 Вск 16:29:49 #43 №1304824 
>>1304728
Не используй спойлеры в тексте, если уважаешь читающего.

У тебя арифметика по модулю 2^8. Для арифметики по модулю целый раздел математики есть, но ты можешь считать, что у тебя при прибавлении все закольцовано: 0+1=1, 1+1=2, 3+1=3, ..., 254+1=255, 255+1 = 0. Почему так получается понятно - при переполнении у тебя самый старший разряд выкидывается и остается как будто мы сделали не x+1, а (x+1) mod 256. Аналогично будет и для произвольных чисел, x+y на самом деле равно (x+y) mod 256.

В этой арифметике
-x = (256-x). Не веришь, проверь на калькуляторе https://www.miniwebtool.com/modulo-calculator/?number1=-5&number2=256

Отсюда следует, что когда тебе нужно для данного x вычислить -x, тебе нужно вычесть 256-х. В двоичном коде это делается инвертированием всех битов. Называется это дополнительный код, так как x + (-x) = 256 = 10000000b

Дальше у нас стоит задача избавиться от неоднозначности - ведь на самом деле мы не можем отличить -x и 256-x. На уровне процессора ты ничего не сделаешь. Но тут приходят на помощь типы данных.

И тогда мы говорим "а старший бит у нас это на самом деле знак". И мы получаем уже знаковую переменную. Или не говорим - тогда получаем не знаковую.
Аноним 02/12/18 Вск 16:34:34 #44 №1304830 
>>1304819
Врут конечно. Они по принципу loop реализованы.
Аноним 02/12/18 Вск 16:51:07 #45 №1304837 
>>1304728
>берём число (7 младших бит онли), инвертим, старший (8-ой бит) ставим в единицу и готово.
Не совсем
>>1304784
>-1 и 129 это одно и то же
Даже близко нет.

И это асм тред, лол?
Аноним 02/12/18 Вск 18:43:41 #46 №1304898 
>>1304800
> Так как это работает?
>>1304824
> -x = (256-x). Не веришь, проверь на калькуляторе
Ты забыл упомнять, что это выражение не дано нам свыше, и проверять на калькуляторе его незачем. Оно появилось из того простого факта, что, как ты упомянул, в арифметике по модулю 2m (m - размер регистра в битах), (255 + 1) % 28 = 0. Но если мы прибавили к чему-то 1 и получили 0, то это же была -1! Т.е., при желании, мы можем интерпретировать 255 как -1. Это работает и дальше: 254 + 1 = 255, значит мы можем интерпретировать 254 как -2 (-2 + 1 = -1). Так и получается формула 2m - x. Но "создавая" таким образом отрицательные числа, нам придется где-то остановиться, ограничить максимальный x, т.е., разбить диапазон беззнаковых 0..255 на положительные и отрицательные. Принято разделять его так (для восьмибитных регистров, m = 8): -128..127, т.е., 0..127 для положительных и 128..255 для отрицательных учитывая ноль, 255 значений никак не получится разбить поровну, и из двух вариантов -128..127 выбран потому, что во всех отрицательных числах -128..-1 -> 128..255 установлен старший бит, что позволяет быстро узнать знак числа. Изредка в софте используются и другие варианты, например, я видел в прошивке DSP -1..254 -> 0..254 для положительных и 255 для -1.

> Куда гуглить?
https://en.wikipedia.org/wiki/Two's_complement
Это самый распространенный, но не единственный способ. Например, во флоатах просто отдельный бит под знак.
Аноним 02/12/18 Вск 20:39:15 #47 №1304958 
>>1303534
Есть.
Вопрос не понял, берется да пишется. Любую работу тебе проще начать с модификации готовых сорцов под свой код, даже декомпилировать ничего не требуется.

Вот пример http://www.pouet.net/prod.php?which=49796
Аноним 02/12/18 Вск 20:43:12 #48 №1304967 
>>1303817
Майкрософтами "владеют" через акции, это в основном менеджеры (поскольку старые девелоперы там двигают в менедмент).

Демомейкеры (втч старые) не "боги". Большинство работает программистами или игровых движков или графики или просто тупо в геймдеве.

Но некоторые сумели да. Например Fredrik "Mr. H" Huss и Magnus "Vogue" Högdahl, составлявшие демогруппу Triton,
авторы FastTracker позже образовали Starbreeze Studios https://en.wikipedia.org/wiki/Starbreeze_Studios
Аноним 02/12/18 Вск 20:52:33 #49 №1304976 
>>1301383
Но при этом твои простыни ахуенны и весьма полезны, добра тебе
а еще ты заебывлася с пунктуацией в километровых простынях, это еще круче
Аноним 02/12/18 Вск 22:56:22 #50 №1305058 
>>1304819
По сути да. Либо пока ECX не обнулится, либо по условному переходу.
Аноним 03/12/18 Пнд 00:02:00 #51 №1305088 
>>1304819
Так тебе в этом ничто не мешает убедиться.

https://godbolt.org/z/NBySic

jg .L2
это "jump greater" на метку .L2
это происходит после того как eax проверяется на 0.
Поводи мышкой над командами ассемблера. Выбери другие микропроцессоры или компиляторы и посмотри какие у них команды (опцию компилятора -m32 может понадобиться убрать)
Аноним 03/12/18 Пнд 00:26:50 #52 №1305098 
>>1304804
>>1304808
>>1304824
>>1304898

Спасибо, аноны
По поводу FPU Аноним 03/12/18 Пнд 14:42:12 #53 №1305292 
Нужно ли каждый раз прописывать в программе инициализацию сопроцессора? И если да, то FINIT или FNINIT?
Аноним 03/12/18 Пнд 14:58:13 #54 №1305302 
>>1303530
Мне это не подходит, у меня каждый цикл на счету, а ты предлагаешь ждать полчаса.
Аноним 03/12/18 Пнд 15:00:37 #55 №1305303 
Аноны, почему нельзя загрузить число в стек FPU, заранее не записав его в data section? Почему нельзя написать fild 10 или fld 12.5, но можно написать push 132?
Аноним 03/12/18 Пнд 15:19:37 #56 №1305313 
>>1305303
Потому что эта инструкция поддерживает только memory operand.
Аноним 03/12/18 Пнд 15:20:38 #57 №1305315 
>>1305313
https://c9x.me/x86/html/file_module_x86_id_100.html
Ладно, не только, но точно не immediate value
Аноним 03/12/18 Пнд 15:23:04 #58 №1305317 
>>1305313
Эээх
Аноним 03/12/18 Пнд 15:27:25 #59 №1305320 
>>1305317
Ты не должен этого хотеть.
Аноним 03/12/18 Пнд 15:29:57 #60 №1305324 
>>1305320
Ну вот хочу я умножить число на два. Мне ради этого забить в data section dva_const dq 2.0? Так себе.
Аноним 03/12/18 Пнд 15:50:35 #61 №1305335 
>>1305324
Да, так это и работает.
Аноним 03/12/18 Пнд 15:54:52 #62 №1305336 
>>1305335
Мдяя
Аноним 03/12/18 Пнд 16:25:53 #63 №1305350 
>>1305336
Ну ты можешь сканпелировать с dva_const dq 2.0, посмотреть что там получилось, переписать на мокток, а потом
push
push
ololo
Аноним 03/12/18 Пнд 18:30:21 #64 №1305394 
>>1305292
> Нужно ли каждый раз прописывать в программе инициализацию сопроцессора?
Если у тебя контролируемая среда: твоя собственная программа, нормальная ОС, все соблюдают конвенции вызова (в том числе и чистят стек), исключения замаскированы и т. д., то не нужно.

> FINIT или FNINIT?
fninit, чтобы не свалиться на чужом исключении.

> почему нельзя загрузить число в стек FPU
Потому что когда дизайнили FPU, он был отдельным устройством, и immediate-операнды там впихнуть было некуда физически: либо опкод ему говорил, что операнд - стек FPU, либо FPU должен был продолжить операцию с памятью, которую начал центральный процессор (т.е., процессор выставлял адрес на адресную шину). Чтобы поддержать immediate-операнды, потребовался бы более сложный дизайн. Потом FPU запихали в проц, но дизайн опкодов остался.

> можно написать push 132
Центральному проецссору (было) проще, у него декодер вычитывал всю инструкцию, вплоть до 15 байт, а не ебался через ESC-опкоды.

>>1305324
> Ну вот хочу я умножить число на два.
Сложи его с самим собой.

> Мне ради этого забить в data section
Подразумевается, что код генерит оптимизирующий компилятор, а не макака.
Аноним 04/12/18 Втр 17:50:54 #65 №1305795 
>>1305394
>> Ну вот хочу я умножить число на два.
>Сложи его с самим собой.

>> Мне ради этого забить в data section
>Подразумевается, что код генерит оптимизирующий компилятор, а не макака.

Двачую этого.
Чтобы не ебать мозги, напиши код на Си, откомпилируй годным компилятором и посмотри в IDA или HIEW как там делаются операции.
Нормальный компитятор таки суммирует число с самим собой вместо умножения на 2 и еще много чего такого хитровыебанного, до чего ты не дойдешь сам без охуительного опыта. Ну или велосипеды будешь изобретать постоянно.
Аноним 04/12/18 Втр 18:41:59 #66 №1305808 
>>1305795
Я не имел в виду, что анон макака, потому что кладет константы в .data. Компилятор их тоже туда кладет, но самостоятельно, без необходимости бесполезной ручной работы.
Аноним 04/12/18 Втр 18:55:22 #67 №1305814 
>>1305795
Он с умножением на два просто пример привёл, там вполне могло быть и не два, а что-то с очень далеко плавающей точкой.
Аноним 04/12/18 Втр 19:03:23 #68 №1305820 
>>1305795
>Чтобы не ебать мозги, напиши код на Си, откомпилируй годным компилятором и посмотри в IDA или HIEW как там делаются операции.
Вся суть асма в 2018
Аноним 04/12/18 Втр 19:21:00 #69 №1305828 
>>1305820
Неправда.
Аноним 04/12/18 Втр 22:09:24 #70 №1305957 
>>1305808
Я тебе вообще не отвечал. :)

>>1305820
В 2018-м с 64-битными регистрами (для особо упоротых можно юзать 128-битные, по факту это RDX:RAX), можно реализовывать ОХУИТЕЛЬНО точные и быстрые fixed-point вычисления.
Аноним 04/12/18 Втр 22:12:32 #71 №1305962 
>>1305814
Много умножений-делений сишные компиляторы делают изумительно. Я охуел, когда умножение на 5 через команду LEA много лет назад начал делать интеловский компилятор, равно как и деления сдвигами-вычитаниями.
Аноним 05/12/18 Срд 12:23:35 #72 №1306309 
>>1305962
Всё это охуительное дрочево со сдвигами и магическими константанми это конечно круто, но бывает, что нужно делить, например, на 5.3841, и это придётся хранить в константе.
Аноним 05/12/18 Срд 12:36:34 #73 №1306315 
>>1306309
Блядь, да что там говорить, я тыкаю экзешник игры от EA в последнюю неделю, так они там и ны 1000 делят флоатами целые числа.
Аноним 05/12/18 Срд 16:03:10 #74 №1306404 
>>1306309
Да дели, никто не против. Я просто еще раз говорю, что лучше всего алгоритм реализовать на Си, откомпилять, а потом перенести в ассемблер, отшлифовав уже там по вкусу (хуй знает, что тебе надо - размер или скорость).
Аноним 05/12/18 Срд 18:22:04 #75 №1306485 
У ассемблера все в норме с перспективой на будущее?
Нет никакой альтернативы которая скоро спихнет его?
Аноним 05/12/18 Срд 18:40:29 #76 №1306492 
>>1306485
Программирование в машкодах даст пососать любому ассемблеру.
Аноним 05/12/18 Срд 19:01:03 #77 №1306495 
>>1306492
Как вкатиться?
Аноним 05/12/18 Срд 19:02:50 #78 №1306496 
>>1306492
Одно без другого особого смысла не имеет.
Аноним 05/12/18 Срд 19:31:24 #79 №1306512 
>>1306492
Программирование в микроопах даст пососать любому машкоду.
Аноним 05/12/18 Срд 20:09:51 #80 №1306541 
>>1306485
Ну, если ты в 1980-м живешь, то вопрос мог бы иметь смысл.
Аноним 06/12/18 Чтв 21:23:08 #81 №1307138 
Сап, двач. Есть вопрос: существуют ли проекты для графического отображения выполненных инструкций в отладке? Или хотя бы вывод в текстовый файл списка только тех команд программы что выполнились до какого-нибудь брейкпойнта?
Аноним 06/12/18 Чтв 21:25:14 #82 №1307139 
>>1307138
https://stackoverflow.com/questions/2971926/tracing-profiling-instructions
Смотри ответ с галочкой
sage[mailto:sage] Аноним 06/12/18 Чтв 22:48:28 #83 №1307182 
>>1307138
> существуют ли проекты для графического отображения выполненных инструкций в отладке
Да, это такая штука, которая называется отладчик. Представлены в основном в винде, но практически все поддерживают различные варианты трейса, запускаемые одной кнопкой. В линуксах комфортно отлаживаться не любят, предпочитая пердолиться в gdb.
Аноним 07/12/18 Птн 14:34:59 #84 №1307542 
Как использовать функцию rand (и прочие функции, возвращающие какие-то значения) из msvcrt в ассемблере?
Аноним 07/12/18 Птн 20:42:56 #85 №1307708 
>>1306512
Программирование FPGA даст пососать любому опкоду.
Аноним 07/12/18 Птн 20:48:36 #86 №1307713 
image.png
>>1307708
погромирование на скрутках даст пососать любому fpga
sage[mailto:sage] Аноним 07/12/18 Птн 20:49:48 #87 №1307715 
>>1307542
; push arguments in reverse order (для rand нинужно)
call [rand]
; add esp, n*4 (где n - количество аргументов выше)
; что-то делать с eax
Можешь посмотреть, как анон на фасме вызывал в прошлом треде: >>1300720
Аноним 07/12/18 Птн 22:59:38 #88 №1307767 
>>1307715
Мне стоило уточнить вопрос: куда помещается значение, которое возвращает функция?
> что-то делать с eax
То есть, это значение будет в eax? Все ли функции, которые возвращают что-то, используют для этого eax? А если нужно 64 бита? edx:eax? Где вообще можно ознакомиться с подробной информацией о конкретной dll-библиотеке, о ее функциях (о входных и выходных данных в том числе)? Справка по функциям C/C++ не ответила на вопросы по выходным данным в функциях в ассемблере.
sage[mailto:sage] Аноним 07/12/18 Птн 23:09:14 #89 №1307770 
>>1307767
> Мне стоило уточнить вопрос: куда помещается значение, которое возвращает функция?
В 32-битном коде? 32-битные значения (и меньше) в eax, 64-битные в edx:eax, небольшие структуры тоже в edx:eax, если влезают. Если не влезают, вызывающая функция пихает в стек первым аргументом указатель, по которому нужно структуру записать, а вызываемая этот же указатель возвращает в eax. Значения с плавающей точкой в ST(0) в FPU.

> Справка по функциям C/C++ не ответила на вопросы по выходным данным в функциях в ассемблере.
Соглашения о вызове распространяются на все функции, соглашение указывается в прототипе: __stdcall/__cdecl или всякие дефайны вроде WINAPI, CALLBACK, PASCAL, которые разворачиваются в __stdcall (удостовериться можно, посмотрев в хедерах SDK). Информация о соглашениях публикуется (в том числе и в MSDN есть), есть и в вики: https://en.wikipedia.org/wiki/X86_calling_conventions

> Где вообще можно ознакомиться с подробной информацией о конкретной dll-библиотеке
Гуглишь Dependency Walker, смотришь, какие функции экспортируются, сами функции ищешь в MSDN и в хедерах Windows SDK.
Аноним 07/12/18 Птн 23:20:32 #90 №1307779 
>>1307770
То есть то, куда функция должна возвращать данные, прописано в соглашениях о вызове? И там, как я понял, указано, что 32-битные значения (в pe32) записываются в eax, 64-битные в edx:eax, а вещественные числа - в стек fpu, так?
Аноним 08/12/18 Суб 00:22:05 #91 №1307813 
Аноны, киньте книгу/ресурс почитать о формате PE, желательно разжеванный до мелочей материал. Я уже блять не могу, какие-то ебанутые структуры в структурах структур, все эти секции, хедеры и прочие пердолинги. С меня как всегда.
sage[mailto:sage] Аноним 08/12/18 Суб 01:43:53 #92 №1307831 
>>1307813
Гугл, "Крис Касперски путь воина", потом спеку Microsoft, чтобы понять, что у Криса куча ошибок. И не стесняйся брать одновременно хекс-редактор и какой-нибудь высокоуровневый вьювер (например, CFF Explorer, или что там сейчас модно) и смотреть на нескольких примерах.
Аноним 09/12/18 Вск 22:51:06 #93 №1308759 
>>1307813
если найдешь чё нибудь годное про современные винды - скинь сюда пж, тоже интересно. а то такое чувство, что позже 2010 никто не писал про нововведения в PE
Аноним 09/12/18 Вск 23:00:52 #94 №1308764 
Что крутого можно сделать с помощью RE? Как обучающий петпроект для меняб
sage[mailto:sage] Аноним 10/12/18 Пнд 00:27:32 #95 №1308799 
>>1308764
Портируй какую-нибудь старую игрушку куда-нибудь. Или сервер для нее сделай. Или редактор карт.
Аноним 10/12/18 Пнд 00:47:08 #96 №1308809 
Короче, я нашёл как сделать паузу(уже давно), invoke Sleep, 100
Я не обижаюсь. У меня вопрос:
Будем реверсить серьёзное дерьмо?
sage[mailto:sage] Аноним 10/12/18 Пнд 01:30:55 #97 №1308824 
>>1308799
Какой нибудь фоллаут2?
>>1308809
Что?
sage[mailto:sage] Аноним 10/12/18 Пнд 03:27:43 #98 №1308847 
>>1308824
> Какой нибудь фоллаут2?
Считай по килобайту в день минус рантайм кажется, что это мало, но ты не будешь заниматься этим каждый день, где-то будешь тупить, к некоторым функциям будешь возвращаться, так что это еще очень оптимистичная оценка, даже с учетом HexRays.. Фоллаут весит метр. Понимаешь, в чем подвох?
sage[mailto:sage] Аноним 10/12/18 Пнд 03:40:26 #99 №1308849 
>>1308847
Ehh... три года в самом оптимистичном варианте o(〒﹏〒)o
Аноним 10/12/18 Пнд 04:47:30 #100 №1308867 
>>1308764
Вытащи алгоритмы фильтра из VST Spire. Я даже заплачу. Но немного, потому что за много я и сам это сделаю
Аноним 10/12/18 Пнд 07:29:15 #101 №1308890 
>>1308824
>Что?
Давно пытаюсь перевести valkyria profile на ps1 чё говорить.. игра пиздатая, если получиться понять алгоритм то можно и остальные игры от tri-ace перевести. Ща поверхностно расскажу что сделал(не цепляйтесь за терминологию, уже подзабыл), игра зашифрована slz-алгоритмом, дешифратор в инете есть. Я разбил весь диск на slz-куски(много получилось), перекодировал и соединил, в аськах можно найти некоторые слова, типа Lenneth, Start чёто такое. Я так понимаю, там своя таблица символов, надо разобраться как она работает. Инструментов в сети хватает, там чел перевёл на испанский и лежат исходники на Lua(я не шарю), тексты можно скомуниздить из переведённой манги. Если что вечером приду с работы.
Аноним 10/12/18 Пнд 07:38:51 #102 №1308891 
>>1308890
Добавлю. Кто, если не мы?
Аноним 10/12/18 Пнд 11:02:57 #103 №1308945 
>>1308824
Уже есть FOnline, там и сырцы недавно открыли.
Аноним 10/12/18 Пнд 22:55:19 #104 №1309280 
>>1308890
Всё, я понял что нужно делать, не нужно никаких исходников. Если я правильно понимаю, то на ps1 архивируют инфу кусками для экономии места на диске, вроде бы обычная практика. Значит когда будет текст на экране, нужно поставить паузу в отладчике, думаю таблица символов должна находиться в памяти. Теперь надо просто найти какие slz-куски загружены в память(тупо копипастить hex из разархивированного куска в поиск по памяти), наверняка в одном из них и будет таблица. Потом понаставить бряков на обращение к таблице и должно получиться. Скорей бы выходные.
Аноним 12/12/18 Срд 21:42:51 #105 №1310296 
>>1308890
>>1309280
Мне никто не ответит даже? В чём прикол этого всего7
sage[mailto:sage] Аноним 12/12/18 Срд 22:34:48 #106 №1310318 
>>1310296
Я лично просто не понял вопроса.
> таблица символов должна находиться в памяти
Какую таблицу ты ищешь? Трансляцию в ASCII? Ее может не быть, потому что она никому нахуй не нужна на консолях. Вот есть у тебя квадратная текстура с глифами (буквами), и когда игра рисует текст, она копирует нужный глиф из текстуры, вычисляя позицию в зависимости от численного значения символа. Соответственно, кодировка текста зависит лишь от позиции соответствующего глифа в текстуре и может быть абсолютно любой (в том числе и отличаться в зависимости от шрифта). Могут быть и многобайтовые символы.
Аноним 12/12/18 Срд 23:58:03 #107 №1310361 
ukgrvh4.png
>>1310318
Ну ты сказал что я думаю, только сложно.
Просто я раньше не замечал что у букв есть тень, значит это текстура. Ну и нужно просто найти обращение к этим текстурам, они наверняка в одном slz-куске, и у того чувака с исходниками тоже фигурирует перерисовка текстур. Просто раньше не понимал как это делается.
А то что в аськах стал находиться текст, это к тому что двигаюсь в нужном направлении.
Аноним 13/12/18 Чтв 00:22:04 #108 №1310377 
>>1310318
>она копирует нужный глиф из текстуры
Там много этих slz-кусков, больше ста точно(и то что это прям куски инфа 100%). Значит игра не подгружает их с диска по отдельности, значит во время прорисовки текста все эти текстуры в памяти - таблица символов (образно говоря), и подгружаются они из одного куска или нескольких(приставке же нужно время чтобы успеть их разархивировать, не будут же они для каждой буквы каждый раз разархивироваться).
Аноним 13/12/18 Чтв 00:27:16 #109 №1310381 
>>1310318
Я тебя понял, выше с другой позиции рассматривал твой пост.
sage[mailto:sage] Аноним 13/12/18 Чтв 00:32:42 #110 №1310385 
>>1310381
А просто взять распаковать первые несколько кусков и поскроллить в какой-нибудь nana нельзя (https://web.archive.org/web/20140320175114/http://www.neillcorlett.com:80/nana/ )? Хотя ты сказал же, что есть исходники на Lua, проще в них разобраться, наверное. Или тебе интересен именно процесс?

> тень
Да там просто сдвиг вправо вниз и отрисовка другим цветом. В текстуре тени скорее всего нет.
Аноним 13/12/18 Чтв 00:38:01 #111 №1310388 
>>1310385
>в какой-нибудь nana нельзя
Пробовал, находит слова только в аськах.
Я не представляю как на lua можно реверсить игру, это же оч. высокоуровневый язык.
Аноним 13/12/18 Чтв 00:40:36 #112 №1310389 
Пора спать, завтра найду эти символы в его lua-исходнике.
sage[mailto:sage] Аноним 13/12/18 Чтв 01:09:36 #113 №1310399 
>>1310388
> Пробовал, находит слова только в аськах.
Это не хекс-редактор, это смотрелка графики (если повезло, и она не пожата ничем).

> это же оч. высокоуровневый язык
Ну хуй знает. По мне - это наоборот плюс. Я форматы файлов питоном разбираю - все структуры данных уже в комплекте, не нужно ничего переизобретать, заебись.
Аноним 13/12/18 Чтв 07:19:33 #114 №1310435 
Реверсач, как можно получить дескриптор процесса кроме OpenProcess/Nt/ZwOpenProcess/CreateProcess? И еще вычитал, что можно что-то нашаманить с NtMapViewOfSection и писать/читать память без открытого дескриптора, это правда? думаю что нет
Аноним 13/12/18 Чтв 21:24:42 #115 №1310789 
>>1310399
>Это не хекс-редактор, это смотрелка графики (если повезло, и она не пожата ничем).
Вот если сработает, то нихуя себе ты мне помог. Конечно не пожата, я же всё уже разжал. Завтра выходной, сегодня пивко, поэтому завтра займусь.
Аноним 13/12/18 Чтв 21:30:58 #116 №1310791 
>>1310435
Моё мнение - напиши подробней что ты делаешь, может тебе вместо дескриптора что-нить подойдёт.
sage[mailto:sage] Аноним 13/12/18 Чтв 21:56:13 #117 №1310800 
>>1310789
> я же всё уже разжал
Это никак не гарантирует, что там нету какого-нибудь RLE у картинок, или даже чего-то посерьезнее.
Аноним 13/12/18 Чтв 22:14:57 #118 №1310810 
СУКА! Без всякой на то причины, в TD32 изменилась раскладка с английской на русскую. Как это исправить?
Аноним 13/12/18 Чтв 23:09:23 #119 №1310825 
>>1310800
Ты думаешь японцы станут сжимать, а потом ещё раз сжимать? Сомнительно.
Аноним 13/12/18 Чтв 23:19:03 #120 №1310829 
Я кажется разбил на slz-куски только slz1 и slz2, они простые, ищутся просто по slz в аськах. А slz3 содержит в заголовке slz, потом кажется кол-во байт в куске, потом 03h. Я собсно и написал ту прогу с видео для поиска таких заголовков. Завтра буду вспоминать.
Аноним 14/12/18 Птн 01:21:43 #121 №1310854 
>>1310791
Читаю и записываю в память другого процесса. Также интересует, как можно повысить скорость чтение/записи памяти. Я использую NtReadVirtualMemory и NtWriteVirtualMemory для этого.Еще вычитал, что можно зашарить секцию/память/что-то там еще с помощью NtMapViewOfSection, тем самым увеличив скорость чтения/записи и тем самым минуя ситуацию с вечно открытыми хэндлом.
Аноним 14/12/18 Птн 12:06:38 #122 №1310990 
EbaniyRot.mp4
Romhacking.net не работает, вчера работал
Аноним 14/12/18 Птн 20:40:09 #123 №1311215 
>>1310435
>>1310854
Бумп реквесту, анончики! Выкопал инфу из баянистого 2006:

РЕПАМИНГ СТРАНИЦ — ОТОБРАЖАЕМ ФИЗИЧЕСКИЙ АДРЕС СТРАНИЦЫ, КОТОРУЮ МЫ ХОТИМ МОДИФИЦИРОВАТЬ, НА ВИРТУАЛЬНОЕ АДРЕСНОЕ ПРОСТРАНСТВО «СВОЕГО» ПРОЦЕССА ПОСРЕДСТВОМ ВЫЗОВА ФУНКЦИИ NTMAPVIEWOFSECTION. НАЗНАЧАЕМ ВСЕ НЕОБХОДИМЫЕ ПРАВА И АТРИБУТЫ, ПОСЛЕ ЧЕГО ДЕЛАЕМ С НЕЙ ВСЕ, ЧТО ХОТИМ! ТАКИМ ОБРАЗОМ, МОЖНО ОТКРЫТЬ ДОСТУП К ЯДРУ ДАЖЕ С ПРИКЛАДНОГО УРОВНЯ, ПРИЧЕМ БЕЗ ПЕРЕЗАГРУЗКИ!

Кто-нибудь может конкретнее объяснить как это работает? Кроме того, эта информация еще актуальна или нет?
Аноним 15/12/18 Суб 00:13:04 #124 №1311265 
13NUpumKPE.png
Господа, я очередной пытаюсь выкупить ИДА в этот угрюмый пятничный вечер.

Есть экзешник, в CE, к примеру, функция, которую нужно декомпилировать, она находится по адресу 4D4D80 (или .exe + D4D80), я ее могу там похукать, брейкпоинты, итп, но она достаточно сложная и хотелось бы ее декомипильнуть в хотя бы какой-то сишный код.

Первая проблема, с которой я столкнулся в ИДА - я не могу найти эту функцию, как бы я не пытался, прыгал по адресам, по адресу 4D4D80 находится какая-то ссанина ( возможно это подадреса сегментов ), мне просто хотелось бы, чтобы адреса были такие же, как и в CE, потому адреса в СЕ соответсвуют тому что я читаю/записываю WriteProcessMemory().

Вторая проблема, это перевод в сишный код, я знаю что ИДА это умеет и могёт, на оундкоре считается чем-то вроде классики, если не ошибаюсь, эта фича называется Pseudocode, но я не смог нигде найти упоминаний о существовнии подобного (IDA 7.0.170914)
Аноним 15/12/18 Суб 00:15:40 #125 №1311266 
>>1311265
F5/CTRL-F5
Аноним 15/12/18 Суб 00:21:06 #126 №1311270 
>>1311266
Благодарки, теперь осталось найти ту функцию. Может там можно как-то выключить адреса по сегментам?
sage[mailto:sage] Аноним 15/12/18 Суб 01:15:39 #127 №1311292 
>>1311270
> теперь осталось найти ту функцию
Во-первых, ты можешь приаттачиться отладчиком иды к процессу, тогда адреса (скорее всего) совпадут. Если не совпадут, читай про ASLR, запатчи флаг ASLR-aware в заголовке.
> по адресу 4D4D80 находится какая-то ссанина
Во-вторых, возьми какой-нибудь детектор упаковщиков (peid, protection id, detect it easy или что там сейчас модно) и узнай, не запакован ли файл. Если упакован - распакуй. Если не можешь, см. во-первых.
В-третьих, нахаляву ничего не бывает, читабельный сишный код получается после длительного анализа.
Аноним 15/12/18 Суб 01:45:30 #128 №1311301 
>>1311292
Только понял, что данные екзе файла и память процесса это не од
sage[mailto:sage] Аноним 15/12/18 Суб 03:58:12 #129 №1311316 
>>1311301
Да нет, тебе IDA (в случае PE .exe) имитирует загрузку программы и показывает такие же виртуальные адреса, как в памяти. И даже если она показывает не те адреса (например, ASLR в системе, или ты грузишь DLL, а ее базовый адрес занят), всегда можно сделать Rebase program в IDA. Но она показывает то же, что и винда видит при старте программы. Если программа после запуска сама себя модифицирует (распаковывает), то IDA, естественно, об этом узнать неоткуда, и ты видишь мусор. Если ты знаешь алгоритм, или серьезно ковыряешься в упаковщике, можно написать статический анпакер, который прямо в IDA будет "выделять" память (создавать дополнительные сегменты) и делать PatchByte так же, как делает стаб упаковщика в рантайме, а можно "просто" запустить упакованую пограмму под отладчиком, дождаться, пока стаб ее распакует и после этого сдампить результаты в файл, на который уже можно натравливать IDA. Ну после ребилда и исправления импортов, если они интересуют.
Аноним 15/12/18 Суб 15:28:33 #130 №1311512 
>>1310825
Японцы те ещё извращенцы, если что.
Аноним 15/12/18 Суб 19:06:21 #131 №1311605 
image.png
>>1311316
Теперь память совпадает, но в ИДА не формируются инструкции из байткода, соответственно F5 не работает. Возможно из-за динамичности памяти они решили не обновлять это, как делает СЕ?
sage[mailto:sage] Аноним 15/12/18 Суб 19:28:07 #132 №1311618 
>>1311605
Press X to win<C> to make code.
Аноним 16/12/18 Вск 02:38:33 #133 №1311779 
Полу-теоретический вопрос.
Вот есть игра, в ней из мобов надо выбивать итемы всякие и они падают на землю.
Хочу при выпадении определённых вещей чтоб мне мой скрипт пищал.
Прочитать память из скрипта я смогу, но как её найти?
Как через чит энжин найти память, которая хранит все вещи на земле? Вообще не понимаю что искать.
Аноним 16/12/18 Вск 04:11:05 #134 №1311791 
Есть инструкция
mov ecx, fs:[0000002C]

Нагуглив, я предположил что она вычитывает информацию из https://en.wikipedia.org/wiki/Win32_Thread_Information_Block , которая уникальна для каждого треда. И, соответственно, вызвав функцию из разных потоков можно получить разные результаты (I believe).

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

Второй, я так понимаю, что эта фича была сделана чтобы одна и та же функция но в разных потоков занималась обновлением всей хуйни, только в первом треде обновляются объекты, в другом - инвентарь, в третем - еще что. Насколько это может быть похоже на правду?
Аноним 16/12/18 Вск 13:38:14 #135 №1312051 
Сап двач нужна ваша помощь
У меня в универе изучают ассемблер TASM ( поставлен он там через dosBox никто не может объяснить как они эту парашу ставили )
Мне нужно скачать TASM но я хз где его скачать рабочий и как с ним работать если кто может поделитесь ссылкой
Аноним 16/12/18 Вск 13:46:32 #136 №1312052 
>>1312051
https://habr.com/post/326078/
sage[mailto:sage] Аноним 16/12/18 Вск 23:26:34 #137 №1312375 
>>1311791
> как прочитать через WinAPI какие треды в процессе какую информацию содержат в этой структре
Ты заебешься. Лучше похукай в игре что-нибудь. Но если очень хочется: перечисляешь потоки в процессе, делаешь каждому GetThreadContext, достаешь оттуда SegFs, скармливаешь его GetThreadSelectorEntry, собираешь линейный адрес TEB, разбираешься, как работает TLS, парсишь TLS, профит. Тебе оно надо?

> что эта фича была сделана чтобы одна и та же функция но в разных потоков
Это вообще может быть что-нибудь околосистемное. Например, банальные thread-local данные сишного рантайма.
Аноним 17/12/18 Пнд 12:22:04 #138 №1312504 
>>1308764
>>1308847
Решил я короче попробовать зареверинжинирить эту игру в общем:
https://en.wikipedia.org/wiki/State_of_War_(video_game)

Пожелайте удачи и не бросить это дело
Аноним 17/12/18 Пнд 17:45:19 #139 №1312673 
Чо бы накодить на асме.
Аноним 17/12/18 Пнд 17:50:34 #140 №1312682 
>>1312673
Стандартную библиотеку Си
Аноним 17/12/18 Пнд 18:03:21 #141 №1312695 
>>1312673
256b demo
я больше не вижу применения этой хуйне
Аноним 17/12/18 Пнд 20:32:26 #142 №1312768 
>>1312695
Подробнее.

Неужели нет применения? Ничто как ассемблер не позволяет так плотно ебаться с компом. Дрова, загрузчики и лоулевел всегда же быть, хоть немного, но нужны.
Аноним 17/12/18 Пнд 20:37:44 #143 №1312772 
>>1312768
В 2018 нет.
Асм x86 сам по себе это байткод для микрокода внутри процессора, поэтому до железа тебя в любом случае не пустят. А как тасовать этот самый микрокод для более лучшей скоростности лучше знает компилятор.
Аноним 17/12/18 Пнд 20:41:35 #144 №1312773 
>>1312772
А реверсить за тебя кто будет? Hex-rays штоле?
Вот то-то!
Аноним 17/12/18 Пнд 20:42:56 #145 №1312775 
>>1312772
А на чем пишут компиляторы?
Аноним 17/12/18 Пнд 20:44:53 #146 №1312776 
>>1312773
>Hex-rays штоле
Ну как бы да. ._.
С появлением hex rays у меня наконец-то стало получаться реверсить, потому что асмовскую поеботу я вообще не воспринимаю, а вот глючный высер hex-rays'а вполне.
Аноним 17/12/18 Пнд 20:51:36 #147 №1312782 
>>1312775
Ну уж точно такую сложную вещь как компилятор на ассемблере не пишут. Хорошим тоном считается написать компилятор языка на самом языке - тогда он считается уже зрелым.
Ассемблер тебе понадобится только на последней стадии - кодогенерации из одного из промежуточных представлений.
Если ты хочешь написать компилятор в 2018, тебе нужно генерить LLVM-код, а LLVM уже превратит этот код в машинный. Так ты построишь минимум велосипедов, потому что LLVM умеет применять к промежуточному коду кучу оптимизаций и делать много чего еще хорошего.
А LLVM написана на С++. Вот кодогенератор, если интересно https://github.com/llvm-mirror/llvm/tree/master/lib/Target/X86
Аноним 17/12/18 Пнд 21:00:07 #148 №1312791 
Анончики, что можно написать на асм? что ты обычно пишите? какой самый крутой проект у тебя был?
Аноним 17/12/18 Пнд 21:11:47 #149 №1312798 
Реверсач, сап. Знаю, что меня сейчас обоссут, но лучше помогите! У крестоводов и сибояр есть так называемые фаст-либы, в которых функции это обертки над ассемблерными вставками. Таким образом они повышают производительность, например математических вычислений. Есть ли способ заюзать все это на C#?
sage[mailto:sage] Аноним 18/12/18 Втр 01:39:17 #150 №1312896 
while1.png
>>1312772
> поэтому до железа тебя в любом случае не пустят
Это и есть железо. Микрокод много где есть, и если он есть - он неотъемлемая часть проца.

>>1312776
> С появлением hex rays у меня наконец-то стало получаться реверсить
Это пока процессор поддерживается рейсами, а процессорный модуль может в систему типов. Но бывает, что все, что у тебя есть - кривой процессорный модуль на питоне, который еще и править приходится. А еще если ты случайно забудешь где-то volatile, или случайно добавишь лишний const, HexRays спокойно выкинет у тебя из функции большую часть логики или парочку вызовов функций, или свернет while до if.

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

>>1312772
> лучше знает компилятор
Пикрелейтед. На самом деле это древняя VS2005 и еще какой-то баг в компиляторе, потому сам пикрелейтед был собран с /Od, а в той программе, что я реверсил, качество кода вокруг цикла намекает на сборку с /O2 или /Ox.

>>1312798
pinvoke?
Аноним 18/12/18 Втр 09:38:52 #151 №1312953 
>>1312798
>Есть ли способ заюзать все это на C#?

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

> Анончики, что можно написать на асм?

Буткод для операционной системы разве только, там есть определенные команды, которые нужно именно из асма дергать, что бы проц в защищенный режим c нужной разрядностью перевести, да виртуальные машины - там нужно тоже пару специальных опкодов дергать.

Да и то первое было актуально во времена обычного биоса до UEFI, сейчас UEFI уже с бута мбр на блюдечке защищенный режим подгоняет.
Аноним 18/12/18 Втр 10:03:18 #152 №1312957 
>>1312896
>А ты, не зная асма, не сможешь даже заметить перечисленное, не то, что решить проблему.
._.
Ну на самом деле да. Но реверсинг это, пожалуй, единственное применение асма.

На пике надеюсь O0?
Аноним 18/12/18 Втр 13:47:13 #153 №1313028 
>>1312957
>Но реверсинг это, пожалуй, единственное применение асма.
Эксплуатоиты писать.
Да и вообще что угодно
Аноним 18/12/18 Втр 18:17:25 #154 №1313178 
Че ебать у вас как много надо знать? Архитектура, асм, операционки, кресты с сями, пиздец какой-то.
Аноним 18/12/18 Втр 18:37:31 #155 №1313192 
>>1313178
Скачай HiAsm, там особо много знать не надо.
Аноним 18/12/18 Втр 21:41:55 #156 №1313277 
>>1313028
Енто и есть реверсинг, он имел ввиду. Идея в том, что ничего нормального, типа стендалон апп не напишешь на асме.
Аноним 18/12/18 Втр 21:50:11 #157 №1313281 
>>1313277
До сих пор пишут в эмбедде, и много. Не очень понимаю, зачем, правда. Ну и всякие загрузчики надо самому писать на нестандартных девайсах
Аноним 18/12/18 Втр 22:04:54 #158 №1313293 
>>1313277
>стендалон апп не напишешь на асме
WAT?
Аноним 18/12/18 Втр 23:11:14 #159 №1313324 
>>1312957
Да, на пике O0 (в студии это Od).

>>1313277
> стендалон апп не напишешь на асме.
Не не напишешь, а нет смысла писать.
Аноним 19/12/18 Срд 11:57:44 #160 №1313466 
Как я понимаю ассемблер теперь не нужен.
Аноним 19/12/18 Срд 12:09:21 #161 №1313469 
>>1313466
Уже лет 20 как, лол.
Аноним 19/12/18 Срд 18:35:17 #162 №1313671 
>>1313466
>теперь
Ты потерял ссылку на новость, в которой изобрели ИИ?
Что там внутри? Аноним 19/12/18 Срд 19:47:17 #163 №1313703 
Писать простейшие программы формата PE, типа "Hello, world!", оказалось несложно: подключил msvcrt.dll с помощью макросов из import32.inc, импортировал методы — профит. Но что из себя представляют эти функции? Например метод exit: как он работает? Программа должна как-то обращаться к ОС, но засчет чего это происходит? С форматом MZ вроде ясно — вызываешь прерывание DOS, а система интерпретирует это как призыв к действию и выполняет какой-то свой код (хотя тут тоже не ясно, что именно происходит дальше, но, по всей видимости, работа с машиной на низком уровне, с этим еще можно разобраться). А вот с PE не очень понятно, где эта точка соприкосновения с системой, когда мы говорим ей "сделай ЭТО, шиндовс". Объясните это, пожалуйста, если не трудно.
Аноним 19/12/18 Срд 20:07:24 #164 №1313710 
>>1313703
API
Аноним 19/12/18 Срд 20:22:53 #165 №1313722 
>>1313710
> Базовые функции реализованы в динамически подключаемых библиотеках kernel32.dll и advapi32.dll; базовые модули графического интерфейса пользователя — в user32.dll и gdi32.dll
У меня все еще вопросы:
1) Выходит, я не могу написать 32-битную программу без использования этих библиотек, или других, использующих первые, так?
2) А что тогда содержится в самих dll, если это — базовые функции? Код, который выполняется системой на самом низком уровне при работе непосредственно с машиной?
3) В msvcrt.dll функции тоже базовые, или выполняются не без использования kernel32.dll?
Аноним 19/12/18 Срд 20:28:45 #166 №1313726 
>>1313722
Это уже не по асму вопросы, а по устройству системы.

1. Можешь, но kernel всегда будет проецироваться в твой адресный процесс
2. Просто функции (библиотека, понимаешь?). Иногда может и сквозь HAL в самый низ уйти.
3. По-разному.
Аноним 19/12/18 Срд 20:36:26 #167 №1313728 

>>1313703
> Например метод exit: как он работает
> вызываешь прерывание DOS
exit сбрасывает буферы файлов, выполняют прочую деинициализацию и под конец дергает ExitProcess(), это уже Windows API. ExitProcess делает NtTerminateProcess, который вызывает примерно такое же прерывание, как в DOS (int 2e). Но на самом деле через прерывания ходить в ядро медленнее, поэтому в современных ос оно делает sysenter. Ну и там дальше уже ядро разбирается.

>>1313722
> Выходит, я не могу написать 32-битную программу без использования этих библиотек, или других, использующих первые, так?
Ты можешь напрямую дергать ядро, но номера системных вызовов ("функций" прерывания, если брать DOS-овые аналоги) меняются от версии к версии, поэтому такой код как минимум может не заработать в очередном билде винды. И неудобно это.

> что тогда содержится в самих dll, если это — базовые функции
Некоторые функции целиком реализованы в юзерспейсе. Другие - обертки, которые делают работу с системными вызовами более удобной.

> msvcrt.dll функции тоже базовые, или выполняются не без использования kernel32.dll?
Сводятся к kernel32.dll. MSVCRT, как следует из названия (MS Visual C RunTime) - это вообще сишный рантайм, реализующий функции, которые требует реализовывать сишный стандарт, к Windows оно имеет лишь то отношение, что в комплекте винды куча софта, написанного на Си, и которому этот рантайм был нужен. Был - потому что свежие рантаймы лежат в SxS, а этот древний, от шестой вроде студии.
Аноним 19/12/18 Срд 20:38:22 #168 №1313729 
>>1313726
>Просто функции
Не очень понял, там имеется реализация этих базовых функций?
Аноним 19/12/18 Срд 20:43:06 #169 №1313735 
>>1313728
Спасибо, вроде что-то понял.
Аноним 20/12/18 Чтв 00:49:29 #170 №1313883 
Где мне можно достать IDA pro 7 под линь? Или через вайн придётся запускать?
Аноним 20/12/18 Чтв 00:51:23 #171 №1313885 
>>1313883
Ну 6.8 хорошо под вайном бегает
Аноним 20/12/18 Чтв 15:20:32 #172 №1314067 
>>1313729
Да
Аноним 20/12/18 Чтв 15:53:00 #173 №1314081 
image.png
Привет, аноны. Объясните, пожалуйста, как работает static linking. Решил поэкспериментировать (пикрил), но програмка крашнулась. Что не так? Ну, то есть понятно, что не рационально впихивать весь dll в приложение, где используются только две функции, да и смысла линковать статически конкретно эту библиотеку нет, но разве это не должно было сработать? Значения getch и exit — entry point'ы, взял их из dependency walker.
Аноним 20/12/18 Чтв 16:02:50 #174 №1314087 
Mj9i3tZc.png
>>1314081
Уууу, бля.
Надеюсь тот анон, что любит простыняшами отвечать, захочет написать как сильно ты не прав.
Аноним 20/12/18 Чтв 16:52:20 #175 №1314111 
>>1314081
Подозреваю, что ты пытаешься исполнять данные, а не код
Аноним 20/12/18 Чтв 17:10:59 #176 №1314114 
>>1314111
А что, реализации там нет? =(
Аноним 20/12/18 Чтв 17:52:15 #177 №1314132 
Где можно посмотреть список какой инструкции соответствует какая команда?
Аноним 20/12/18 Чтв 18:00:27 #178 №1314136 
>>1314132
>какой инструкции соответствует какая команда
Штабля?
Может какой опкод какой команде?
Аноним 20/12/18 Чтв 18:12:56 #179 №1314140 
image.png
image.png
Почему при запуске скомпилированной сишной проги она не зависвает, ведь по сути там будет программа которая бесконечно jmpает на себя.
Аноним 20/12/18 Чтв 18:19:28 #180 №1314144 
>>1314136
ДА!
Аноним 20/12/18 Чтв 18:27:44 #181 №1314148 
>>1314144
https://en.wikipedia.org/wiki/X86_instruction_listings
А вообще читай intel manual.
Аноним 20/12/18 Чтв 18:28:20 #182 №1314150 
>>1314148
>https://en.wikipedia.org/wiki/X86_instruction_listings
СПАСИБО БРАТУХЕН ТЫ КРАСАВА
Аноним 20/12/18 Чтв 18:29:10 #183 №1314151 
>>1314140
Потому что ты не вызываешь _myfunc?
Аноним 20/12/18 Чтв 18:30:29 #184 №1314152 
>>1314148
Их так дохуя что ли. Ебать конечно карась.
Аноним 20/12/18 Чтв 18:30:52 #185 №1314153 
>>1314081
>>1314087
> Уууу, бля.
Вот у меня абсолютно точно такая же реакция. Короче, так оно не работает по двум с половиной причинам:
1) Когда винда грузит библиотеку, это не значит, что она просто выделяет память и тупо копирует туда файл. Она парсит много всяких структур и выделяет память сложно. Пересказывать весь формат PE я не буду, лучше найти какую-нибудь готовую статью. Но очевидная проблема в том, что файл на диске отличается от образа в памяти.
1.5) Кроме того всяких вещей, связанных с загрузкой собственно образа, загрузчик также выполняет динамическую линковку (связывание), т.е., пробегается по импортам длл и впатчивает в них адреса тех функций, которые импортируются. До этого попытка вызвать любую импортированную функцию приведет к крашу (там есть некоторые исключения с привязанными длл, о которых я лучше промолчу).
2) Кроме загрузчика, еще и сама длл обычно производит всякую инициализацию, получая управление в DllMain в разные моменты своей жизни. Естественно, ненициализированная длл работать не будет.

В любом случае, статическая линковка - это не просто включить файл. Это еще и разрешение внешних ссылок, и выделение памяти под .bss, и обработка релоков, и куча других мелких задач. Подлинковывать какой-нибудь .obj без внешнего линкера современным FASM-ом теоретически можно (с ограничениями), но это совсем не две строки, и вообще это извращение.

>>1314140
Ты все делаешь не так. Ты не выделил память под функцию, ты не пометил память, как исполняемую, ты читаешь с "r" вместо "rb".
Аноним 20/12/18 Чтв 18:38:44 #186 №1314159 
>>1314148
Как понять, под какой архитектурой компилировалась программа?
Аноним 20/12/18 Чтв 18:40:27 #187 №1314160 
>>1314159
Посмотреть в заголовке исполняемого файла.
Аноним 20/12/18 Чтв 18:41:58 #188 №1314161 
image.png
image.png
>>1314153
>Ты все делаешь не так. Ты не выделил память под функцию, ты не пометил память, как исполняемую, ты читаешь с "r" вместо "rb".
Сделал все по заветам твоим, но сосу.
Аноним 20/12/18 Чтв 18:42:02 #189 №1314162 
>>1314159
Под какой компилировалась - никак (ну разве что линкер строчку с путем оставит или что-нибудь еще). Под какую - обычно указано в одном из полей заголовка исполняемого файла. Например IMAGE_NT_HEADERS.FileHeader.Machine для PE или ElfXX_Ehdr.e_machine в ELF.
Аноним 20/12/18 Чтв 18:42:34 #190 №1314163 
>>1314160
Тебя Егор зовут?
Аноним 20/12/18 Чтв 18:42:57 #191 №1314164 
>>1314160
Да, я дурак, спасибо.
Алсо, очень сложно. Даже хелло ворлд нормально прочитать не могу.
Аноним 20/12/18 Чтв 18:44:43 #192 №1314165 
zzz49.jpg
>>1314163
Называй меня королем собак.
Аноним 20/12/18 Чтв 18:45:09 #193 №1314166 
>>1314161
> Сделал все
> ты не пометил память, как исполняемую
То, что ты там в ассемблере что-то написал, влияет только на бинарник, который ты из него слинкуешь. А пометить надо память, которую ты маллоком выделил (может не получиться на системе с селинуксом). Алсо, ты точно в чистый бинарник компилируешь, а не пытаешься грузить elf или coff?
Аноним 20/12/18 Чтв 18:47:35 #194 №1314168 
image.png
>>1314166
nasm main.asm просто компилировал
Аноним 20/12/18 Чтв 18:48:59 #195 №1314169 
>>1314168
Ну тогда mprotect или VirtualProtect, или что у тебя там за ОС.
Аноним 20/12/18 Чтв 18:49:40 #196 №1314170 
>>1314166
Я думаю он сам особо не понимает что делает.
Мог бы сразу написать 0xEB, 0xFE и не мучиться с файлами.
Аноним 20/12/18 Чтв 18:50:45 #197 №1314173 
>>1314170
Я не понимаю что делаю. Я мог бы написать 0хЕВ и 0хFE и не мучиться с файлами.
Аноним 20/12/18 Чтв 18:51:30 #198 №1314174 
>>1314161
Лол. Я только сейчас заметил, что там еще и
ptr = (char★)c;
Возможно, стоит начать с изучения Си сначала?
Аноним 20/12/18 Чтв 18:53:13 #199 №1314175 
>>1314174
Это случайность, честное слово. Я когда писал код точно хотел заебенить там char приведение.
Аноним 20/12/18 Чтв 18:53:16 #200 №1314176 
>>1314162
Хорошо, допустим, я нашел. Теперь я могу из hex-файла начать переписывать программу на си/кресты?
80386 PE формат
Аноним 20/12/18 Чтв 18:55:17 #201 №1314180 
>>1314176
Прямо из хексов? Глазками? Дизассемблирование в уме? Нет, не можешь, иначе не задавал бы таких вопросов. Иду возьми лучше с хексрейсами.
Аноним 20/12/18 Чтв 18:56:02 #202 №1314182 
>>1314180
>Дизассемблирование в уме?
И дворды ксорить.
Аноним 20/12/18 Чтв 18:57:13 #203 №1314184 
>>1314182
Дворды херня, это каждый сможет. А к нам 2019 спешит, у нас давно qword-ы.
Аноним 20/12/18 Чтв 18:58:08 #204 №1314185 
>>1314180
Я нихуя не умею, ладно. Начал RE день назад.
Аноним 20/12/18 Чтв 18:59:57 #205 №1314186 
Хочу написать паровоз. Как долго это делать на ассемблере?
Аноним 20/12/18 Чтв 19:01:22 #206 №1314187 
>>1314184
>у нас давно qword-ы.
Что это? Карасики маленькие?
Аноним 20/12/18 Чтв 22:09:04 #207 №1314288 
>>1301036 (OP)
ОП, добавь в шапку онлайн-дизассемблер
disassembler.io
Аноним 21/12/18 Птн 10:15:25 #208 №1314402 
>>1313281
>До сих пор пишут в эмбедде, и много. Не очень понимаю, зачем, правда.

Потому что капиталисты по-прежнему жадные и им проще нанять усача за 2000-4000 евро в месяц без учета налогов чтобы тот применив более дешманский МК сэкономил своей байтоеблей от 2 до 20 евро на каждую сраную стиралку/, что при умножении на количество произведенных стиралок дает уже миллионы сэкономленых евреев в зарплату топманагеров и в доход акционеров.
Аноним 21/12/18 Птн 22:03:57 #209 №1314756 
сделал поиск по треду: gas
ничего не нашел
Разве будущее не за ним?
Аноним 21/12/18 Птн 22:46:18 #210 №1314772 
Есть бинарник от микроконтроллера mc9s12x. У него страничная организация флешпамяти. Как правильно указать IDA работу с таким видом памяти?
Аноним 21/12/18 Птн 23:08:05 #211 №1314777 
image.png
Как сделать, чтобы ИДА писал в псевдокоде хексы, вместо дец. заебался калькулятором конвертить
Аноним 21/12/18 Птн 23:59:33 #212 №1314801 
>>1314777
<H> или правый клик. Алсо, в настройках декомпилятора есть default radix.

>>1314756
Нет.
Аноним 22/12/18 Суб 17:39:55 #213 №1315041 
image.png
>>1314801
>в настройках декомпилятора есть default radix
Не нашел, я пытался, честно.

Эти аррей акссессы меня путают, к примеру, this - тип char ^, this_ptr - int ^.
И this_ptr[0x374] != this[0x374], это очень мешает, можно, настроить, чтобы было в виде ^(this + 0x374) или ^(this_ptr + 0x374 * 4). А то менять все типы под char, дабы оффсеты совпадали будет как-то не очень.
Аноним 22/12/18 Суб 21:10:26 #214 №1315181 
>>1315041
> Не нашел, я пытался, честно.
Edit->Plugins->Hexrays->Options, справа.

> Эти аррей акссессы меня путают
А зачем ты их оставляешь? Делай структуры сразу, без этого крестокод практически невозможно реверсить. Офсеты для отладки будешь подсматривать наведением мыши или табом в дизасм.

> this_ptr = this
Тыкай x на this_ptr, чтобы удостовериться, что он присваивается только один раз, тыкай =, мапь на this. Чем чище код, тем легче в нем разбираться.
Аноним 28/12/18 Птн 04:12:38 #215 №1317613 
Анончики, как справляться с чувством ниосиляторства во время изучения этой всей байтоебли? Хочу быть байтойобой и ахуенным спецом, а не тырпрайз макакой... но сложности в обучении каждый раз подводят к тому, чтобы дропнуть все к хуям и вкатываться в тырпрайз. Какие есть советы по этому поводу?
Аноним 28/12/18 Птн 04:21:35 #216 №1317614 
>>1317613
Ты правда думаешь, что тырпрайз проще байтоебли?
Аноним 28/12/18 Птн 04:27:16 #217 №1317615 
>>1317614
Думаю да. Разве нет?
Аноним 28/12/18 Птн 11:43:58 #218 №1317696 
>>1317613
Начни прикладывать свои навыки где-то. Никто не занимается этим дрочем просто "чтобы быть классным спецом и получать свой косарь".
Аноним 28/12/18 Птн 14:27:57 #219 №1317779 
>>1317615
Когда я в конце 90х делал реализацию просмотра JPEG в DOS на чистом asm'е без FPU (ДКП с fixed point это тот еще пиздец), это было в разы проще, чем выучить ебаный Spring Framework для ебаной Java.
Аноним 28/12/18 Птн 21:46:24 #220 №1318021 
>>1317779
>без FPU
Зачем? Хардкор ради хардкора?
Аноним 28/12/18 Птн 22:37:56 #221 №1318049 
>>1318021
Может его могло и не быть на тех процессорах, на которых исполнялась его программа.
Аноним 28/12/18 Птн 23:38:56 #222 №1318089 
>>1318049
В конце 90-х уже SSE на пороге стоял.
Аноним 29/12/18 Суб 03:58:12 #223 №1318191 
>>1317696
Куда прикладывать то? Я практикуюсь реверсить разные хеллоуворды и крякми, ctf-ки решаю. Еще пробовал малварь анализировать, но сэмплы негде брать.
Аноним 29/12/18 Суб 07:14:49 #224 №1318205 
>>1318191
Малварь не так интересно сейчас разбирать. Можешь на https://www.malwaredomainlist.com/mdl.php сходить и набрать себе на любой вкус поделок с платной чисткой фемидой+вмпротект.
Но будут там в основном всякие агенты, майнеры да поделки на дотнете.
Это раньше весело было увести у пинчевода логи, а то весь ботнет сразу. А сейчас только ctf'ные крякми еще как-то будоражат кровь.
Аноним 29/12/18 Суб 11:52:28 #225 №1318263 
>>1318021
Демосцена ебать её... в итоге посаженное зрение и куча потерянного времени. Не повторяйте моих ошибок пацаны.
Аноним 29/12/18 Суб 12:03:59 #226 №1318274 
>>1317613
Я ваще поддерживаю тырпрайз виртуальную машину со своим ассемблером, это не совсем непересекающиеся вещи.
Аноним 29/12/18 Суб 16:58:29 #227 №1318392 
А можно тут попросить помощи? С темой треда относительно пересекается. Есть одно задание по какому-то ctf, категории pwn, с++ прога под Линукс. Хочу, собственно, его решить. Идей нет никаких, хотя довольно долго сижу. Пару предыдущих заданий я там осилил - переполнение, подмена rip, уехали куда надо.
Исходник: https://pastebin.com/GcaWX8aE
Аноним 29/12/18 Суб 18:40:34 #228 №1318421 
>>1318392
> С темой треда относительно пересекается
Каким местом? Это какая-то сраная олимпиадка, там даже to брутить не нужно.
sage[mailto:sage] Аноним 29/12/18 Суб 21:04:53 #229 №1318464 
>>1318421
Ну ок, я не прав, это не просто сраная олимпиадка, а уязвимая сраная олимпиадка, там проверка после find кривая, и можно запатчить длину строки, ну и дальше дело техники.
Аноним 29/12/18 Суб 21:43:26 #230 №1318472 
>>1318464
Так и надо уязвимость эксплойтнуть. Спасибо за наводку
Аноним 29/12/18 Суб 22:32:29 #231 №1318480 
>>1318464
>>1318472
Хотя я честно говоря не понял, как именно. Ну увеличили мы длину строки, туда попал мусор. А толку?
sage[mailto:sage] Аноним 29/12/18 Суб 22:35:02 #232 №1318481 
>>1318480
Строка на стеке, его можно дампить, искать там нужные байтики и менять их местами, например.
Аноним 29/12/18 Суб 22:45:28 #233 №1318482 
>>1318481
Звучит жестко, спасибо. Постараюсь доковырять.
sage[mailto:sage] Аноним 30/12/18 Вск 00:59:18 #234 №1318524 
>>1318481
А вообще там же replace есть, с ним все еще проще. Ну это если условия тепличные в виде отключенного ASLR.
Аноним 30/12/18 Вск 03:30:46 #235 №1318553 
Завезу контента. И полезно и смешно!
https://www.youtube.com/watch?v=HlUe0TUHOIc
sage[mailto:sage] Аноним 30/12/18 Вск 09:08:09 #236 №1318597 
>>1318553
1) Было уже.
2) Кто-то правда пользуется графом в IDA? Зачем?!
Аноним 30/12/18 Вск 12:25:32 #237 №1318649 
>>1318597
Быстро понять структуру программы
Аноним 30/12/18 Вск 20:36:41 #238 №1318795 
Что можно почитать про уязвимости уровнем повыше переплнения стека и буфера?
sage[mailto:sage] Аноним 30/12/18 Вск 20:57:04 #239 №1318816 
>>1318795
Книгу.
Аноним 31/12/18 Пнд 01:10:18 #240 №1318962 
>>1318795
Блог Google Project Zero, например. А потом статьи про все встече
Аноним 31/12/18 Пнд 01:11:20 #241 №1318963 
>>1318962
...нные непонятные слова.
Аноним 31/12/18 Пнд 08:12:42 #242 №1319041 
15461853636730.png
Здравствуйте, я хочу учить ассемблер и Си для способствованию развития в реверс-инжиниринге.

Моя цель, будучи жителем далекой провинции, выточить напильником из технического и металлического мусора установки для выпуска строительных материалов на основе мусорных отходов, песка, камней, щебня и т.д. За основу хочу взять существующие разработки и с помощью реверс-инжиниринга догадаться как они работают, создать близкий аналог из технического и металлического мусора. После чего построить себе хижину орков из полученных строительных материалов.

Из этого вытекают следующие вопросы:
1) Какие языки программирования надо учить для подобного реверс-инжиниринга? Достаточно ли ассемблера и Си?
2) Насколько углубленно надо учить матан для такой цели? Хватит ли стандартного курса отечественных ВТУЗов?
3) Если я в будущем построю потенциальную хижину, то ко мне сразу на разборки приедут провинциальные коммерсы качать права за то, что я из мусора построился, а не купил у них стройматериалы как все. В связи с этим, какое боевое искусство учить, чтобы по голове сильно не били на тренировках, но чтобы можно было защитить мою потенциальную хижину от разборок коммерсов? Подойдет ли тэквондо ITF, там, вроде, сильно нельзя бить?
4) Как грамотно совместить тренировки, получение умений в программировании и в слесарном деле? Ведь надо будет быть достаточно сильным, чтобы быть готовым к тому, что коммерсы на разборки ездить будут. И достаточно квалифицированным, чтобы создать необходимые установки.
Аноним 01/01/19 Втр 22:01:04 #243 №1319476 
image.png
Анончики, поясните за TLS-callback и почему о нем умалчивают. Пикрил, таблица CreateProcess из книги Windows Internals. Здесь сказано, что CreateProcess передает управление сразу к Entry Point. А где тогда находится TLS?
Аноним 02/01/19 Срд 00:52:17 #244 №1319509 
>>1319476
Вот тут:
> Заключительная инициализация процесса.
все только начинается: вызываются не только TLS-колбеки, но еще и дллки грузятся, вызываются их entry-point-ы и т. д. Но это все частности, поэтому их опускают.
Аноним 02/01/19 Срд 10:44:41 #245 №1319555 
Есть одна программа. Она выделяет память через calloc, но не проверяет, сколько запрашивает пользователь. Так вот, пихаем -1, calloc возвращает NULL ака 0x0. Так как случилось переполнение size_t - прога считает, что предел у нас уехал в максимальное значение 64бит. После этого пользователь может запросить любой элемент массива, но так как мы сломали предел, и указатель на массив 0x0 - мы можем прочитать любой доступный кусок памяти. Так вот, пытаюсь таким образом прочитать стек (подсовывая в качестве индекса адрес начала текущего фрейма стека, найденного через отладчик, конвертированного в десятичное число) - выпадает с SIGSEGV, хотя вроде как не должно. Где я накосячил?
Аноним 02/01/19 Срд 10:50:46 #246 №1319557 
изображение.png
изображение.png
>>1319555
Вот скрины. В данном случае пытаюсь прочитать сохраненный rip, но выпадает SIGSEGV, хотя, по идее, по адресу 0x0 со смещением 0x7fffffffe888 находится наш стек и сохраненный в нем rip.
Аноним 02/01/19 Срд 19:10:09 #247 №1319726 
>>1319557
rax*8
ебать в рот gdb и at&t
Аноним 02/01/19 Срд 19:11:40 #248 №1319727 
>>1301036 (OP)
Сап.
Вопросы касаются архитектуры ПК.
1. Что в иерархии памяти находится ниже? Магнитные или оптические диски? Из этого вытекает 2 вопроса: что стоит дороже и работает быстрее.
Я ставлю на то, что ниже находятся оптические диски, но пруфануть не могу.
2.
Если запрос к L3 не приносит результата, он передаётся во внешнюю память:
а. По шине DDR3
б. По шине PCI
в. Запрос никуда не передается
Про шину DDR3 я слышу впервые, в гугле тоже ничего не нашел. Однако есть шина данных.
Казалось бы, в случае кэш-промоха, идет обращение к ОЗУ, по шине данных, значит ответ по шине DDR3
Но идет речь о внешней памяти, которой ОЗУ не является, хотя если внешней памятью считается все что за цп - тогда ок.
В общем здесь я уже даже не знаю.
Аноним 02/01/19 Срд 19:19:44 #249 №1319731 
>>1319727
Лучше в /hw/ спроси, это слишком низко даже для асма.
Аноним 02/01/19 Срд 19:35:54 #250 №1319744 
>>1319726
Блять. Спасибо. Буду теперь в Иде перепроверять выхлоп gdb. Это было довольно неочевидно.
Аноним 02/01/19 Срд 20:01:49 #251 №1319760 
>>1319744
Есть radare, если что.
Аноним 03/01/19 Чтв 02:19:31 #252 №1320065 
>>1319731
Не думаю что там помогут.
Остановился на PCI (cpu -> pci host bridge -> RAM) и оптических дисках.
Аноним 03/01/19 Чтв 11:30:36 #253 №1320163 
>>1319726
> ебать в рот gdb и at&t
set disassembly-flavor intel в .gdbinit и забыть AT&T как страшный сон пробовал?

>>1319727
> Что в иерархии памяти находится ниже? Магнитные или оптические диски?
А одинаково. Если для твоего препода имеет значение технология хранения - с ним что-то не так.

> Если запрос к L3 не приносит результата, он передаётся во внешнюю память
Зависит от того, что именно висит в этом регионе памяти.



Аноним 03/01/19 Чтв 12:51:16 #254 №1320198 
>>1320163
>А одинаково. Если для твоего препода имеет значение технология хранения - с ним что-то не так.

Не одинаково.
Вопрос не про технологию хранения, а про так называемую иерархию памяти, ничего странного в нем нет. Вопрос же "к чему быстрее скорость доступа: к регистрам, к озу" не звучит же странно, хоть ответ и очевиден. Даже если вдруг, появятся (если не уже появились) оптические диски, которые работают быстрее магнитных - иерархия памяти не изменится, и согласно ей, оптические диски все равно будут медленее.


По поводу L3 кэша, имеется ввиду, что нужно лезть в ram(скорее всего), вопрос только по какой из шин.
Я нашел 2 варианта:
a) cpu -> pci host bridge -> ram (какой-то древний)
b) cpu -> data-bus -> ram
Аноним 03/01/19 Чтв 17:16:25 #255 №1320319 
>>1320198
> оптические диски, которые работают быстрее магнитных - иерархия памяти не изменится, и согласно ей, оптические диски все равно будут медленее
То есть этот способ классификации ничего реально не отражает, и придуман двумя-тремя теоретиками, которые даже друг с другом не в состоянии договориться.
На самом деле, оптические диски можно поставить ниже по иерархии не из-за скорости, а из-за того, что они съемные, т.е., не постоянно онлайн, точно так же, как и всякие стримеры нет, не те, которые рожей на твиче светят.
Аноним 03/01/19 Чтв 21:45:46 #256 №1320435 
>>1320319
Ну, скажем, насчет ничего реально не отражает это спорно. Все вполне разумно до уровня ЖД. А вообще да, придуман кукоретиками, с этим не поспоришь.
Аноним 04/01/19 Птн 06:56:18 #257 №1320538 
>>1320319
Дело не в том, что они съемные. HDD тоже может быть съемным. Оптические диски очень не любят перезапись. Лучший формат работы с ними - стереть полностью, записать. В этом плане у них чтение более-менее рандомное, а вот запись ближе к стримерам.
Иерархия, конечно, из манямирка, но определенный смысл в этом есть.
Аноним 04/01/19 Птн 10:06:33 #258 №1320558 
>>1320538
> Оптические диски очень не любят перезапись
Флеш тоже не любит перезапись, и подход там в некотором смысле аналогичен оптическим дискам: писать каждый раз в новые (пустые) страницы (как в сессии на CD/DVD), а грязные блоки тереть в фоне или по необходимости. Значит ли это, что флеш в этой вашей иерархии ниже CD? В моем манямирке, например, он был бы выше HDD из-за практически бесплатного random access. Да и вся эта иерархия должна/упирается в random access. Чем сложнее, тем ниже.
Аноним 04/01/19 Птн 12:01:12 #259 №1320595 
>>1301036 (OP)
Давно здесь https://beginners.re/ книгу стали раздавать только на почту?
Аноним 04/01/19 Птн 12:06:01 #260 №1320597 
>>1320595
https://10minutemail.com
Аноним OP 04/01/19 Птн 12:39:24 #261 №1320605 
>>1320595
В прошлом году всё было нормально.
Аноним 08/01/19 Втр 14:10:58 #262 №1323047 
Если я вызову какую-нибудь функцию (допустим, Beep из kernel32) с помощью invoke, введенные в стек параметры ф-ии будут вытолкнуты, но будут ли сохранены значения регистров? Или это необходимо сделать самостоятельно?
Аноним 08/01/19 Втр 14:19:40 #263 №1323058 
>>1323047
> самостоятельно
Да, ищешь что такое stdcall и читаешь.
esi, edi, ebx сохранятся
Аноним 08/01/19 Втр 14:28:18 #264 №1323064 
>>1323058
Я правильно понимаю, что stdcall — это только про автоматическое выталкивание параметров из стека? А про регистры я ничего не нашел (inb4: плохо искал). Где искать информацию о том, какие регистры будут затронуты той или иной функцией?
Аноним 08/01/19 Втр 23:22:43 #265 №1323473 
>>1323064
> плохо искал
this

google: wikipedia x86 calling conventions
google: msdn calling conventions microsoft перепидорасила документацию, теперь из исходной статьи нужно кликнуть по argument passing and naming conventions

> А про регистры я ничего не нашел
Стандартно для всех конвенций в x86 (32-битный код): при возврате DF должен быть сброшен, а EBP, EBX, ESI, EDI восстановлены, если ты их трогал. Вот если у тебя внутренняя фукнция (например, ты похукал что-то неэкспортируемое), тогда никаких гарантий или общих требований нет - может понадобиться и ECX/EDX схоронить иногда, это уж как компилятор код сгенерит.
Аноним 09/01/19 Срд 23:52:17 #266 №1324091 
Не тот тред, наверное, но тут разбираются. Решаю я задачи из всяких ctf, категории pwn, в которой нужно вскрыть программу и написать эксплойт, чтобы забрать флаг. Так вот, столкнулся с проблемой. Есть одна программа, я могу управлять ее стеком, ну и соответственно адресом возврата и сохраненными регистрами. Elf x64, включены защиты (PIE, NX, Stack Canary). Я бы не растерялся и устроил ROP-цепочку, разрешил бы исполнение стека и не парился, но в коде нет сисколлов. К программе прилагается еще и libc, т.е, наверное, предполагается, что я должен воспользоваться функциями оттуда, но так как еще и ASLR работает (не знаю, должен ли он быть по условиям, но у себя не выключал) - я не могу просто прыгнуть по адресу libc + смещение нужной функции.
Что можно сделать в такой ситуации? Есть ли что почитать?
Аноним 10/01/19 Чтв 00:11:23 #267 №1324111 
>>1324091
А, и Full RELRO тоже включен, но тут это уже наверное роли не играет.
Аноним 10/01/19 Чтв 00:28:54 #268 №1324119 
>>1324091
Без кода сложно, но
> ASLR работает
и
> я могу управлять ее стеком
может быть, ты можешь раскрыть адреса, получив содержимое стека?
Аноним 11/01/19 Птн 20:21:08 #269 №1325177 
изображение.png
>>1324119
Спасибо. Осталось немного.
Аноним 14/01/19 Пнд 01:55:27 #270 №1326382 
С полного нуля можно вкатиться?
Аноним 14/01/19 Пнд 02:41:31 #271 №1326396 
>>1326382
Изучи программирование немного, например Си. Потом уже можешь beginners.re читать.
Аноним 14/01/19 Пнд 04:56:51 #272 №1326414 
>>1326396
А без си никак нельзя?
Аноним 14/01/19 Пнд 05:24:19 #273 №1326422 
>>1326414
Ты хочешь бегать без ног?
Аноним 14/01/19 Пнд 05:59:45 #274 №1326425 
nano-animation-web.gif
>>1326422
Просто скинь литературу.
Аноним 14/01/19 Пнд 07:13:36 #275 №1326438 
>>1326382
Asm обычно осваивают с нуля. Так как это самый низкоуровневый из человеко-понимаемых языков. В 20 веке конечно и на машинных кодах писали, но сейчас такие вряд ли существуют.

Тебе не зря советуют изучать еще и Си. Так как писать на ассемблере ты все равно не будешь. Это утомительно, да и не особо нужно. Зато в связке с Си, это может помочь понять, как программы транслируются из высокоуровневых языков в инструкции процессора, через ассемблер.
Аноним 14/01/19 Пнд 07:15:15 #276 №1326439 
>>1326425
Курс молодого бойца (язык Си) http://cs.mipt.ru/c_intro
Аноним 14/01/19 Пнд 14:28:20 #277 №1326576 
>>1326438
Двачую. На асме обычно вставки делают, пару другую функций и все.
Аноним 14/01/19 Пнд 15:12:08 #278 №1326588 
>>1326439
По ассемблеру. Если бы мне нужен был си, я бы пошёл в другой тред
Аноним 14/01/19 Пнд 16:46:53 #279 №1326623 
Я ничего не понимаю, почему так сложно? В первой дизассемблированной строке программа делает push 0xffffffff
Во второй push 0x4841а
Операнда нет, как понять зачем, нигде не написано.
Пойду грузчиком работать.

>>1326588
beginners.re имеет два названия. Реверс инжиниринг для начинающих и понимание языка ассемблера. Так что пробуй его.
sage[mailto:sage] Аноним 14/01/19 Пнд 18:44:49 #280 №1326685 
>>1326623
> Операнда нет, как понять зачем, нигде не написано.
Показывай код. Или сам смотри, что будет дальше - если вызов функции, то смотри, что эта функция будет делать с аргументами. А может это просто SEH-фрейм, если вызова функции нет. В любом случае, понимание кода с неба не свалится, чтобы понять зачем, надо сидеть, смотреть, что происходит и постоянно пытаться понять. Вангую, что ты во втором пуше пропустил цифру. Особенно если это винда.
Аноним 14/01/19 Пнд 19:44:21 #281 №1326711 
>>1326685
>Показывай код
https://pastebin.com/Xd3JWGFg
>во втором пуше пропустил цифру
Да
>если это винда
Да, это PE.
Аноним 14/01/19 Пнд 19:56:12 #282 №1326717 
есть ли перспектива реверс-инженера? если да то какая? был ли опыт удаленки у кого нибудь?
как стать успешным и зарабатывать 300к\сек?
sage[mailto:sage] Аноним 14/01/19 Пнд 22:24:29 #283 №1326817 
>>1326711
Бляяя, еще и AT&T, фу таким быть. Я угадал про SEH. Там пушится -1 (для exception level вроде, это крестовая фишка), потом адрес нового обработчика исключений и адрес фрейма предыдущего хэндлера, чтобы сформировать linked list. Получившийся фрейм обработчика пишется в _NT_TIB (fs:0), чтобы винда о нем узнала (потом он удаляется перед ret в обеих ветках). В принципе, весь этот код можно по большей части просто игнорировать, но если ты хочешь узнать подробнее, в сети полно туториалов про внутреннее устройство SEH и про обработку исключений в C++. А вот дальше по 401015 там начинается уже какая-то настоящая работа, вызываются какие-то функции, на которые нужно смотреть, чтобы понять, что делает эта. Я бы на твоем месте выкинул objdump - он пригоден максимум для инспекции сгенерированного компилятором кода, и взял бы вместо него IDA, которая для людей или хотя бы r2, который не для людей.
Аноним 14/01/19 Пнд 22:44:29 #284 №1326837 
Сколько вы зарабатываете?
Аноним 14/01/19 Пнд 22:54:57 #285 №1326841 
>>1326837
Тысяч 50 в Москве и меньше в мухосрансках. Боги получают сотни кесов, впрочем как и везде.
sage[mailto:sage] Аноним 14/01/19 Пнд 22:56:27 #286 №1326842 
>>1326817
> еще и AT&T
Извините
>я был прав это SEH
Спасибо большое, почитаю
>ida pro
У тебя случайно слитой 7.2 версии нет от китайцев? Говорят там inheritance завезли.
sage[mailto:sage] Аноним 14/01/19 Пнд 23:39:11 #287 №1326862 
>>1326842
> Говорят там inheritance завезли.
Очень плохо завезли, мне не понравилось. Обычное крестовое наследование, которое struct foo : bar { ... } уже давно есть, но оно неудобное, поэтому подход с созданием трех struct (struct ClassName { ClassNameVtable ptr, ClassNameFields fields }) по-прежнему рулит.
Аноним 15/01/19 Втр 00:38:04 #288 №1326895 
>>1326717
Нет, никакой, нету, никак.
Аноним 16/01/19 Срд 05:22:54 #289 №1327611 
>>1301036 (OP)
https://mega.nz/#!Bc9VVAYC!Vk6CFlW6VIoskLNgDKXbsL6FacDQeOKe6LX92wNicKY
Я совсем криворукий ебанат или у всех файл скачивается но внутри он пустой ?
sage[mailto:sage] Аноним 16/01/19 Срд 05:35:43 #290 №1327614 
>>1327611
Тебе вьювер 404 показывает при попытке открыть?
1) Правой кнопкой, свойства, разблокировать, опционально положить в директорию с путем, не содержащим странных символов (мало ли, может ты китаец).
2) Или можешь взять какой-нибудь 7-Zip, и распаковать .chm-ку им.
3) Или можешь смотреть в SumatraPDF, а не в дефолтном вьювере.
Аноним 16/01/19 Срд 05:44:30 #291 №1327615 
>>1327614
Большое спасибо Sumatra помогла ♥
Аноним 16/01/19 Срд 15:17:04 #292 №1327869 
>>1327611
его кстати вирустотал ругает говорит бэкдор
Аноним 16/01/19 Срд 17:06:47 #293 №1327980 
>>1327869
ты что совсем еблан ? :D
Аноним 16/01/19 Срд 18:34:13 #294 №1328065 
>>1326841
Ну я так и знал, что у вашего брата зп хуйня полная
sage[mailto:sage] Аноним 16/01/19 Срд 19:04:36 #295 №1328092 
>>1327869
Там еще примеры в комплекте. На какой-то из них и агрятся. Я же предлагал распаковать chm и посмотреть.
sage[mailto:sage] Аноним 16/01/19 Срд 23:53:35 #296 №1328283 
Есть RGB-мышь, сложно ли под нее будет написать ПО, чтоб самому управлять цветом/временем его переключения/зависимость от событий и т.д.
Аноним 17/01/19 Чтв 00:01:25 #297 №1328289 
>>1328283
Снифаешь USB чем угодно (например, USBlyzer или даже просто wireshark), берешь libusb, пишешь. Если окажется, что винда не дает работать с HID из юзермода, пишешь драйвер или реверсишь драйвер производителя железа.
sage[mailto:sage] Аноним 17/01/19 Чтв 00:02:41 #298 №1328290 
>>1328289
Спасибо за быстрый ответ и наводку.
Аноним 17/01/19 Чтв 10:58:50 #299 №1328415 
Когда вы уже все сдохнете со своим старьем?
Аноним 17/01/19 Чтв 11:30:19 #300 №1328422 
>>1328415
> Когда вы уже все сдохнете со своим старьем?

Никогда.

А вот что абстрактушки будут делать в ближайшие пару лет (а у них на носу полный конец развитию кремния по муру и заканчиваются техпроцессы, напомню) - вот это действительно вопрос.
Аноним 17/01/19 Чтв 11:34:48 #301 №1328424 
>>1328422

Будем развивать компиляторы, добавлять в них ИИ на нейросеточках и машинном обучении и в оконцове победим байтоёбство оптимизаторным оптимизатором, который сможет лучше любого байтоеба код оптимизировать.

А вот вы скоро станете не нужны. Как только наш умный компилятор сможет скомпилить микросервис на Rustе в восьминогую Attiny на 4кб.
Аноним 17/01/19 Чтв 11:38:46 #302 №1328427 
>>1328422
Что тебя заставляет байтоёбить?
Разве может адекватный человек такой хуйней заниматься?
Аноним 17/01/19 Чтв 14:34:12 #303 №1328536 
>>1328427
Адекватный чему?

>>1328424
Мечта любого русского - ковер-самолет и скатерть-самобранка.
Аноним 17/01/19 Чтв 23:01:48 #304 №1328945 
images.jpeg
Как люди находят находят уязвимости на Pwn2Own? какие скилы нужны для этого? щас дохуя технологий, думаю нет смысла учить все подряд, а нужно сфокусироваться на чем-то одном. Как думаешь анон?
Аноним 18/01/19 Птн 00:08:19 #305 №1328994 
>>1328945
Правильное питание, спорт, здоровый сон и регулярный секс это все что нужно.
Аноним 18/01/19 Птн 00:35:35 #306 №1329018 
>>1328536
Зарепортил подпиндосного русофоба и нацпредателя.
Жди гостей.
Аноним 18/01/19 Птн 01:00:06 #307 №1329035 
>>1328994
а дальше?
Аноним 18/01/19 Птн 01:26:03 #308 №1329042 
>>1329035
А дальше в монастырь.
sage[mailto:sage] Аноним 18/01/19 Птн 04:44:37 #309 №1329091 
thread.c:1019: internal-error: void finish_thread_state(ptid_t): Assertion `tp' failed.
@
A problem internal to GDB has been detected,
@
further debugging may prove unreliable.
@
Quit this debugging session? (y or n)

Сука! Как же я ненавижу ваш прыщеблядский gdb!
Аноним 18/01/19 Птн 08:34:53 #310 №1329123 
>>1329091
Попробуй edb/r2
Аноним 18/01/19 Птн 11:09:05 #311 №1329172 
>>1301036 (OP)
Но ведь, если я тру зондофоб мне же энивей придется создавать свой ЯП с нуля. Откуда я знаю что в ваших FASM.EXE не вшит руткит от васяна? И вы тоже этого знать не можете. А иначе ваш асм нахер не нужен. Поэтому в чём полезность? Набраться опыта перед написанием своего продукта?
Аноним 18/01/19 Птн 11:17:18 #312 №1329175 
>>1328415
Нет, ты
Аноним 18/01/19 Птн 13:29:07 #313 №1329276 
>>1329172
Исходники полностью открыты. Берешь тот же самый фасм и собираешь из исходников. Я проверял.
Ну, конечно на этапе сборки можно что угодно добавить и без исходников. Да и тысячи строк на ассемблере не перечитать.
Но минимальное приложение генерится байт в байт.
Главное верить.
sage[mailto:sage] Аноним 18/01/19 Птн 21:17:47 #314 №1329622 
>>1329172
> И вы тоже этого знать не можете.
fasm достаточно небольшой, а взаимодействия с системой там настолько мало, что можно взять дизасм и поискать руткит от васяна самостоятельно.
Аноним 18/01/19 Птн 21:51:39 #315 №1329642 
Прочитал Reverse Engineering для начинающих из шапки. Есть книги посвежее? 2015-2018 год, желательно для x64 архитектуры?
Аноним 18/01/19 Птн 22:23:06 #316 №1329665 
>>1329642
В этой области ничего не меняется десятилетиями, ничего принципиально нового ты в свежей книжке не найдешь. Если тебе нужен x86-64 ассемблер, так и ищи книгу по ассемблеру, их дохуя. Если интересно про реверсинг, почитай SAT/SMT by example от того же юричева, что-нибудь про скриптинг ida (и про ее микрокод), про инструментирование, про всевозможные frida и прочие unicorn. Все гуглится по кейвордам, но в основном это не книжки, а выступления, слайды и статьи.
Аноним 18/01/19 Птн 22:36:28 #317 №1329676 
Никогда не писал на ассемблере, на Си и плюсах тоже. В общем не знаю ни про регистры, ни чего такого низкоуровневого. Столкнулся с протоколом MODBUS. Ничего не понимаю. Книг и статей на эту тему почти нет. Посоветуйте что делать, что читать, как практиковаться?

Цель понять разницу между микроконтроллером, промышленным контроллером, микропроцессором, ПЛИС, ПЛК, IOT, СБИС, короче вот это вот все. Понять как их программируют. И понять как программировать управление устройствами по MODBUS.
Аноним 18/01/19 Птн 23:21:56 #318 №1329728 
>>1329622
>Использовать один руткит чтобы прочекать смежный
Понел, ребят ))
sage[mailto:sage] Аноним 18/01/19 Птн 23:37:29 #319 №1329745 
>>1329728
Все врут! А еще в процессоре бэкдоры. Используй таблички в мануале от интела и декодируй инструкции вручную. В бумажке с ручкой бэкдоров пока вроде не находили?
Аноним 19/01/19 Суб 01:23:03 #320 №1329807 
>>1329745
Intel ME норм бэкдор, не спрячешся.
Аноним 19/01/19 Суб 01:58:37 #321 №1329816 
>>1329676
>микроконтроллером
Маленький процессор со своим ПЗУ.
>промышленным контроллером
Здоровая дура, рулящая технологической линией. Программируется на визуально понятном васяну-слесарю языке, а не на С.
>микропроцессором
Строгое определение не дам, в большинстве случаев взаимозаменяемо с "микроконтроллер
>ПЛИС
Программируемая логическая интегральная схема. СБИС, стуктуру которой можно изменить доступным оборудованием. Не лезь пока сюда.
>ПЛК
То же, что и промышленный (логический) контроллер
>IOT
Маркетинговый термин, обозначающий чайники с подключением к интернету. Забудь его нахуй.
>СБИС
Сверхбольшая интегральная схема. Вся современная электроника кроме ПЛИС является СБИС, хотя понятие "сверхбольшая" устарело, т.к. термин введён при царе горохе.

https://radiokot.ru/start/mcu_fpga/avr/ - это ответит на некоторые вопросы.
Если есть время и деньги, купи ардуино и ковыряйся с ним по урокам с ютуба.
В любом случае, микроконтроллерами занимаются в /ra. Спроси там, они тебе укажут путь.
Аноним 19/01/19 Суб 02:23:06 #322 №1329821 
>>1329816
Большое спасибо.
Аноним 19/01/19 Суб 02:31:50 #323 №1329824 
>>1329816
> Маленький процессор со своим ПЗУ.
Главное в нем не пзу, а наличие готовых интерфейсов для ввода-вывода, обычно разнообразных. Чтобы было чем микроконтроллировать.

> хотя понятие "сверхбольшая" устарело
Хуй знает, я периодически встречаю в литературе, но только как VLSI - русскоязычные термины умерли вместе с советским союзом.
Аноним 19/01/19 Суб 02:33:48 #324 №1329825 
>>1329824
>Главное в нем не пзу, а наличие готовых интерфейсов для ввода-вывода, обычно разнообразных. Чтобы было чем микроконтроллировать.
Ну в ЦПУ на домашних пеках тоже есть готовые интерфейсы зачастую. Может ты и прав, но в таком случае грань между микроконтроллером и (микро)процессором нечёткая.

>Хуй знает, я периодически встречаю в литературе, но только как VLSI - русскоязычные термины умерли вместе с советским союзом.
Да, но с тех пор эта "большевизна" выросла в сотни раз. Термин используют, но смысл его несколько утрачен.
Аноним 19/01/19 Суб 02:38:21 #325 №1329828 
>>1329825
> Ну в ЦПУ на домашних пеках тоже есть готовые интерфейсы зачастую
Ну как бы да, грань стирается, а десктопные CPU все больше превращаются в SoC.
Аноним 19/01/19 Суб 07:25:39 #326 №1329894 
>>1301036 (OP)
G
Аноним 25/01/19 Птн 00:55:56 #327 №1334386 
Есть один экзешник, созданный в Delphi 7 и созданный на-отъебись. Из него можно извлечь какие-то метаданные, связанные с создателем? Имя учётной записи, под который была запущена среда разработки, названия объектных файлов etc.
Просто исходники проебались двенадцать лет назад, однао я предполагаю, что они могут быть на одной из подчинённых мне машин.
sage[mailto:sage] Аноним 25/01/19 Птн 01:04:08 #328 №1334387 
>>1334386
Кидай сюда, посмотрим. Или сам посмотри банальным hex-редактором или strings (от руссиновича или линуксовым). Но максимум, что ты сможешь получить - путь к проекту и, возможно, названия некоторых юнитов.
Аноним 25/01/19 Птн 20:49:30 #329 №1334769 
>>1334387
Есть IDA. Вбрасывать сюда пока немножко ссу. Корпоративная хрень, сам понимаешь.
Аноним 25/01/19 Птн 21:23:20 #330 №1334794 
>>1329745
В табличках пробелы, а в пробелах тоже зонды!
sage[mailto:sage] Аноним 25/01/19 Птн 21:48:08 #331 №1334815 
>>1334769
IDA славится своей способностью хуево детектить паскалевые строки. Смотри в strings. Боишься консольки - запусти и посмотри в Process Explorer, там в свойствах процесса есть соответствующая вкладка.
Аноним 26/01/19 Суб 14:28:30 #332 №1335200 
>>1334815
Тут лучшим вариантом будет iDR, а не IDA
Что ж творится-то с этими числами с плавающей запятой!? Аноним 28/01/19 Пнд 12:59:43 #333 №1336604 
image.png
image.png
Почему из порядка E в 32-битном числе с плавающей запятой отнимается 127, я понимаю. Но как оказалось, это происходит только в нормализованных числах. Разобрался в том, что такое нормализованное и денормализованное число, все понял, за исключением одного момента: КАКОГО ХРЕНА В ДЕНОРМАЛИЗОВАННЫХ ОТ ПОРЯДКА ВЫЧИТАЕТСЯ 126!?
Аноним 28/01/19 Пнд 13:17:08 #334 №1336611 
image.png
>>1336604
Я еще немного подумал над этим. Кажется, я нашел в этом смысл. Видимо, это происходит потому, что минимальная экспонента в нормализованном числе с плавающей запятой одинарной точности равна 2-126. Денормализованные числа, как я понял, заполняют разрыв между нулем и минимальным значением нормализованного числа.
Минимальное нормализованное число — 1.0 × 2-126.
Максимально денормализованное число — 0.11...11 × 2-126.
То есть, эти два значения находятся почти впритык друг к другу, что было бы невозможно, если бы экспонента в денормализованном числе была равна 2-127.

Сам спросил — сам ответил, мдауш.
Аноним 28/01/19 Пнд 14:06:09 #335 №1336650 
>>1329676
>Цель понять разницу между
> микроконтроллером

Микросхема

см. микропроцессор+встроенная оператива+встроенная флеш-память+ конфигурируемые ноги+различные аппаратные функции для этих ног, начиная от шима и заканчивая разными портами вроде SPI и USB.

> , промышленным контроллером, , ПЛК

Готовое устройство в большом корпусе на DIN рейку, сделанное из микроконтроллера, защищенной обвязке его ног и предназначенное для установки в шкаф.

Суть ПЛК в том что его можно программировать лишь на 5 упоротых язхыках (3 из них визуальные программировать мышкой, один - абсткрактный ассемблер и ещё один - паскалеподобный). Если коробку нельзя программировать на этих 5 языках и/или она не имеет соответсвующей сертификации - это не ПЛК.

> микропроцессором,

Микросхема, реализующая вычислительное устройство.

> ПЛИС

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

, IOT

Баззворд, internet of things. Суть в том что если запихнуть в каждый утюг и вибратор вайфай или другую радиопередающую хуету которая будет соединять с интернетом то наступить всеобщее счастье.

, СБИС

сверхбольшая интегральная схема. Английский аналог - VLSI. В принципе любой чип который ты можешь найти на материнской плате - СБИС.

, короче вот это вот все. Понять как их программируют.

Судя по твоим вопросма - тебе в АСУ тред в /wrk/

И понять как программировать управление устройствами по MODBUS.

Тебе точно в /wrk/
Аноним 30/01/19 Срд 10:41:55 #336 №1337774 
Помню был сайт, где обучение ассемблеру сделано в виде игры. Еще вроде создатели игры запилили курс на Coursera. Помогите найти.
Аноним 30/01/19 Срд 12:07:10 #337 №1337801 
>>1337774
Сайта не подскажу, зато рекомендую поигорять в Human Resource Machine
Аноним 30/01/19 Срд 22:01:39 #338 №1338241 
>>1337801
>Human Resource Machine
Это чё хоть такое то?
Аноним 31/01/19 Чтв 22:32:04 #339 №1338878 
upgrd.jpeg
Есть какая-то строка на ассемблере, которая "ломает комп"? Как деление на 0 в Си, например
sage[mailto:sage] Аноним 01/02/19 Птн 00:19:37 #340 №1338989 
>>1338878
> ломает комп
Что?
> Как деление на 0 в Си, например
ud2
Аноним 01/02/19 Птн 01:39:45 #341 №1339013 
Здравствуйте, пилюкаю на плюсах, потихоньку ковыраю asm, возник вопрос, вот есть функция, которая возвращает какую-то структурку
как пример:

struct S1{
float x;
float y;
};

extern "C" S1 getval()

Вопрос, а как эта структура возвращается программе?
если б било бы какое-то простое значение, то для x86 оно либо через EAX, либо чрез ST(0) будет получено. На стеке хз как передать, ибо по окончанию процедуры он будет восстановлен.
Как оно вообще все работает?

Вот накидал на godbolt:

https://godbolt.org/z/VosXLv

dвыглядит будто от уехавшей вершины стека отсчитывает и оттуда значение берет, или я что-то не правильно понял.
sage[mailto:sage] Аноним 01/02/19 Птн 02:00:50 #342 №1339018 
>>1339013
> Как оно вообще все работает?
Если оно влезает в EDX:EAX, то возвращается в них (именно это у тебя и происходит, а остальное - преобразования каждого члена из набора 32 бит в float). Вот такое:
S1 getval(void) { return (S1) { 1.0, 2.0 }; }
int main(void) { S1 res = getval(); }

превращается примерно в такое:

<EDX:EAX> getval(void) {
temp = (S1) { 1.0, 2.0 };
<EAX> = ∗(uint32_t ∗) &temp.x;
<EDX> = ∗(uint32_t ∗) &temp.y;
}

int main(void) {
S1 res;
<EDX:EAX> = getval();
uint32_t temp1 = <EAX>, temp2 = <EDX>;
res.x = ∗(float ∗) &temp1;
res.y = ∗(float ∗) &temp2;
}

Иначе, если оно в EDX:EAX не влезет (например, добавь float z в S1) вызывающая функция неявно первым параметром кладет в стек указатель на структуру, куда вызываемая функция должна записать результат. Вызываемая функция пишет результат и возвращает этот же указатель в eax. Т.е., вот это:
S1 getval(void) { return (S1) { 1.0, 2.0, 3.0 }; }
int main(void) { S1 res = getval(); }

практически равнозначно вот такому:

S1 ∗getval(S1 ∗res) { ∗res = (S1) { 1.0, 2.0, 3.0 }; return res; }
int main(void) { S1 res, temp; memcpy(res, getval(&temp), sizeof(temp); }

И еще там есть различные ограничения, когда вроде бы в EDX:EAX результат влезает, но возвращают его все равно вторым способом.
Аноним 01/02/19 Птн 02:10:09 #343 №1339020 
>>1339018
но я не вижу EAX:EDX в asm листинге, что мне выдает godbolt.org

sub esp, 8
call F1 getval(void) ; getval
mov DWORD PTR $T1[esp+12], edx

и дальше там уже для принта.
sage[mailto:sage] Аноним 01/02/19 Птн 02:15:55 #344 №1339021 
>>1339020
Пятая и девятая строки по твоей ссылке. Но да, оно одновременно делает для printf даблы из флоатов. Т.е., положили регистр в стек, взяли movss в SSE-регистр, сконвертировали cvtps2pd в дабл и положили movsd в стек дабл.
Аноним 01/02/19 Птн 02:24:40 #345 №1339022 
>>1339018
я просто читал немного про call-convention, и не до конца нашел инфу, как именно написать совместимую с с++ кодом асм функцию и возвращать такие жирные объекты. Оно понятно, что для жирного объекта надо работать с указателем. >>1339021


вот добавил z, и получил:

sub esp, 24 ; 00000018H
lea eax, DWORD PTR $T1[esp+24]
push eax
call _getval

т.е отъели от стека памяти под структуру, скормили через lea адрес, в который будет записывать функция, так?
т.е функция на самом деле будет уже иметь один входной параметр, который будет у нее ожидать компилятор?

З.Ы. благодарствую за ответы.
sage[mailto:sage] Аноним 01/02/19 Птн 02:40:13 #346 №1339027 
>>1339022
> т.е функция на самом деле будет уже иметь один входной параметр, который будет у нее ожидать компилятор?
Да, неявный параметр, который всегда на стеке (даже если __fastcall) и всегда первый: если бы было S1 getval(int foo, int bar), фактически компилятор генерил был код для S1∗ getval(S1 ∗result, int foo, int bar).

> т.е отъели от стека памяти под структуру
Да. Причем заметь, что оно даже с оптимизациями делает отдельную временную переменную для возвращаемого значения, и потом уже копирует туда, куда ты присваиваешь результат функции, при этом читает оно не из временной структуры, адрес которой компилятору вроде бы известен заранее, а именно по возвращенному в EAX указателю (псевдокод выше кидал).

Зачем нужно копирование, я не знаю, но так было еще в VC++98. Хотя если пофантазировать, при таком подходе у функции есть возможность послать нахуй эту временную структуру (и аргумент с указателем на нее) и возвращать, например, адрес какой-то глобальной константной структуры.
Аноним 01/02/19 Птн 02:43:11 #347 №1339029 
>>1339027
спасибо тебе, добрый человек.
Аноним 01/02/19 Птн 03:26:07 #348 №1339034 DELETED
Аноны, извиняюсь не по теме, подскажите как можно посмотреть все комменты в Вк? Спасибо
Аноним 01/02/19 Птн 03:26:26 #349 №1339035 DELETED
>>1339034
левого челика
Аноним 01/02/19 Птн 14:26:27 #350 №1339273 
>>1338241
Игорь, обучающая ассемблеру https://gog.com/game/human_resource_machine
>>1339018
> <EDX:EAX>
Это какой-то синтаксис, или ты для удобства так сделал? Выглядит забавно
>>1339034
Пошёл нахуй
Аноним 01/02/19 Птн 15:08:49 #351 №1339291 
Возможно ли на IDA к хуям выдрать авторизацию программы, чтобы она сразу запускалась без всяких анальных верификаций?
Аноним 01/02/19 Птн 15:17:50 #352 №1339297 
>>1339291
Да, возможно
Аноним 01/02/19 Птн 15:19:52 #353 №1339298 
>>1339297
Вот прям точно-точно?
Аноним 01/02/19 Птн 16:36:30 #354 №1339366 
>>1339298
Можно и без IDA сделать.
Аноним 01/02/19 Птн 16:46:56 #355 №1339370 
Как посмотреть при дебаггере в IDA какая инструкция выполняется прямо сейчас, по нажатию мыши например.
Я нажимаю например добавить поле, ввожу название для него и тд. Должно же состояние меняться по идее, а в дебаггере такого не происходит. Я думаю надо плагин установить.
Аноним 01/02/19 Птн 16:53:47 #356 №1339374 
>>1339370
>какая инструкция выполняется прямо сейчас
Которая в кернеле контекст переключает.
Аноним 01/02/19 Птн 17:56:36 #357 №1339399 
>>1339366
Это мне уж точно не под силы.
sage[mailto:sage] Аноним 01/02/19 Птн 20:27:21 #358 №1339510 
>>1339273
> для удобства так сделал?
Да. У IDA/HexRays для регистров в прототипах используется нечто похожее, а двоеточие - это обычный способ указывать пару регистров (в том числе, и в манаулах интела).

>>1339370
По нажатию мыши выполняется миллион инструкций, и хорошо еще, если один. Тебе стоит прочитать что-нибудь про оконные сообщения в винде.
Аноним 01/02/19 Птн 21:51:10 #359 №1339637 
>>1339370
Начни с изучения своей операционной системы.
Аноним 03/02/19 Вск 21:52:33 #360 №1341127 
сложнее ли асм в изучении более высокоуровневых языков программирования?
Аноним 03/02/19 Вск 22:24:34 #361 №1341144 
>>1341127
Сам по себе асм гораздо проще. Но если писать что-то сложное или быстрое, всплывает куча нюансов, требующих глубокого понимания работы процессора и памяти, как минимум.
Аноним 06/02/19 Срд 00:31:04 #362 №1342567 
https://www.youtube.com/watch?v=rX7lIfQlqOo
Реверсачеры, смотрите какие у нас няшные коллеги существуют!
Хотели бы себе такого сеньора в команду?
sage[mailto:sage] Аноним 06/02/19 Срд 09:25:54 #363 №1342687 
>>1342567
У вас жён нет?
sage[mailto:sage] Аноним 06/02/19 Срд 13:46:57 #364 №1342812 
>>1342687
Наши жены фронтендеры ряжены
Аноним 07/02/19 Чтв 21:38:33 #365 №1343634 
>>1342812
Я сам фронтендер...
Аноним 07/02/19 Чтв 21:40:43 #366 №1343635 
>>1342812
Наши жёны в двадэ изображЁны
Вот где наши жёны!
Аноним 07/02/19 Чтв 21:48:23 #367 №1343640 
15382467304370.jpg
>>1343635
Привет!
Аноним 07/02/19 Чтв 22:40:02 #368 №1343672 
download20190206163038.png
>>1343640
Аноним 08/02/19 Птн 23:08:22 #369 №1344305 
Реверсачеры, можете пояснить за гипервизоры простым языком? Нагуглил только сложную инфу на ангельском, не могу пока осилить технически. С меня как всегда.
Аноним 09/02/19 Суб 02:28:31 #370 №1344362 
>>1344305
>простым языком
Нахуй не нужны.
Аноним 09/02/19 Суб 09:14:39 #371 №1344383 
>>1344305
Если не умеешь гуглить, то еще не дорос до такого.

https://www.sim-networks.com/wiki/about-virtualization-technology
https://www.ibm.com/developerworks/ru/library/cl-hypervisorcompare-xen/index.html
Аноним 09/02/19 Суб 21:25:01 #372 №1344782 
>>1344362
Нужны. Ведь это самый верх безопасности, эмуляторы должны выстрелить! Скриньте
sage[mailto:sage] Аноним 09/02/19 Суб 22:15:05 #373 №1344820 
>>1344362
На каждой первой VPS.
Аноним 10/02/19 Вск 02:16:14 #374 №1344914 
Реверсач, либо я тупой либо я не знаю что.
Есть 25 значений по адресу adress + offset, каждое из них занимает по 1 байту. Мне нужно выдернуть 11 значение из этого списка и изменить его. Делаю так:
uint8_t* adress + offset |= 1 << 0xb;

И это не работает. Где ошибка?
Аноним 10/02/19 Вск 07:50:44 #375 №1344933 
>>1344782
>эмуляторы
Какие еще эмуляторы. Гипервизоры это другое. И у них другое назначение.
Аноним 10/02/19 Вск 13:02:13 #376 №1345013 
>>1344914
Ну посмотри какое значение указателя у тебя получается. Ты не 11й берёшь, а 2^11й. Не выпендривайся и напиши адрес + офсет + 11
Аноним 10/02/19 Вск 13:25:30 #377 №1345016 
image.png
>>1345013
Вот пикрил. Как мне записать в какую-то одну ячейку если они все по одному адресу?
Аноним 10/02/19 Вск 14:00:38 #378 №1345039 
>>1345016
В приведённом коде ты меняешь указатель, а не значение.
Int value = (address+offset+11)
value |= 1<<n
(Address+offset+11) = value
Так делай
Аноним 10/02/19 Вск 14:01:38 #379 №1345041 
>>1345039
Макака съела звёздочки
В первой и третьей строке перед скобкой звёздочка
Аноним 10/02/19 Вск 14:07:38 #380 №1345049 
>>1345016
Да это же флаги, тебе с битами работать надо.
Аноним 12/02/19 Втр 04:41:01 #381 №1346146 
Реверсач, какие есть тулзы/гитхабы для дампа из режима ядра? Нужно сдампить один процесс, но он накрыт йоба-протекторами и его драйвер защищает.
Аноним 13/02/19 Срд 13:55:40 #382 №1346819 
.png
Сука, никак не могу взломать эту ебанную парашу, и отвязать авторизацию при входе
Аноним 14/02/19 Чтв 05:10:24 #383 №1347242 
>>1346819
Жаловаться пришел?

Кидай сюда, поможем
Аноним 14/02/19 Чтв 16:40:20 #384 №1347539 
Сап реверсач. Есть ли отладчики с возможностью писать комментарии к строкам кода, дампу памяти и прочему? Чтобы можно было просто щелкнуть на определенный фрагмент стека и в поле рядом написать "здесь хранится пароль", просто ситуация когда в одну функцию вложили функций 7, то постоянная сверка этих ebp+78, ebp+160 выносит мой мозг.
Аноним 14/02/19 Чтв 19:55:09 #385 №1347616 
>>1347539
Ты не поверишь, но даже OllyDbg даже без плагинов это умеет.
sage[mailto:sage] Аноним 14/02/19 Чтв 22:28:34 #386 №1347735 
>>1347539
IDA позволяет нормально обозвать локальные переменные, смотреть содержимое наведением мыши, в том числе для указателей и т. д., но зато ее отладчик неудобен в остальных моментах.

>>1347616
> OllyDbg даже без плагинов это умеет
Там можно только к коду комментарии писать. Или ты обладатель тайного знания о том, как переименовать LOCAL.1 во что-то более внятное или знаешь как заставить OllyDbg распознать локальную переменную, когда он сам не осилил? Без плагинов.
Аноним 14/02/19 Чтв 22:55:56 #387 №1347751 
>>1347735
Я к этому
>Есть ли отладчики с возможностью писать комментарии к строкам кода, дампу памяти и прочему?
Аноним 15/02/19 Птн 00:12:59 #388 №1347776 
>>1347539
IDA Pro же. Не отладчик, но умеет вызывать другие, как я понимаю.
Аноним 15/02/19 Птн 00:15:33 #389 №1347779 
>>1306485
СИ
И
Аноним 15/02/19 Птн 03:22:01 #390 №1347827 
>>1347539
В иде так можно. Можно подключить дебагер, во время выполнения прокоментить и даже сохранить все это. Гугли мануалы.
Аноним 15/02/19 Птн 03:26:05 #391 №1347829 
>>1346146
Бамп, анончики! Нужно сдампить. Драйвер не дает это сделать, следовательно надо дампить тоже из ядра... Допустим напишу драйвер, как мне его загрузить-то? Патчгвард не даст же.
Аноним 15/02/19 Птн 03:33:48 #392 №1347830 
>>1347829
А ты уверен, что он позволит тебе сдампить?
Мне кажется нет.
Аноним 15/02/19 Птн 03:56:34 #393 №1347834 
>>1347830
Так из ядра он не может предотвратить дамп. Все что мне нужно это получить структуру процесса. Даже если он там что-то похукает, что уже сомнительно, я могу свой callback раньше зарегистрировать.
Аноним 15/02/19 Птн 04:09:46 #394 №1347835 
>>1347834
Могу посоветовать несколько тупо тупых вариантов.
1. Поставить WinXP в виртуалку и не париться на счет подписи драйверов.
2. Сделать BSoD при запущенном файле с фулл-дампом и смотреть в windbg
3. Найти таки generic unpacker под свой протектор.
4. Ознакомиться с https://vxlab.info/wasm/article.php-article=dumping.htm и подобными статьями, чтобы понять, что все не так однозначно, т.к. драйвер может с системой стартовать, раньше чем ты хукать соберешься.
5. Тупо сидеть и трасисровать в windbg syser жив? чем вообще сейчас в ринг0 дебажат?
6. Ну и как вариант - попытаться заинжектить свою длл
Аноним 15/02/19 Птн 06:07:47 #395 №1347862 
>>1347835
О, благодарю, статья очень годная. Почти все способы не подойдут.
Там процесс Denuvo накрыт + драйвер как говорил уже ранее.
Все таки без танцев с бубнами ничего не выйдет. Буду пробовать тогда писать драйвер дампить через mmcopyvirtualmemory и грузится в тестовом режиме с тестовой подписью, мб пройдет такое.
Аноним 19/02/19 Втр 12:33:04 #396 №1350851 
>>1347862
Нашел свежий проджект на гитхабе. Драйвер + обертка на сисярпе. Может пригодится кому.https://github.com/EquiFox/KsDumper
Аноним 20/02/19 Срд 07:41:48 #397 №1351189 
Кто знает пароль для инсталляции ida pro 7.2?
Аноним 21/02/19 Чтв 05:38:25 #398 №1351753 
Аноны, как в windbg просмотреть весь лист вызовов? Например я вызываю функцию CreateProcess в юзермоде и хочу просмотреть всю иерархию вызовов и в ядре тоже.
Аноним 21/02/19 Чтв 21:46:58 #399 №1352219 
>>1350851
Эх, а апекс из гифки на торрентах до сих пор нормальной нет.
Аноним 22/02/19 Птн 17:50:01 #400 №1352656 
>>1301036 (OP)
Как изменить вектор в таблице прерываний?
mov 0000:[0180h], ax почему-то не работает (TASM, если чё).
Аноним 22/02/19 Птн 18:32:16 #401 №1352689 
>>1352656
>mov 0000:[0180h], ax
mov ds/es (а то даже и ss), 0
mov ds:[0180h], ax
Аноним 22/02/19 Птн 18:33:05 #402 №1352691 
>>1352689
Ну и word ptr, если нужен.
Аноним 22/02/19 Птн 18:47:57 #403 №1352699 
>>1352689
>>1352691
>mov es, 0
>Illegal use of segment register
Аноним 22/02/19 Птн 18:52:15 #404 №1352704 
>>1352699
Ну епт, xor ax, ax/mov es,ax
Аноним 22/02/19 Птн 18:57:13 #405 №1352705 
>>1352704
Спасибо.
Аноним 23/02/19 Суб 00:58:14 #406 №1352848 
image.png
>>1301036 (OP)
Кто-нибудь знает, как в ARMовском ассемблере поместить программу по произвольному адресу в памяти? По умолчанию программа располагается начиная с адреса 0х00000008, а надо, что бы она располагалась, например, по адресу 0х20002000. Я пробывал использовать DCD 0x20002000, но это меняет только регистр-указатель, при этом программа остаётся по старому адресу. Хорошо работает команда SPACE 0x400, но если адрес слишком большой, то компиляция занимает ооооочень много времени. Подскажите, может быть сталкивались с этим?
Аноним 23/02/19 Суб 01:26:52 #407 №1352858 
>>1352848
Обычно это делается опцией линкера
Аноним 23/02/19 Суб 12:39:49 #408 №1352992 
>>1352219
Там дамп почти в 1гб выходит + денуво сверху, никто не будет ковыряться в этом скорее всего.
Аноним 23/02/19 Суб 13:10:02 #409 №1353014 
image.png
>>1352858
Я редактировал эти параметры, но это ничего не меняет.
Аноним 23/02/19 Суб 13:53:14 #410 №1353045 
>>1353014
Почему у тебя x/o пустой и r/o нулевой, хотя ты явно хочешь переместить именно код? Алсо, попробуй org задать в ассемблере, хуй знает. Это Keil?
Аноним 23/02/19 Суб 14:14:07 #411 №1353056 
>>1353045
>Это Keil?
Ага.

>Алсо, попробуй org задать в ассемблере
Unknown opcode ORG , expecting opcode or Macro. Судя по всему, его даже в системе команд нет.

>Почему у тебя x/o пустой и r/o нулевой
Это дефолтные значения, я менял и то, и то, потом менял только x/o, потом менял только r/o, но всё равно в отладчике команды как были по адресу 0x00000008 так и остались.
Аноним 23/02/19 Суб 15:55:32 #412 №1353190 
>>1353056
> Unknown opcode ORG , expecting opcode or Macro
Печально. Как же вы там живете с этим? Это ж ебнуться можно все по секциям раскладывать.

У тебя на пике есть use memory layout from target dialog. Пробовал? Ну или смотри скрипт линкера, хуй знает.
Аноним 23/02/19 Суб 15:58:46 #413 №1353196 
>>1353190
Вертани дерево?
Аноним 23/02/19 Суб 17:34:53 #414 №1353317 
>>1353190
>У тебя на пике есть use memory layout from target dialog. Пробовал?
ОФК пробывал. И остальные галочки тоже. Ничего не помогает.
Аноним 23/02/19 Суб 22:46:20 #415 №1353593 
>>1352992
Блин, видимо мне не поиграть в эту бесплатную игру.
Аноним 25/02/19 Пнд 11:27:21 #416 №1354658 
Допустим есть маленькая утилита (единственный exe файл на 14 мб), которая конектится раком через хуй к дискорду/инторнету и проверяет, совпадает ли ключ. С чего начать, если я совсем нуфажик, но могу в кодинг. На ней наверняка висят какие-то защиты, как вообще к ней поступиться?
Аноним 25/02/19 Пнд 13:18:45 #417 №1354727 
>>1354658
>маленькая утилита
>на 14 мб
Аноним 25/02/19 Пнд 13:31:05 #418 №1354744 
>>1354727
На фоне браузеров размером под гигабайт - вполне себе маленькая, лол.
Аноним 25/02/19 Пнд 15:53:30 #419 №1354854 
>>1354727
Я предполагаю, что в нем упаковано несколько файлов. Ну так с чего начать?
Аноним 25/02/19 Пнд 18:40:19 #420 №1354992 
А кроссплатформенный ASM бывает?
Аноним 25/02/19 Пнд 18:57:56 #421 №1355013 
>>1354992
LLVM IR, ну и всевозможный байткод виртуальных машин (JVM, CIL).
Аноним 25/02/19 Пнд 19:24:55 #422 №1355039 
>>1355013
А чего тогда Джава не работает со скоростью плюсов хотя бы?
Аноним 25/02/19 Пнд 21:08:57 #423 №1355107 
>>1354658
14 мб это дохуя, уверен она под протектором. Нихуя ты не сделаешь без знаний, забей. Можешь трафик понюхать, обычно это самое слабое место васянских утилит.
Аноним 25/02/19 Пнд 21:10:38 #424 №1355108 
>>1355039
Потому что это не асм, а асмоподобная интерпреиируемая прослойка
Аноним 25/02/19 Пнд 22:16:36 #425 №1355180 
>>1355039
Работает.
Аноним 25/02/19 Пнд 22:33:13 #426 №1355199 
>>1354658
Лучше взломай установочный пароль для IDA Pro 7.2

Вот тут китайцы что-то накидали
https://bbs.pediy.com/thread-248989.htm

прикол в том, что установщик уже есть, остался пароль только
Аноним 26/02/19 Втр 15:23:07 #427 №1355712 
>>1355199
Не, ну я знал что китайца малость ебанутые, но чтоб надеяться в installshield пароль в отладчике увидеть...
им бы аниме рисовать
Аноним 27/02/19 Срд 00:15:59 #428 №1356037 
>>1355199
Вот еще есть крякнутый 7.0
https://downloadly.ir/software/programming/hex-rays-ida-pro-1/
Аноним 27/02/19 Срд 01:23:28 #429 №1356067 
>>1355712
Он увидел там шифр
>>1356037
Крякнутый 7.0 у всех есть
Аноним 27/02/19 Срд 02:04:01 #430 №1356083 
>>1356037
Товарищ майор.. Как поживаете?
Аноним 27/02/19 Срд 18:30:00 #431 №1356325 
Тру системники тут? Есть фуллскрин приложение Opengl/directx. Возможно ли как-то поверх него разместить свое окно или просто делать отрисовку? Работаю в ядре.
Аноним 27/02/19 Срд 19:17:24 #432 №1356345 
>>1356325
Конечно, всякие фрапсы так и делают.
Аноним 27/02/19 Срд 19:48:10 #433 №1356365 
>>1356325
Хуки пиши да рисуй поверх.
Аноним 27/02/19 Срд 21:33:17 #434 №1356434 
>>1356345
Всякие фрапсы для взаимодействия внедряются в процесс. Меня это не устраивает.

>>1356365
Подробнее. Чего хукать то?

Аноним 28/02/19 Чтв 19:21:14 #435 №1356768 
>>1356434
>Подробнее. Чего хукать то?
А погуглить влом?
https://www.unknowncheats.me/forum/counterstrike-1-5-1-6-and-mods/97748-opengl-hook-cs-1-6-wallhack.html
https://forum.antichat.ru/threads/121917/
Аноним 28/02/19 Чтв 22:22:05 #436 №1356933 
kiberpank3214031324.jpg
Мир, братья. Чуваки, а где взять доп материал по Нарваху(ну, там программы, вот это всё)
Аноним 28/02/19 Чтв 23:51:32 #437 №1356988 
CyberColorsbyNightShade1919.jpg
>>1356933
А всё, братья, нашёл, спасибо. Может добавите в шапку?
http://ricardonarvaja.info/WEB/INTRODUCCION%20AL%20CRACKING%20CON%20OLLYDBG%20DESDE%20CERO/EN%20FORMATO%20DOC/
Аноним 28/02/19 Чтв 23:53:09 #438 №1356989 
>>1356434
За отрисовку отвечают WDDM драйвера, все туда сходится
У драйвера есть регистрируемые функции
Аноним 01/03/19 Птн 14:47:12 #439 №1357190 
>>1356768
Это не работает без внедрения в процесс.

>>1356989
Я могу просто через апи сказать рисуй мне вот тут йобу? Если так, то интересно. Если нет то придется перехватывать буфер.

Аноним 03/03/19 Вск 20:03:32 #440 №1358584 
Реверсач, почему у экзешника упакованного Темидой только 1 импорт? lstrcpy. Я знаю, что можно вызывать динамически винапи через GetProcAddress + GetModuleHandle, но тут только lstrcpy. Как это работает, может объяснить кто-нибудь?
Аноним 03/03/19 Вск 20:13:29 #441 №1358589 
Поясните за кернел драйвера. Я так понимаю, что они нужны чтобы читать и модифицировать память какого-то процесса. Но зачем нужен инжект, если драйвер сам по себе обязан иметь все права? Я короч запутался, помогите...
sage[mailto:sage] Аноним 03/03/19 Вск 20:41:11 #442 №1358605 
>>1358584
> Я знаю, что можно вызывать динамически винапи
TEB->PEB->PEB_LDR_DATA->InLoadOrderModuleList->kernel32.dll, ну и дальше можно парсить экспорты.
Аноним 04/03/19 Пнд 14:31:44 #443 №1358984 
Начал я тут обмазываться 8051 и у меня встал вопрос по поводу передачи данных через UART. Вот смотрите, предположим есть у нас 8051 с частотой 12МГц и делителем 12 подключенный через последовательный кабель к компу. Комп настроен на передачу данных со скоростью 9600 бод. Судя по расчетам вот тут: http://www.keil.com/c51/baudrate.asp самая близкая скорость, которую мы можем получить на микроконтроллере это 10 417 бод, что не соответствует нашим стандартным 9600, хотя во всех инструкциях к 8051 пишут, что для 9600 нужно ставить именно эту скорость. Так вот, как это работает, если скорость передачи и приема не совпадают?
Аноним 04/03/19 Пнд 15:21:09 #444 №1359000 
>>1358605
Осторожна, тут хакир!
Аноним 04/03/19 Пнд 15:21:47 #445 №1359001 
Пацаны у вас тут че хакирский тред??? Научите плиз хакирить
Аноним 04/03/19 Пнд 16:01:58 #446 №1359018 
>>1359001
Тащемта тут ничего сложно нет. Просто берешь и без задней мысли ксоришь дворды в уме.
Аноним 04/03/19 Пнд 16:23:42 #447 №1359026 
>>1358605
Ааааа, вот это уже похоже на правду, но все равно не совсем понял, хоть и писал недавно PE парсер.
Получаю PEB своего процесса А как его получить без вызова апи то?, смотрю в список загруженных модулей, там нахожу нужный, применяю парсер, нахожу адреса функций А что дальше? Как их вызывать-то? Или напрямую можно, так как модуль внутренний?.
Аноним 04/03/19 Пнд 16:29:07 #448 №1359031 
>>1359001
Значение знаешь?
Аноним 04/03/19 Пнд 16:34:03 #449 №1359034 
>>1359031
Неа, не знаю.
Аноним 04/03/19 Пнд 17:47:54 #450 №1359065 
>>1359026
> А как его получить без вызова апи то?
[fs:0x18]+0x30 в 32-битном коде и [gs:0x30]+0x60 в 64-битном.

> А что дальше? Как их вызывать-то?
Ну как можно вызывать фукнцию, если у тебя адрес есть? Просто вызываешь и все.
Аноним 04/03/19 Пнд 18:11:33 #451 №1359076 
>>1359065
>[fs:0x18]+0x30 в 32-битном коде и [gs:0x30]+0x60 в 64-битном.
Спасибо, погуглю. Не знал что так можно.

>Ну как можно вызывать фукнцию, если у тебя адрес есть? Просто вызываешь и все.
Да, тупанул. Парсер писал для удаленных модулей, а не для внутренних, там по-другому немного было.

Получается, что до всей внутренней информации я могу добраться вручную? Без вызовов апи, правильно?

А вот vmprotect в новых версиях используют системные вызовы, чтобы апи похукать нельзя было, но системные вызовы имеют разные коды на разных системах, не хардкодили же они все это дело? Тоже распарсить выходит можно или дизасемблер нужен?

Аноним 04/03/19 Пнд 18:26:19 #452 №1359086 
>>1359076
> не хардкодили же они все это дело
Хардкодили. Поэтому там по-хорошему должен быть фолбек, если оно не знает текущую винду.

> до всей внутренней информации я могу добраться вручную
Ну если оно лежит в юзермоде, и ты не боишься, что твой софт сломается в следующем билде десяточки из-за распидорашенных структур, то можно, да.
Аноним 04/03/19 Пнд 18:57:14 #453 №1359108 
image.png
>>1359086
Хотя если софт обновляется, то можно и похардкодить...
Да я про юзермод. Вроде обещали что не будут больше структуры херить.

Еще о системных вызовах. В ядре же я могу похукать функции все равно, правильно? А отследить, что функция была вызвана из юзермода можно?
Аноним 05/03/19 Втр 17:54:29 #454 №1359655 
Да бомбит блять! Почему windbg такой кривой?
dt nt!_eprocess <address> все показывает, хочу вытянуть из eprocess peb, пишу dt nt!_eprocess peb <address> И НИХУЯ! dt nt!_peb
<address> тоже нихуя. Зато когда рекурсией прохожусь dt nt!_eprocess <address> -r, то все показывает. Как правильно то делать? Делаю как в книжке написано windows internals и выводится только название структуры, но не ее поля.
Аноним 05/03/19 Втр 19:34:57 #455 №1359725 
>>1359655
>Почему windbg такой кривой?
Проблемы индейцев.
Аноним 05/03/19 Втр 20:03:19 #456 №1359754 
>>1359725
А чем ядро дебажить-то?
Аноним 06/03/19 Срд 20:36:54 #457 №1360336 
> 14/02/19
>Кидай сюда, поможем
Обхохочешься, когда узнаешь, что я хочу сделать.
Аноним 06/03/19 Срд 20:37:18 #458 №1360337 
1551722885533.gif
>>1360336
>>1347242
блять сука нахуй
Аноним 06/03/19 Срд 20:38:44 #459 №1360338 
>>1360336
Ширус?
Аноним 06/03/19 Срд 20:39:49 #460 №1360339 
>>1360338
Нет. Хочу отвязать авторизацию от чита, чтобы он работал без авторизации, авторизация мой главный враг, и я должен его уничтожить
Аноним 06/03/19 Срд 21:59:22 #461 №1360384 
image.png
image.png
Посоны, тут это
https://github.com/NationalSecurityAgency/ghidra
Аноним 06/03/19 Срд 23:11:38 #462 №1360461 
>>1360384
> MUCH better than other tools
Радар наконец умрет в мучениях?
Аноним 07/03/19 Чтв 05:07:42 #463 №1360522 
>>1360384
>www.nsa.gov
>download
Посоны... тут это... анальные зонды пихают.
Аноним 07/03/19 Чтв 05:18:52 #464 №1360523 
>>1360384
Так себе, да еще и на джабе. Идачка без плагинов и то лучше.
Аноним 07/03/19 Чтв 17:05:28 #465 №1360699 
>>1360384
>>1360461
>>1360522
>>1360523
У меня одного их сайт не открывается?
403
А на гитхабе ничего нет.
Аноним 07/03/19 Чтв 17:56:30 #466 №1360709 
>>1360699
У тебя просто страна неправильная. Смени на правильную, и все будет.
Аноним 08/03/19 Птн 15:00:13 #467 №1360973 
Кто умеет по фасту виндовые dll ревёрсить?
http://rgho.st/66crCxNyS
Будучи запущенной через rundll32 в фоне есть n-1 ядер и перестает есть когда открывается диспетчер задач. (для аналогичных прог остановка не прописана). Рядом лежали dll-ки для SSL, отсылал в сеть менее килобайта данных, по крайней мере на момент когда спалил.
В ресурсах рандомные джипеги и описания из видосов на ютубе (и ссылки). Выглядит как рандом чтобы наебнуть чексуммы.
Брат умрёт?
Аноним 08/03/19 Птн 21:43:01 #468 №1361161 
Реверсачеры. Что-то я запутался, помогайте. Есть хеллоуворлд, в нем функция складывающая два числа, как мне удаленно вызвать эту функцию с нужными параметрами и получить результат?
Аноним 08/03/19 Птн 22:31:54 #469 №1361184 
>>1361161
В смысле удаленно? Уточни.
Аноним 08/03/19 Птн 23:42:18 #470 №1361200 
Я тут недавно в глупую историю попал из за пароля, поставленного на hdd в биосе. Никто не знает, как там шифрование работает? Или может дадите ссылку почитать где это хорошо расписано именно с программными деталями?
Аноним 09/03/19 Суб 00:44:20 #471 №1361229 
>>1360973
Там какой-то пиздец, если честно. Нихуя не понятно +xmm
>>1361200
Тебе лучше в сторону mhdd копать. Есть варианты со стандартным паролем, а есть и без.
sage[mailto:sage] Аноним 09/03/19 Суб 01:54:26 #472 №1361248 
>>1361200
> Никто не знает, как там шифрование работает?
Гугли ATA security.

>>1360973
Оно тебе надо, очередной CPU-майнер реверсить? Удоли, да и хуй с ним.
Аноним 09/03/19 Суб 21:45:16 #473 №1361635 
>>1361184
Вызвать функцию с параметрами в чужом процессе и получить результат.
sage[mailto:sage] Аноним 09/03/19 Суб 22:01:08 #474 №1361646 
>>1361635
Read/WriteProcessMemory, CreateRemoteThread, оберточка, которая дергает функцию.
Аноним 10/03/19 Вск 03:44:31 #475 №1361791 
>>1361646
А без CreateRemoteThread можно обойтись?
Аноним 10/03/19 Вск 10:53:19 #476 №1361838 
изображение.png
изображение.png
Вкатываюсь в изучение FASM. В тех гайдах, по которым я учусь- написано, что скомпилированная программа должна запускаться под Шindows. Но она сука не запускается. Выдаёт мне эту ошибку. Он вроде как компилирует в DOS-овский формат .com
Но судя по тому что написано в гайде- он должен прекрасно запускаться

http://asmworld.ru/uchebnyj-kurs/001-neobxodimye-instrumenty/
> Все программы учебного курса вы сможете запустить под Windows. Конечно, реально они будут работать в эмуляторе DOS, в режиме виртуального процессора 8086. Но для учебных целей это вполне подойдёт.

Что я делаю не так?
Аноним 10/03/19 Вск 12:54:28 #477 №1361887 
>>1361838
После WinXP в составе винды нет NTvdm, только в dosbox запустится, либо под чистым досом.
Такие дела.
Аноним 10/03/19 Вск 15:35:20 #478 №1361976 
Пытался вкатиться, но в итоге никакие хеллоуворлды не работали, а перкидывать байты из одной ячейки памяти в другую надоело.
Аноним 10/03/19 Вск 16:22:01 #479 №1361994 
>>1361887
>После WinXP в составе винды нет NTvdm
Пиздишь. Его нет в 64 битных сборках, как хрюши, так и дейсяточки. В 32 битных всё на месте.
sage[mailto:sage] Аноним 10/03/19 Вск 18:48:07 #480 №1362092 
>>1361838
В дополнение к тому, что тебе уже написали, ты делаешь не так
> use32
Аноним 10/03/19 Вск 23:27:25 #481 №1362267 
>>1361646
Погуглил, на сколько я понял мне нужно либо хукать функцию либо инжектить шеллкод, если я хочу обойтись без CreateRemoteThread ?
Аноним 10/03/19 Вск 23:35:57 #482 №1362272 
>>1362267
Тебе в любом случае инжектить код, который либо что-то делает сразу, либо грузит длл, которая что-то делает. Можно, например, SetThreadContext сделать, можно традиционный SetWindowsHookEx, зависит все от того, что ты делаешь и зачем.
Аноним 11/03/19 Пнд 02:02:26 #483 №1362334 
asm.png
Сап, читаю Калашникова
Остановился на этой программе, не могу понять почему отладчики творят какую-то херню, хотя в обычном DOS выполнении строка выводится
Почему отладчик сразу прыгает на адрес смещения Lab_1?
Аноним 11/03/19 Пнд 02:21:47 #484 №1362338 
DkoF4PRL.png
>>1362334
Да это же противоотладка через конвеер.
Аноним 11/03/19 Пнд 03:31:21 #485 №1362350 
>>1362334
> не могу понять почему отладчики творят какую-то херню
Я хуй знаю, что именно имел в виду Калашников 9090h там явно не зря, но по-моему, он промахнулся. Независимо от того, как именно работает конкретный отладчик если это, конечно, не "внешний" отладчик какого-нибудь эмулятора, вроде отладчика DOSBox или Bochs: втыкает ли он int3 в первый байт строки (6), или взводит TF, или у него аппаратные точки останова я, кстати не помню, они в 16-битном режиме есть?, но что бы он ни делал, при попытке пошагового выполнения это должно вызвать исключение, чтобы отладчик получил управление. После выполнения первой же инструкции sp у тебя указывает на lab1, стек растет в обратную сторону, поэтому при передаче управления обработчику исключения (прерывания) процессор положит в стек cs:ip и flags, т.е., 6 байт минимум, и тем самым потрет инструкции из строк (6)-(7)-(8), плюс обработчик тоже что-нибудь свое в стек положит, эти данные потрут строку (5) и, возможно, еще немного PSP. Если отладчик втыкал int3, то он восстановит кусок инструкции в (6), или не восстановит, похуй - все равно при возврате из обработчика прерывания вместо кода будут байты адресов, т.е., мусор.
То же самое произойдет в том редком случае, когда после выполнения одной из первых трех инструкций тикнет таймер, или произойдет еще какое-нибудь аппаратное прерывание, поэтому это не антиотладка, а говно генератор псевдослучайных багов.
sage[mailto:sage] Аноним 11/03/19 Пнд 03:47:28 #486 №1362352 
>>1362334
>>1362350
Лол, а поведение без отладичка-то я и не описал. В общем, в 90h - это инструкция NOP, в строке 7 две эти инструкции кладутся в стек (т.е., SP=SP-2, word[SP] = 9090h), затирая тем самым инструкцию в строке (8), поэтому если каких-то внешних прерываний не будет, то вместо int 20h выполнится два nop, и потом управление уйдет в строку (10).
Аноним 13/03/19 Срд 08:37:34 #487 №1363296 
Подскажите, как в асме работать с COM-интерфесами?
sage[mailto:sage] Аноним 13/03/19 Срд 16:33:37 #488 №1363509 
>>1363296
Так же, как и не в асме. Что тебя интересует?
struct ISomethingVtbl
Method1 dd ?
Method2 dd ?
...
MethodN dd ?
ends

struct ISomething
vt dd ? ; указатель на ISomethingVtbl
ends
...
mov eax,указатель на ISomething ; например, от CoCreateInstance
push push push аргументы
push eax ; this
mov ecx,[eax+ISomething.vt] ; указатель на ISomethingVtbl
call [ecx+ISomethingVtbl.MethodN]
test eax,eax
js failed
Аноним 15/03/19 Птн 20:42:04 #489 №1364936 
image.png
Читал я о том, что в винде в х86 процессах через FS:[0] а в x64 d GS:[0] я попадаю прямиком на TEB текущего треда. Но вот беда, в дебаггере например х64dbg все значения сегментов всего 2 байта, у которых старшие 16 бит обычно 0, а младшие 16 одинаковые у некоторых сегментых регистров. Как же так, думаю я, пацаны же говорили нормально можно через сегментные регистры шарить, и тут мне говорят, что сейчас сегментные регистры вообще то селекторы в GDT/LDT в зависимости от третьего бита справа, а остальное - оффсет в количестве записей или в байтах? в (G/L)DT. И дальше я завис. А как мне пошарить то в этой LDT? К примеру, вот хочу я в дебаггере посмотреть чё там в TEB, смотрю на FS/GS вижу там 002B 101011 → GDT, 3 ring , и нихуя себе? Это я на ТЕВ данного процесса должен выйти через глобальную таблицу? Как мне из 002В попасть на ТЕВ? И почему несколько сегментных регистров имеют это значение? Я знаю, что они смысла не имеют как в 16 битных процессах, но всё же.
sage[mailto:sage] Аноним 16/03/19 Суб 00:50:01 #490 №1365067 
>>1364936
> А как мне пошарить то в этой LDT?
GetThreadSelectorEntry() даст тебе базу сегмента по его селектору (не работает в 64-битной винде). Алсо, в самом TEB лежит нормальный, линейный адрес TEB, поэтому в ольке можно в окне дампа перейти (Ctrl+G) по [fs:0x18] и [gs:0x30] и смотреть, а в x64dbg это будет fs:[0x18] и gs:[0x30] для 32- и 64-битного кода соответственно.

> почему несколько сегментных регистров имеют это значение
Потому что в x86-64 "сломали" сегментные регистры, и база из дескриптора больше не учитывается, но для fs/gs базой можно манипулировать через MSR (из ядра).
Аноним 16/03/19 Суб 05:12:51 #491 №1365211 
Чем профилировать asm? У кого-нибудь был удачный опыт использования Valgrind в Win64? Поделитесь плз.
Аноним 16/03/19 Суб 19:43:05 #492 №1365542 
Аноны, нужно вычислить к какому драйверу обращается приложение по хэндлу. Хукаю DeviceIoControl, получаю нужный хэндл. Что дальше с этим хэндлом можно сделать чтобы узнать как можно больше инфы о драйвере?
Аноним 16/03/19 Суб 20:26:07 #493 №1365560 
image.png
>>1365542
В процесс-хакере нашел object address. Это что? Ссылка на KEPROCESS структуру?
sage[mailto:sage] Аноним 16/03/19 Суб 21:33:31 #494 №1365602 
>>1365211
> Чем профилировать asm
vtune amplifier уровнем ниже, wpt/xperf уровнем выше.

Аноним 16/03/19 Суб 23:11:54 #495 №1365694 
>>1365542
Нашел кажись, анонасы. Вот может пригодится кому: NtQueryInformationFile msdn
Аноним 19/03/19 Втр 12:43:11 #496 №1367012 
http://asmworld.ru/uchebnyj-kurs/010-slozhenie-i-vychitanie-s-perenosom/
В этой статье написано про "слово"
> Запись word означает, что мы переопределяем размер переменной (она объявлена как DWORD) и обращаемся к младшему слову.
Собственно чё это значит?
Аноним 19/03/19 Втр 12:54:35 #497 №1367017 
>>1367012
Да.
Аноним 19/03/19 Втр 12:58:08 #498 №1367020 
>>1367012
Что не понятно? Что такое слово? Или разложение более крупной единицы на младшую/старшую часть?
Аноним 19/03/19 Втр 13:27:41 #499 №1367027 
>>1367020
И то и то не понятно
Аноним 19/03/19 Втр 16:10:09 #500 №1367080 
>>1367027
В начале было слово.
И слово было 2 байта.
Аноним 19/03/19 Втр 16:13:31 #501 №1367081 
>>1367027
Машинное слово - платформозависимая хрень, равна разрядности регистров процессора (покури хотя бы вики). В твоей статье используется 16 разрядный режим (см комментарии к коду), word - 16 бит/2 байта. Двойное слово - 32 байта.
Аноним 19/03/19 Втр 16:14:44 #502 №1367083 
FduIXvLz.png
>>1367081
>Двойное слово - 32 байта
Аноним 19/03/19 Втр 16:15:18 #503 №1367084 
>>1367083
Очепятался жи
Аноним 19/03/19 Втр 19:21:27 #504 №1367168 
Есть свежая годная литература по ядру, написанию драйверов, минифильтров и вот этого всего? Винда офк.
Аноним 19/03/19 Втр 21:01:29 #505 №1367219 
>>1358605
Надеюсь ты еще здесь. Пытаюсь тоже самое провернуть в ядре. Знаю что можно динамически получать адрес RtlInitUnicodeString + MmGetSystemRoutineAddress. Можно улучшить как-нибудь?
Аноним 20/03/19 Срд 01:34:28 #506 №1367341 
vx.png
Аноним 20/03/19 Срд 01:39:41 #507 №1367344 
vx2.jpg
Аноним 20/03/19 Срд 06:45:14 #508 №1367363 
>>1367341
>>1367344
Проиграл. Но мне тащемта чисто в исследовательских целях нужна эта информация, тарищ майор. Спортивный интерес так сказать. А потом в швитые шышыа понаеду к маломягким работать за котлету вечнозеленых.
Ну и у юзверей давно нет доступа к ядру, какие там руткиты.
Аноним 20/03/19 Срд 16:19:38 #509 №1367560 
>>1318205
Бля, какой же ты олдфаг, братишка.
Аноним 20/03/19 Срд 17:52:09 #510 №1367602 
asm.jpg
Антоны, подскажите диалект
Аноним 20/03/19 Срд 19:55:12 #511 №1367645 
>>1367602
На TMS320C6000 похоже.
Аноним 20/03/19 Срд 21:01:51 #512 №1367693 
>>1367602
PCMCAS500, кажется.
Аноним 20/03/19 Срд 23:50:04 #513 №1367848 
Как представить 5 байтов в ассемблере как 10 тетрад, аноны?
Как их хранить? Мне нужно сделать между ними хоr и я черт его знает как их разделить пополам.
Аноним 20/03/19 Срд 23:55:28 #514 №1367852 
>>1367848
xor / 2
Аноним 20/03/19 Срд 23:58:50 #515 №1367854 
Test
Аноним 20/03/19 Срд 23:59:17 #516 №1367855 
Bump
Аноним 21/03/19 Чтв 00:08:22 #517 №1367861 
>>1367852
Мне нужно байт разделить на две тетрады.
То бишь 10101010 нужно поделить на 1010 и 1010 и между ними сделать хоr, если я правильно задание понял.
(Дан массив из 5 байтов. Рассматривая его как массив из 10 тетрад, найти «исключающее или» всех 10 тетрад.)
Не к спеху на самом деле, сдача только через неделю, но задание странное. Я нипонил.
Аноним 21/03/19 Чтв 00:14:56 #518 №1367865 
10101010 and 00001111 = 00001010
10101010 and 11110000 = 10100000
...
PROFIT
Аноним 21/03/19 Чтв 00:17:36 #519 №1367868 
>>1367865
после этого:
00001010 нормально
10100000 shr 4 = 00001010
и A xor B
Аноним 21/03/19 Чтв 00:44:59 #520 №1367877 
>>1367868
Можно еще поксорить сначала все числа как есть, байтами: a0 ^ a1 ... ^ a4, а потом уже поксорить куски результата, как сделал ты.

ОП, АЛЛО? ГДЕ ПЕРЕКАТ? ТЫ ЖИВ ТАМ ВООБЩЕ?
Аноним 22/03/19 Птн 13:12:41 #521 №1368396 
>>1367868
>>1367865
Я тут поклацал, поклацал в турбоассемблере(такие дела, у нас изучают это).
И выводит вроде не то.
Help, please :3
Может я не то делаю, и нужно с байтами по другому.
https://ideone.com/bdBqe3
Аноним 22/03/19 Птн 13:19:52 #522 №1368399 
image.png
image.png
Должно выводить 26, а выводит 146.
Аноним 22/03/19 Птн 14:06:40 #523 №1368436 
>>1368396
>https://ideone.com/bdBqe3
24 строка. У тебя BX уехал в ебеня.
А в 25 вообще обнуляешь.
А в 28 берешь [BX+1]
Хуйня какая-то.
Аноним 22/03/19 Птн 14:20:48 #524 №1368444 
>>1368399
4 xor 7 xor 11 xor 6 (23=00010111, 0001 xor 0111=0110=6)xor 5 = 11
Аноним 22/03/19 Птн 21:57:43 #525 №1368623 
Аноны, есть у кого windows internals 6 edition part 2 на русском?
Аноним 24/03/19 Вск 05:53:04 #526 №1369177 
>>1367877
>ОП, АЛЛО? ГДЕ ПЕРЕКАТ? ТЫ ЖИВ ТАМ ВООБЩЕ?
Подожди сейчас сделаю. Если бы не ёбанная рекапча, давно бы сделал.
Аноним 24/03/19 Вск 06:08:40 #527 №1369181 
ПЕРЕКАТЪ>
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
<ПЕРЕКАТЪ
comments powered by Disqus

Отзывы и предложения