М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 24 апреля 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

В этом треде мы изучаем самый компактный и низкоуровневый /asm/ 25 ноя, 19:50 1301036 В конец треда | Веб

1 Кб, 250x20025 Кб, 799x82010 Кб, 718x2743 Кб, 643x337

В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (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 (М) если кому нужен тред, сами архивируйте, я в следующий добавлю.

Ответы01103035341428819727205952761129172298945265652848

2 25 ноя, 19:56 2 1301039

Вкатился.

Анончики, посоветуйте книгу по винде. Желательно что-нибудь новое + x64.

Ответы01195

21 Кб, 655x218
3 25 ноя, 20:10 3 1301045

ГДЕ FLOAT?
scanf, мать его

Ответы01059

sage 4 25 ноя, 20:28 4 1301059

>>1301045
В предыдущем треде. А табличка у тебя от printf, они отличаются.

Ответы01223

sage 5 25 ноя, 21:35 5 1301103

>>1301036 (OP)
> если кому нужен тред, сами архивируйте
https://arhivach.tk/thread/395971/

Ответы01195

# OP 6 26 ноя, 00:13 6 1301195

>>1301039
"Внутреннее устройство Windows" 7 издание. Ну или 6, или любое другое, там внутрянка не меняется. Или тебе что-то другое?
>>1301103
>У Архивача очередной раз отключили домен
А я то думал, что у меня не открывается.

Ответы01238

7 26 ноя, 01:07 7 1301223

>>1301059
> printf
Точно, перепутал

>>1301057
То есть, мне вручную надо преобразовать float в double? Как?

Ответы01224

sage 8 26 ноя, 01:13 8 1301224

>>1301223
fld dword[my_float] fstp qword[my_double]. Ну или сразу на стеке. Можно и вручную, но это битоебля на несколько десятков инструкций, плюс обработка всяких денормализованных чисел, бесконечностей и прочих NaN.

9 26 ноя, 02:36 9 1301238

>>1301195
Ахуеть, свежачок! Еще плотная 1к листов. Дико двачую.

Ответы01597

10 26 ноя, 13:45 10 1301350

Очередной раз ассемблер выебал мой мозг.
В Fasm, как я думал, выражение типа word[metka] возвращает значение размером в 2 байта, содержащееся в памяти по этому адресу; но metka без квадратных скобок вернет pointer. Но тогда почему при работе с FPU, если я хочу записать в память значение из вершины стека, я должен написать fstp word[metka], а не fstp metka? Ведь в первом случае, как мне казалось, я передаю как аргумент ЗНАЧЕНИЕ, содержащееся по адресу metka, и логичнее был бы второй вариант. Разъясните этот момент, плиз.

Ответы01383

sage 11 26 ноя, 15:01 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] сработает.

В очередной раз я зачем-то написал длинную и бессвязную простыню в ответ на простой вопрос.

sage 11 26 ноя, 15:01 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] сработает.

В очередной раз я зачем-то написал длинную и бессвязную простыню в ответ на простой вопрос.

Показать весь текст
Ответы0140204976

12 26 ноя, 15:29 12 1301402

>>1301383
> fstp word[metka]: скобки есть, инструкция что-то сделает со значением в памяти.
Но в том-то и дело: эта команда записывает в память значение из вершины стека fpu. То есть, эта команда использует адрес, но квадратные скобки говорят о том, что, как ты сам сказал, инструкция что-то сделает со значением в памяти.

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

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

> Поинтеры остались в Си. Значение метки - численное значение адреса.
Виноват, зря использовал слово, значение которого не знаю. Под поинтером я подразумевал как раз то самое численное значение адреса. Думал, это одно и то же.

Ответы01453

sage 13 26 ноя, 17:39 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-битный.

Ответы02210

14 26 ноя, 17:42 14 1301454

> fstp [var] ; Фасм сам "в уме" добавит qword к адресу.
Стек FPU 64-битный?

Ответы01458

sage 15 26 ноя, 17:49 15 1301458

>>1301454
Стек 80-битный, но var dq ?, поэтому он помнит, что где var, там qword.

# OP 16 26 ноя, 22:52 16 1301597

>>1301238
Рано радуешься, там вышел только первый том, второй ещё или не вышел, или не переведён. Впрочем можешь смело читать 6 издание, там много чего подходит, я как читавший всё со времён третьего говорю.

17 27 ноя, 22:00 17 1302210

>>1301453
Спасибо за длиннопосты, анончик

14 Кб, 397x419
18 29 ноя, 19:47 18 1303274

Господа асмоебы, вкатываюсь после большого перерыва. Поясните, в x64 теперь у нас новые регистры общего пользования, которым даже имена поленились придумать, а старые 64-битные теперь зовутся rax, rcx и так далее, да?

Ответы0330103303

sage 19 29 ноя, 20:55 19 1303301

>>1303274
Да. Буковки в именах регистров, пришедших из 32- 16-битного кода, означают accumulator, base, counter, data, source index, destination index, base pointer и stack pointer соответственно. Некоторые инструкции и режимы адресации требовали строго конкретных регистров, потом ограничения ослабили, а у 8 новых регистров, добавленных в x86-64, нет никаких исторических употреблений, нет имен, поэтому и буковки им не нужны. В других архитектурах, где регистры более-менее равноправны с рождения, циферки использовались для большинства регистров изначально.

Ответы03312

20 29 ноя, 20:56 20 1303303

>>1303274
А куда ah/bh дели?

Ответы03319

21 29 ноя, 21:35 21 1303312

>>1303301
Спасибо, я в курсе про accumulator и так далее, все-таки несколько лет занимался этим, но все равно спасибо. Но как же stosd и т.п. команды, им же esi,edi нужны по идее, равно как и циклы ecx.

Ответы0332503653

# OP 22 29 ноя, 21:40 22 1303319

>>1303303
В таблицу не влезли.

sage 23 29 ноя, 22:10 23 1303325

>>1303312
> Но как же stosd и т.п. команды, им же esi,edi нужны по идее
Ну так я сказал, что не отменили, а ослабили ограничения, т.е., значительно расширили эффективную адресацию, например.

24 30 ноя, 12:14 24 1303510

Хотел сохранить rsp куда-нибудь в xmm0 и получить на один регистр больше, но оно так не работает почему-то, ловлю рандомные сегфолты, а gdb говорит, что не может прочесть память, хотя там просто из одного регистра в другой данные перекладываются, даже нет обращений к памяти. Пиздец ограниченный регистр этот ваш rsp, нельзя им нормально пользоваться, даже если мне стек не нужен.

Ответы0351203530

25 30 ноя, 12:15 25 1303512

>>1303510
Ну и то, что какие-то регистры могут быть базой/оффсетами при чтении из памяти, а какие-то нет — тоже полный пиздец.
То есть для многих задач эффективное количество регистров оказывается намного меньше, чем 16.

26 30 ноя, 12:38 26 1303530

>>1303510
Стек не для этого, да. Нахера тебе в rsp класть? Клади в стек - это быстрее и короче.

Ответы0364805302

823 Кб, 1024x512
27 30 ноя, 12:41 27 1303534

>>1301036 (OP)
А есть в треде активные или бывшие демосценеры?
Как вы там, пишите 256б-4кб демки?

Ответы0381704958

28 30 ноя, 15:00 28 1303648

>>1303530
>Клади в стек - это быстрее и короче.

Стек - это значит в лучшем случае L1 кеш (в два раза медленнее регистров).

29 30 ноя, 15:04 29 1303653

>>1303312
>Но как же stosd и т.п. команды, им же esi,edi нужны по идее, равно как и циклы ecx.

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

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

Ответы03841

30 30 ноя, 18:41 30 1303817

>>1303534
Эти боги уже либо работают во всяких майкрософтах или владеют ими, что более вероятно, либо имеют многомиллионные ботнеты.

Ответы0381904967

31 30 ноя, 18:47 31 1303819

>>1303817
Или сосут хуи в нищите как я :(

Ответы03839

32 30 ноя, 19:43 32 1303839

>>1303819
Не хочу тебя огорчать, анончик, но выбор всегда только за тобой...

sage 33 30 ноя, 19:50 33 1303841

>>1303653
> так что в 2к18 этим наследием дремучих cisc-времен заморачиваться не стоит
Да что ты говоришь? А между тем, начиная вроде бы с Ivy Bridge, явный цикл снова сосет у rep stos/movs.

34 2 дек, 14:08 34 1304728

Аноны, я интересующийся/начинающий не суть. Поясните за отрицательные числа. Обычно в книгах так: берём число (7 младших бит онли), инвертим, старший (8-ой бит) ставим в единицу и готово.

Но т.к. профессору похуй, что ты там нахуевертил, каким образом пояснить ему, что это отрицательное число (например, это -5, а не 251). Возможно, это где-то дальше в книге есть, но пока что даже ремарки, что это обрабатывается программно, самим погроммистом, читайте дальше, в книге есть нет. От этого нет полноты картины.

Ответы047840482404837

35 2 дек, 15:13 35 1304784

>>1304728
Отрицательных чисел не существует
-1 и 129 это одно и то же

Ответы0478604787047980480004837

36 2 дек, 15:14 36 1304786

>>1304784
>-1 и 129
Ну или как там у вас байты крутятся
мимо вебмакак

37 2 дек, 15:15 37 1304787

>>1304784
А в сопроцессоре существуют.

38 2 дек, 15:35 38 1304798

>>1304784
Вообще чисел не существует. Есть только биты.

39 2 дек, 15:37 39 1304800

>>1304784
Числа не числа, знаки не знаки
Так как это работает? Как мне правильно записать, сохранить и считать отрицательное число? Шо для этого сделать надо? Куда гуглить? Какая схема работы?

Ответы048040480804898

40 2 дек, 15:48 40 1304804

>>1304800
Как в сраной сишке же.
Написал uint - получил беззнаковое целое, написал int - получил знаковое.
А в памяти один и тот же байт.

Ответы05098

41 2 дек, 15:55 41 1304808

>>1304800
Специально ничего не надо сделать. Отрицательные числа придуманы такими, чтобы с ними работало то же АЛУ, что и с беззнаковыми.

Ответы05098

42 2 дек, 16:19 42 1304819

Я никогда не писал на ассемблере, но вроде когда-то слышал, что в ассемблере циклы реализованы по принципу goto. Это так?

Ответы048300505805088

43 2 дек, 16:29 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. На уровне процессора ты ничего не сделаешь. Но тут приходят на помощь типы данных.

И тогда мы говорим "а старший бит у нас это на самом деле знак". И мы получаем уже знаковую переменную. Или не говорим - тогда получаем не знаковую.

Ответы0489805098

44 2 дек, 16:34 44 1304830

>>1304819
Врут конечно. Они по принципу loop реализованы.

45 2 дек, 16:51 45 1304837

>>1304728
>берём число (7 младших бит онли), инвертим, старший (8-ой бит) ставим в единицу и готово.
Не совсем
>>1304784
>-1 и 129 это одно и то же
Даже близко нет.

И это асм тред, лол?

46 2 дек, 18:43 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
Это самый распространенный, но не единственный способ. Например, во флоатах просто отдельный бит под знак.

Ответы05098

47 2 дек, 20:39 47 1304958

>>1303534
Есть.
Вопрос не понял, берется да пишется. Любую работу тебе проще начать с модификации готовых сорцов под свой код, даже декомпилировать ничего не требуется.

Вот пример http://www.pouet.net/prod.php?which=49796

48 2 дек, 20:43 48 1304967

>>1303817
Майкрософтами "владеют" через акции, это в основном менеджеры (поскольку старые девелоперы там двигают в менедмент).

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

Но некоторые сумели да. Например Fredrik "Mr. H" Huss и Magnus "Vogue" Högdahl, составлявшие демогруппу Triton,
авторы FastTracker позже образовали Starbreeze Studios https://en.wikipedia.org/wiki/Starbreeze_Studios

49 2 дек, 20:52 49 1304976

>>1301383
Но при этом твои простыни ахуенны и весьма полезны, добра тебе
а еще ты заебывлася с пунктуацией в километровых простынях, это еще круче

50 2 дек, 22:56 50 1305058

>>1304819
По сути да. Либо пока ECX не обнулится, либо по условному переходу.

51 3 дек, 00:02 51 1305088

>>1304819
Так тебе в этом ничто не мешает убедиться.

https://godbolt.org/z/NBySic

jg .L2
это "jump greater" на метку .L2
это происходит после того как eax проверяется на 0.
Поводи мышкой над командами ассемблера. Выбери другие микропроцессоры или компиляторы и посмотри какие у них команды (опцию компилятора -m32 может понадобиться убрать)

52 3 дек, 00:26 52 1305098

>>1304804
>>1304808
>>1304824
>>1304898

Спасибо, аноны

По поводу FPU 53 3 дек, 14:42 53 1305292

Нужно ли каждый раз прописывать в программе инициализацию сопроцессора? И если да, то FINIT или FNINIT?

Ответы05394

54 3 дек, 14:58 54 1305302

>>1303530
Мне это не подходит, у меня каждый цикл на счету, а ты предлагаешь ждать полчаса.

55 3 дек, 15:00 55 1305303

Аноны, почему нельзя загрузить число в стек FPU, заранее не записав его в data section? Почему нельзя написать fild 10 или fld 12.5, но можно написать push 132?

Ответы05313

56 3 дек, 15:19 56 1305313

>>1305303
Потому что эта инструкция поддерживает только memory operand.

Ответы0531505317

57 3 дек, 15:20 57 1305315

>>1305313
https://c9x.me/x86/html/file_module_x86_id_100.html
Ладно, не только, но точно не immediate value

58 3 дек, 15:23 58 1305317

>>1305313
Эээх

Ответы05320

59 3 дек, 15:27 59 1305320

>>1305317
Ты не должен этого хотеть.

Ответы05324

60 3 дек, 15:29 60 1305324

>>1305320
Ну вот хочу я умножить число на два. Мне ради этого забить в data section dva_const dq 2.0? Так себе.

Ответы0533505394

61 3 дек, 15:50 61 1305335

>>1305324
Да, так это и работает.

Ответы05336

62 3 дек, 15:54 62 1305336

>>1305335
Мдяя

Ответы05350

63 3 дек, 16:25 63 1305350

>>1305336
Ну ты можешь сканпелировать с dva_const dq 2.0, посмотреть что там получилось, переписать на мокток, а потом
push
push
ololo

64 3 дек, 18:30 64 1305394

>>1305292
> Нужно ли каждый раз прописывать в программе инициализацию сопроцессора?
Если у тебя контролируемая среда: твоя собственная программа, нормальная ОС, все соблюдают конвенции вызова (в том числе и чистят стек), исключения замаскированы и т. д., то не нужно.

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

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

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

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

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

Ответы05795

65 4 дек, 17:50 65 1305795

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

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

Двачую этого.
Чтобы не ебать мозги, напиши код на Си, откомпилируй годным компилятором и посмотри в IDA или HIEW как там делаются операции.
Нормальный компитятор таки суммирует число с самим собой вместо умножения на 2 и еще много чего такого хитровыебанного, до чего ты не дойдешь сам без охуительного опыта. Ну или велосипеды будешь изобретать постоянно.

Ответы058080581405820

66 4 дек, 18:41 66 1305808

>>1305795
Я не имел в виду, что анон макака, потому что кладет константы в .data. Компилятор их тоже туда кладет, но самостоятельно, без необходимости бесполезной ручной работы.

Ответы05957

67 4 дек, 18:55 67 1305814

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

Ответы05962

68 4 дек, 19:03 68 1305820

>>1305795
>Чтобы не ебать мозги, напиши код на Си, откомпилируй годным компилятором и посмотри в IDA или HIEW как там делаются операции.
Вся суть асма в 2018

Ответы0582805957

69 4 дек, 19:21 69 1305828

>>1305820
Неправда.

70 4 дек, 22:09 70 1305957

>>1305808
Я тебе вообще не отвечал. :)

>>1305820
В 2018-м с 64-битными регистрами (для особо упоротых можно юзать 128-битные, по факту это RDX:RAX), можно реализовывать ОХУИТЕЛЬНО точные и быстрые fixed-point вычисления.

71 4 дек, 22:12 71 1305962

>>1305814
Много умножений-делений сишные компиляторы делают изумительно. Я охуел, когда умножение на 5 через команду LEA много лет назад начал делать интеловский компилятор, равно как и деления сдвигами-вычитаниями.

Ответы06309

72 5 дек, 12:23 72 1306309

>>1305962
Всё это охуительное дрочево со сдвигами и магическими константанми это конечно круто, но бывает, что нужно делить, например, на 5.3841, и это придётся хранить в константе.

Ответы0631506404

73 5 дек, 12:36 73 1306315

>>1306309
Блядь, да что там говорить, я тыкаю экзешник игры от EA в последнюю неделю, так они там и ны 1000 делят флоатами целые числа.

74 5 дек, 16:03 74 1306404

>>1306309
Да дели, никто не против. Я просто еще раз говорю, что лучше всего алгоритм реализовать на Си, откомпилять, а потом перенести в ассемблер, отшлифовав уже там по вкусу (хуй знает, что тебе надо - размер или скорость).

75 5 дек, 18:22 75 1306485

У ассемблера все в норме с перспективой на будущее?
Нет никакой альтернативы которая скоро спихнет его?

Ответы064920654147779

76 5 дек, 18:40 76 1306492

>>1306485
Программирование в машкодах даст пососать любому ассемблеру.

Ответы064950649606512

77 5 дек, 19:01 77 1306495

>>1306492
Как вкатиться?

78 5 дек, 19:02 78 1306496

>>1306492
Одно без другого особого смысла не имеет.

79 5 дек, 19:31 79 1306512

>>1306492
Программирование в микроопах даст пососать любому машкоду.

Ответы07708

80 5 дек, 20:09 80 1306541

>>1306485
Ну, если ты в 1980-м живешь, то вопрос мог бы иметь смысл.

81 6 дек, 21:23 81 1307138

Сап, двач. Есть вопрос: существуют ли проекты для графического отображения выполненных инструкций в отладке? Или хотя бы вывод в текстовый файл списка только тех команд программы что выполнились до какого-нибудь брейкпойнта?

Ответы0713907182

82 6 дек, 21:25 82 1307139

>>1307138
https://stackoverflow.com/questions/2971926/tracing-profiling-instructions
Смотри ответ с галочкой

sage 83 6 дек, 22:48 83 1307182

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

84 7 дек, 14:34 84 1307542

Как использовать функцию rand (и прочие функции, возвращающие какие-то значения) из msvcrt в ассемблере?

Ответы07715

85 7 дек, 20:42 85 1307708

>>1306512
Программирование FPGA даст пососать любому опкоду.

Ответы07713

137 Кб, 640x480
86 7 дек, 20:48 86 1307713

>>1307708
погромирование на скрутках даст пососать любому fpga

sage 87 7 дек, 20:49 87 1307715

>>1307542
; push arguments in reverse order (для rand нинужно)
call [rand]
; add esp, n*4 (где n - количество аргументов выше)
; что-то делать с eax
Можешь посмотреть, как анон на фасме вызывал в прошлом треде: >>1300720

Ответы07767

88 7 дек, 22:59 88 1307767

>>1307715
Мне стоило уточнить вопрос: куда помещается значение, которое возвращает функция?
> что-то делать с eax
То есть, это значение будет в eax? Все ли функции, которые возвращают что-то, используют для этого eax? А если нужно 64 бита? edx:eax? Где вообще можно ознакомиться с подробной информацией о конкретной dll-библиотеке, о ее функциях (о входных и выходных данных в том числе)? Справка по функциям C/C++ не ответила на вопросы по выходным данным в функциях в ассемблере.

Ответы07770

sage 89 7 дек, 23:09 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.

Ответы07779

90 7 дек, 23:20 90 1307779

>>1307770
То есть то, куда функция должна возвращать данные, прописано в соглашениях о вызове? И там, как я понял, указано, что 32-битные значения (в pe32) записываются в eax, 64-битные в edx:eax, а вещественные числа - в стек fpu, так?

91 8 дек, 00:22 91 1307813

Аноны, киньте книгу/ресурс почитать о формате PE, желательно разжеванный до мелочей материал. Я уже блять не могу, какие-то ебанутые структуры в структурах структур, все эти секции, хедеры и прочие пердолинги. С меня как всегда.

Ответы0783108759

sage 92 8 дек, 01:43 92 1307831

>>1307813
Гугл, "Крис Касперски путь воина", потом спеку Microsoft, чтобы понять, что у Криса куча ошибок. И не стесняйся брать одновременно хекс-редактор и какой-нибудь высокоуровневый вьювер (например, CFF Explorer, или что там сейчас модно) и смотреть на нескольких примерах.

93 9 дек, 22:51 93 1308759

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

94 9 дек, 23:00 94 1308764

Что крутого можно сделать с помощью RE? Как обучающий петпроект для меняб

Ответы087990886712504

sage 95 10 дек, 00:27 95 1308799

>>1308764
Портируй какую-нибудь старую игрушку куда-нибудь. Или сервер для нее сделай. Или редактор карт.

Ответы08824

96 10 дек, 00:47 96 1308809

Короче, я нашёл как сделать паузу(уже давно), invoke Sleep, 100
Я не обижаюсь. У меня вопрос:
Будем реверсить серьёзное дерьмо?

Ответы08824

sage 97 10 дек, 01:30 97 1308824

>>1308799
Какой нибудь фоллаут2?
>>1308809
Что?

Ответы088470889008945

sage 98 10 дек, 03:27 98 1308847

>>1308824
> Какой нибудь фоллаут2?
Считай по килобайту в день минус рантайм кажется, что это мало, но ты не будешь заниматься этим каждый день, где-то будешь тупить, к некоторым функциям будешь возвращаться, так что это еще очень оптимистичная оценка, даже с учетом HexRays.. Фоллаут весит метр. Понимаешь, в чем подвох?

Ответы0884912504

sage 99 10 дек, 03:40 99 1308849

>>1308847
Ehh... три года в самом оптимистичном варианте o(〒﹏〒)o

100 10 дек, 04:47 100 1308867

>>1308764
Вытащи алгоритмы фильтра из VST Spire. Я даже заплачу. Но немного, потому что за много я и сам это сделаю

101 10 дек, 07:29 101 1308890

>>1308824
>Что?
Давно пытаюсь перевести valkyria profile на ps1 чё говорить.. игра пиздатая, если получиться понять алгоритм то можно и остальные игры от tri-ace перевести. Ща поверхностно расскажу что сделал(не цепляйтесь за терминологию, уже подзабыл), игра зашифрована slz-алгоритмом, дешифратор в инете есть. Я разбил весь диск на slz-куски(много получилось), перекодировал и соединил, в аськах можно найти некоторые слова, типа Lenneth, Start чёто такое. Я так понимаю, там своя таблица символов, надо разобраться как она работает. Инструментов в сети хватает, там чел перевёл на испанский и лежат исходники на Lua(я не шарю), тексты можно скомуниздить из переведённой манги. Если что вечером приду с работы.

Ответы088910928010296

102 10 дек, 07:38 102 1308891

>>1308890
Добавлю. Кто, если не мы?

103 10 дек, 11:02 103 1308945

>>1308824
Уже есть FOnline, там и сырцы недавно открыли.

104 10 дек, 22:55 104 1309280

>>1308890
Всё, я понял что нужно делать, не нужно никаких исходников. Если я правильно понимаю, то на ps1 архивируют инфу кусками для экономии места на диске, вроде бы обычная практика. Значит когда будет текст на экране, нужно поставить паузу в отладчике, думаю таблица символов должна находиться в памяти. Теперь надо просто найти какие slz-куски загружены в память(тупо копипастить hex из разархивированного куска в поиск по памяти), наверняка в одном из них и будет таблица. Потом понаставить бряков на обращение к таблице и должно получиться. Скорей бы выходные.

Ответы10296

105 12 дек, 21:42 105 1310296

>>1308890
>>1309280
Мне никто не ответит даже? В чём прикол этого всего7

Ответы10318

sage 106 12 дек, 22:34 106 1310318

>>1310296
Я лично просто не понял вопроса.
> таблица символов должна находиться в памяти
Какую таблицу ты ищешь? Трансляцию в ASCII? Ее может не быть, потому что она никому нахуй не нужна на консолях. Вот есть у тебя квадратная текстура с глифами (буквами), и когда игра рисует текст, она копирует нужный глиф из текстуры, вычисляя позицию в зависимости от численного значения символа. Соответственно, кодировка текста зависит лишь от позиции соответствующего глифа в текстуре и может быть абсолютно любой (в том числе и отличаться в зависимости от шрифта). Могут быть и многобайтовые символы.

Ответы103611037710381

115 Кб, 640x441
107 12 дек, 23:58 107 1310361

>>1310318
Ну ты сказал что я думаю, только сложно.
Просто я раньше не замечал что у букв есть тень, значит это текстура. Ну и нужно просто найти обращение к этим текстурам, они наверняка в одном slz-куске, и у того чувака с исходниками тоже фигурирует перерисовка текстур. Просто раньше не понимал как это делается.
А то что в аськах стал находиться текст, это к тому что двигаюсь в нужном направлении.

108 13 дек, 00:22 108 1310377

>>1310318
>она копирует нужный глиф из текстуры
Там много этих slz-кусков, больше ста точно(и то что это прям куски инфа 100%). Значит игра не подгружает их с диска по отдельности, значит во время прорисовки текста все эти текстуры в памяти - таблица символов (образно говоря), и подгружаются они из одного куска или нескольких(приставке же нужно время чтобы успеть их разархивировать, не будут же они для каждой буквы каждый раз разархивироваться).

109 13 дек, 00:27 109 1310381

>>1310318
Я тебя понял, выше с другой позиции рассматривал твой пост.

Ответы10385

sage 110 13 дек, 00:32 110 1310385

>>1310381
А просто взять распаковать первые несколько кусков и поскроллить в какой-нибудь nana нельзя (https://web.archive.org/web/20140320175114/http://www.neillcorlett.com:80/nana/ )? Хотя ты сказал же, что есть исходники на Lua, проще в них разобраться, наверное. Или тебе интересен именно процесс?

> тень
Да там просто сдвиг вправо вниз и отрисовка другим цветом. В текстуре тени скорее всего нет.

Ответы10388

111 13 дек, 00:38 111 1310388

>>1310385
>в какой-нибудь nana нельзя
Пробовал, находит слова только в аськах.
Я не представляю как на lua можно реверсить игру, это же оч. высокоуровневый язык.

Ответы10399

112 13 дек, 00:40 112 1310389

Пора спать, завтра найду эти символы в его lua-исходнике.

sage 113 13 дек, 01:09 113 1310399

>>1310388
> Пробовал, находит слова только в аськах.
Это не хекс-редактор, это смотрелка графики (если повезло, и она не пожата ничем).

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

Ответы10789

114 13 дек, 07:19 114 1310435

Реверсач, как можно получить дескриптор процесса кроме OpenProcess/Nt/ZwOpenProcess/CreateProcess? И еще вычитал, что можно что-то нашаманить с NtMapViewOfSection и писать/читать память без открытого дескриптора, это правда? думаю что нет

Ответы1079111215

115 13 дек, 21:24 115 1310789

>>1310399
>Это не хекс-редактор, это смотрелка графики (если повезло, и она не пожата ничем).
Вот если сработает, то нихуя себе ты мне помог. Конечно не пожата, я же всё уже разжал. Завтра выходной, сегодня пивко, поэтому завтра займусь.

Ответы10800

116 13 дек, 21:30 116 1310791

>>1310435
Моё мнение - напиши подробней что ты делаешь, может тебе вместо дескриптора что-нить подойдёт.

Ответы10854

sage 117 13 дек, 21:56 117 1310800

>>1310789
> я же всё уже разжал
Это никак не гарантирует, что там нету какого-нибудь RLE у картинок, или даже чего-то посерьезнее.

Ответы10825

118 13 дек, 22:14 118 1310810

СУКА! Без всякой на то причины, в TD32 изменилась раскладка с английской на русскую. Как это исправить?

119 13 дек, 23:09 119 1310825

>>1310800
Ты думаешь японцы станут сжимать, а потом ещё раз сжимать? Сомнительно.

Ответы11512

120 13 дек, 23:19 120 1310829

Я кажется разбил на slz-куски только slz1 и slz2, они простые, ищутся просто по slz в аськах. А slz3 содержит в заголовке slz, потом кажется кол-во байт в куске, потом 03h. Я собсно и написал ту прогу с видео для поиска таких заголовков. Завтра буду вспоминать.

121 14 дек, 01:21 121 1310854

>>1310791
Читаю и записываю в память другого процесса. Также интересует, как можно повысить скорость чтение/записи памяти. Я использую NtReadVirtualMemory и NtWriteVirtualMemory для этого.Еще вычитал, что можно зашарить секцию/память/что-то там еще с помощью NtMapViewOfSection, тем самым увеличив скорость чтения/записи и тем самым минуя ситуацию с вечно открытыми хэндлом.

Ответы11215

980 Кб, mp4,
320x240, 0:04
122 14 дек, 12:06 122 1310990

Romhacking.net не работает, вчера работал

123 14 дек, 20:40 123 1311215

>>1310435
>>1310854
Бумп реквесту, анончики! Выкопал инфу из баянистого 2006:

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

Кто-нибудь может конкретнее объяснить как это работает? Кроме того, эта информация еще актуальна или нет?

336 Кб, 843x928
124 15 дек, 00:13 124 1311265

Господа, я очередной пытаюсь выкупить ИДА в этот угрюмый пятничный вечер.

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

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

Вторая проблема, это перевод в сишный код, я знаю что ИДА это умеет и могёт, на оундкоре считается чем-то вроде классики, если не ошибаюсь, эта фича называется Pseudocode, но я не смог нигде найти упоминаний о существовнии подобного (IDA 7.0.170914)

Ответы11266

125 15 дек, 00:15 125 1311266

>>1311265
F5/CTRL-F5

Ответы11270

126 15 дек, 00:21 126 1311270

>>1311266
Благодарки, теперь осталось найти ту функцию. Может там можно как-то выключить адреса по сегментам?

Ответы11292

sage 127 15 дек, 01:15 127 1311292

>>1311270
> теперь осталось найти ту функцию
Во-первых, ты можешь приаттачиться отладчиком иды к процессу, тогда адреса (скорее всего) совпадут. Если не совпадут, читай про ASLR, запатчи флаг ASLR-aware в заголовке.
> по адресу 4D4D80 находится какая-то ссанина
Во-вторых, возьми какой-нибудь детектор упаковщиков (peid, protection id, detect it easy или что там сейчас модно) и узнай, не запакован ли файл. Если упакован - распакуй. Если не можешь, см. во-первых.
В-третьих, нахаляву ничего не бывает, читабельный сишный код получается после длительного анализа.

Ответы11301

128 15 дек, 01:45 128 1311301

>>1311292
Только понял, что данные екзе файла и память процесса это не од

Ответы11316

sage 129 15 дек, 03:58 129 1311316

>>1311301
Да нет, тебе IDA (в случае PE .exe) имитирует загрузку программы и показывает такие же виртуальные адреса, как в памяти. И даже если она показывает не те адреса (например, ASLR в системе, или ты грузишь DLL, а ее базовый адрес занят), всегда можно сделать Rebase program в IDA. Но она показывает то же, что и винда видит при старте программы. Если программа после запуска сама себя модифицирует (распаковывает), то IDA, естественно, об этом узнать неоткуда, и ты видишь мусор. Если ты знаешь алгоритм, или серьезно ковыряешься в упаковщике, можно написать статический анпакер, который прямо в IDA будет "выделять" память (создавать дополнительные сегменты) и делать PatchByte так же, как делает стаб упаковщика в рантайме, а можно "просто" запустить упакованую пограмму под отладчиком, дождаться, пока стаб ее распакует и после этого сдампить результаты в файл, на который уже можно натравливать IDA. Ну после ребилда и исправления импортов, если они интересуют.

Ответы11605

130 15 дек, 15:28 130 1311512

>>1310825
Японцы те ещё извращенцы, если что.

94 Кб, 1471x704
131 15 дек, 19:06 131 1311605

>>1311316
Теперь память совпадает, но в ИДА не формируются инструкции из байткода, соответственно F5 не работает. Возможно из-за динамичности памяти они решили не обновлять это, как делает СЕ?

Ответы11618

sage 132 15 дек, 19:28 132 1311618

>>1311605
Press X to win<C> to make code.

133 16 дек, 02:38 133 1311779

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

134 16 дек, 04:11 134 1311791

Есть инструкция
mov ecx, fs:[0000002C]

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

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

Второй, я так понимаю, что эта фича была сделана чтобы одна и та же функция но в разных потоков занималась обновлением всей хуйни, только в первом треде обновляются объекты, в другом - инвентарь, в третем - еще что. Насколько это может быть похоже на правду?

Ответы12375

135 16 дек, 13:38 135 1312051

Сап двач нужна ваша помощь
У меня в универе изучают ассемблер TASM ( поставлен он там через dosBox никто не может объяснить как они эту парашу ставили )
Мне нужно скачать TASM но я хз где его скачать рабочий и как с ним работать если кто может поделитесь ссылкой

Ответы12052

136 16 дек, 13:46 136 1312052

>>1312051
https://habr.com/post/326078/

sage 137 16 дек, 23:26 137 1312375

>>1311791
> как прочитать через WinAPI какие треды в процессе какую информацию содержат в этой структре
Ты заебешься. Лучше похукай в игре что-нибудь. Но если очень хочется: перечисляешь потоки в процессе, делаешь каждому GetThreadContext, достаешь оттуда SegFs, скармливаешь его GetThreadSelectorEntry, собираешь линейный адрес TEB, разбираешься, как работает TLS, парсишь TLS, профит. Тебе оно надо?

> что эта фича была сделана чтобы одна и та же функция но в разных потоков
Это вообще может быть что-нибудь околосистемное. Например, банальные thread-local данные сишного рантайма.

138 17 дек, 12:22 138 1312504

>>1308764
>>1308847
Решил я короче попробовать зареверинжинирить эту игру в общем:
https://en.wikipedia.org/wiki/State_of_War_(video_game)

Пожелайте удачи и не бросить это дело

139 17 дек, 17:45 139 1312673

Чо бы накодить на асме.

Ответы1268212695

140 17 дек, 17:50 140 1312682

>>1312673
Стандартную библиотеку Си

141 17 дек, 18:03 141 1312695

>>1312673
256b demo
я больше не вижу применения этой хуйне

Ответы12768

142 17 дек, 20:32 142 1312768

>>1312695
Подробнее.

Неужели нет применения? Ничто как ассемблер не позволяет так плотно ебаться с компом. Дрова, загрузчики и лоулевел всегда же быть, хоть немного, но нужны.

Ответы12772

143 17 дек, 20:37 143 1312772

>>1312768
В 2018 нет.
Асм x86 сам по себе это байткод для микрокода внутри процессора, поэтому до железа тебя в любом случае не пустят. А как тасовать этот самый микрокод для более лучшей скоростности лучше знает компилятор.

Ответы127731277512896

144 17 дек, 20:41 144 1312773

>>1312772
А реверсить за тебя кто будет? Hex-rays штоле?
Вот то-то!

Ответы12776

145 17 дек, 20:42 145 1312775

>>1312772
А на чем пишут компиляторы?

Ответы12782

146 17 дек, 20:44 146 1312776

>>1312773
>Hex-rays штоле
Ну как бы да. ._.
С появлением hex rays у меня наконец-то стало получаться реверсить, потому что асмовскую поеботу я вообще не воспринимаю, а вот глючный высер hex-rays'а вполне.

Ответы12896

147 17 дек, 20:51 147 1312782

>>1312775
Ну уж точно такую сложную вещь как компилятор на ассемблере не пишут. Хорошим тоном считается написать компилятор языка на самом языке - тогда он считается уже зрелым.
Ассемблер тебе понадобится только на последней стадии - кодогенерации из одного из промежуточных представлений.
Если ты хочешь написать компилятор в 2018, тебе нужно генерить LLVM-код, а LLVM уже превратит этот код в машинный. Так ты построишь минимум велосипедов, потому что LLVM умеет применять к промежуточному коду кучу оптимизаций и делать много чего еще хорошего.
А LLVM написана на С++. Вот кодогенератор, если интересно https://github.com/llvm-mirror/llvm/tree/master/lib/Target/X86

148 17 дек, 21:00 148 1312791

Анончики, что можно написать на асм? что ты обычно пишите? какой самый крутой проект у тебя был?

149 17 дек, 21:11 149 1312798

Реверсач, сап. Знаю, что меня сейчас обоссут, но лучше помогите! У крестоводов и сибояр есть так называемые фаст-либы, в которых функции это обертки над ассемблерными вставками. Таким образом они повышают производительность, например математических вычислений. Есть ли способ заюзать все это на C#?

Ответы1289612953

13 Кб, 450x289
sage 150 18 дек, 01:39 150 1312896

>>1312772
> поэтому до железа тебя в любом случае не пустят
Это и есть железо. Микрокод много где есть, и если он есть - он неотъемлемая часть проца.

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

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

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

>>1312798
pinvoke?

Ответы12957

151 18 дек, 09:38 151 1312953

>>1312798
>Есть ли способ заюзать все это на C#?

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

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

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

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

152 18 дек, 10:03 152 1312957

>>1312896
>А ты, не зная асма, не сможешь даже заметить перечисленное, не то, что решить проблему.
._.
Ну на самом деле да. Но реверсинг это, пожалуй, единственное применение асма.

На пике надеюсь O0?

Ответы1302813324

153 18 дек, 13:47 153 1313028

>>1312957
>Но реверсинг это, пожалуй, единственное применение асма.
Эксплуатоиты писать.
Да и вообще что угодно

Ответы13277

154 18 дек, 18:17 154 1313178

Че ебать у вас как много надо знать? Архитектура, асм, операционки, кресты с сями, пиздец какой-то.

Ответы13192

155 18 дек, 18:37 155 1313192

>>1313178
Скачай HiAsm, там особо много знать не надо.

156 18 дек, 21:41 156 1313277

>>1313028
Енто и есть реверсинг, он имел ввиду. Идея в том, что ничего нормального, типа стендалон апп не напишешь на асме.

Ответы132811329313324

157 18 дек, 21:50 157 1313281

>>1313277
До сих пор пишут в эмбедде, и много. Не очень понимаю, зачем, правда. Ну и всякие загрузчики надо самому писать на нестандартных девайсах

Ответы14402

158 18 дек, 22:04 158 1313293

>>1313277
>стендалон апп не напишешь на асме
WAT?

159 18 дек, 23:11 159 1313324

>>1312957
Да, на пике O0 (в студии это Od).

>>1313277
> стендалон апп не напишешь на асме.
Не не напишешь, а нет смысла писать.

160 19 дек, 11:57 160 1313466

Как я понимаю ассемблер теперь не нужен.

Ответы1346913671

161 19 дек, 12:09 161 1313469

>>1313466
Уже лет 20 как, лол.

162 19 дек, 18:35 162 1313671

>>1313466
>теперь
Ты потерял ссылку на новость, в которой изобрели ИИ?

Что там внутри? 163 19 дек, 19:47 163 1313703

Писать простейшие программы формата PE, типа "Hello, world!", оказалось несложно: подключил msvcrt.dll с помощью макросов из import32.inc, импортировал методы — профит. Но что из себя представляют эти функции? Например метод exit: как он работает? Программа должна как-то обращаться к ОС, но засчет чего это происходит? С форматом MZ вроде ясно — вызываешь прерывание DOS, а система интерпретирует это как призыв к действию и выполняет какой-то свой код (хотя тут тоже не ясно, что именно происходит дальше, но, по всей видимости, работа с машиной на низком уровне, с этим еще можно разобраться). А вот с PE не очень понятно, где эта точка соприкосновения с системой, когда мы говорим ей "сделай ЭТО, шиндовс". Объясните это, пожалуйста, если не трудно.

Ответы1371013728

164 19 дек, 20:07 164 1313710

>>1313703
API

Ответы13722

165 19 дек, 20:22 165 1313722

>>1313710
> Базовые функции реализованы в динамически подключаемых библиотеках kernel32.dll и advapi32.dll; базовые модули графического интерфейса пользователя — в user32.dll и gdi32.dll
У меня все еще вопросы:
1) Выходит, я не могу написать 32-битную программу без использования этих библиотек, или других, использующих первые, так?
2) А что тогда содержится в самих dll, если это — базовые функции? Код, который выполняется системой на самом низком уровне при работе непосредственно с машиной?
3) В msvcrt.dll функции тоже базовые, или выполняются не без использования kernel32.dll?

Ответы1372613728

166 19 дек, 20:28 166 1313726

>>1313722
Это уже не по асму вопросы, а по устройству системы.

1. Можешь, но kernel всегда будет проецироваться в твой адресный процесс
2. Просто функции (библиотека, понимаешь?). Иногда может и сквозь HAL в самый низ уйти.
3. По-разному.

Ответы13729

167 19 дек, 20:36 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, а этот древний, от шестой вроде студии.

Ответы13735

168 19 дек, 20:38 168 1313729

>>1313726
>Просто функции
Не очень понял, там имеется реализация этих базовых функций?

Ответы14067

169 19 дек, 20:43 169 1313735

>>1313728
Спасибо, вроде что-то понял.

170 20 дек, 00:49 170 1313883

Где мне можно достать IDA pro 7 под линь? Или через вайн придётся запускать?

Ответы13885

171 20 дек, 00:51 171 1313885

>>1313883
Ну 6.8 хорошо под вайном бегает

172 20 дек, 15:20 172 1314067

>>1313729
Да

24 Кб, 548x381
173 20 дек, 15:53 173 1314081

Привет, аноны. Объясните, пожалуйста, как работает static linking. Решил поэкспериментировать (пикрил), но програмка крашнулась. Что не так? Ну, то есть понятно, что не рационально впихивать весь dll в приложение, где используются только две функции, да и смысла линковать статически конкретно эту библиотеку нет, но разве это не должно было сработать? Значения getch и exit — entry point'ы, взял их из dependency walker.

Ответы140871411114153

512x512
174 20 дек, 16:02 174 1314087

>>1314081
Уууу, бля.
Надеюсь тот анон, что любит простыняшами отвечать, захочет написать как сильно ты не прав.

Ответы14153

175 20 дек, 16:52 175 1314111

>>1314081
Подозреваю, что ты пытаешься исполнять данные, а не код

Ответы14114

176 20 дек, 17:10 176 1314114

>>1314111
А что, реализации там нет? =(

177 20 дек, 17:52 177 1314132

Где можно посмотреть список какой инструкции соответствует какая команда?

Ответы14136

178 20 дек, 18:00 178 1314136

>>1314132
>какой инструкции соответствует какая команда
Штабля?
Может какой опкод какой команде?

Ответы14144

179 20 дек, 18:12 179 1314140

31 Кб, 493x4948 Кб, 333x180

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

Ответы1415114153

180 20 дек, 18:19 180 1314144

>>1314136
ДА!

Ответы14148

181 20 дек, 18:27 181 1314148

>>1314144
https://en.wikipedia.org/wiki/X86_instruction_listings
А вообще читай intel manual.

Ответы141501415214159

182 20 дек, 18:28 182 1314150

>>1314148
>https://en.wikipedia.org/wiki/X86_instruction_listings
СПАСИБО БРАТУХЕН ТЫ КРАСАВА

183 20 дек, 18:29 183 1314151

>>1314140
Потому что ты не вызываешь _myfunc?

184 20 дек, 18:30 184 1314152

>>1314148
Их так дохуя что ли. Ебать конечно карась.

185 20 дек, 18:30 185 1314153

>>1314081
>>1314087
> Уууу, бля.
Вот у меня абсолютно точно такая же реакция. Короче, так оно не работает по двум с половиной причинам:
1) Когда винда грузит библиотеку, это не значит, что она просто выделяет память и тупо копирует туда файл. Она парсит много всяких структур и выделяет память сложно. Пересказывать весь формат PE я не буду, лучше найти какую-нибудь готовую статью. Но очевидная проблема в том, что файл на диске отличается от образа в памяти.
1.5) Кроме того всяких вещей, связанных с загрузкой собственно образа, загрузчик также выполняет динамическую линковку (связывание), т.е., пробегается по импортам длл и впатчивает в них адреса тех функций, которые импортируются. До этого попытка вызвать любую импортированную функцию приведет к крашу (там есть некоторые исключения с привязанными длл, о которых я лучше промолчу).
2) Кроме загрузчика, еще и сама длл обычно производит всякую инициализацию, получая управление в DllMain в разные моменты своей жизни. Естественно, ненициализированная длл работать не будет.

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

>>1314140
Ты все делаешь не так. Ты не выделил память под функцию, ты не пометил память, как исполняемую, ты читаешь с "r" вместо "rb".

Ответы14161

186 20 дек, 18:38 186 1314159

>>1314148
Как понять, под какой архитектурой компилировалась программа?

Ответы1416014162

187 20 дек, 18:40 187 1314160

>>1314159
Посмотреть в заголовке исполняемого файла.

Ответы1416314164

188 20 дек, 18:41 188 1314161

43 Кб, 500x59111 Кб, 448x202

>>1314153
>Ты все делаешь не так. Ты не выделил память под функцию, ты не пометил память, как исполняемую, ты читаешь с "r" вместо "rb".
Сделал все по заветам твоим, но сосу.

Ответы1416614174

189 20 дек, 18:42 189 1314162

>>1314159
Под какой компилировалась - никак (ну разве что линкер строчку с путем оставит или что-нибудь еще). Под какую - обычно указано в одном из полей заголовка исполняемого файла. Например IMAGE_NT_HEADERS.FileHeader.Machine для PE или ElfXX_Ehdr.e_machine в ELF.

Ответы14176

190 20 дек, 18:42 190 1314163

>>1314160
Тебя Егор зовут?

Ответы14165

191 20 дек, 18:42 191 1314164

>>1314160
Да, я дурак, спасибо.
Алсо, очень сложно. Даже хелло ворлд нормально прочитать не могу.

52 Кб, 360x480
192 20 дек, 18:44 192 1314165

>>1314163
Называй меня королем собак.

193 20 дек, 18:45 193 1314166

>>1314161
> Сделал все
> ты не пометил память, как исполняемую
То, что ты там в ассемблере что-то написал, влияет только на бинарник, который ты из него слинкуешь. А пометить надо память, которую ты маллоком выделил (может не получиться на системе с селинуксом). Алсо, ты точно в чистый бинарник компилируешь, а не пытаешься грузить elf или coff?

Ответы1416814170

7 Кб, 821x98
194 20 дек, 18:47 194 1314168

>>1314166
nasm main.asm просто компилировал

Ответы14169

195 20 дек, 18:48 195 1314169

>>1314168
Ну тогда mprotect или VirtualProtect, или что у тебя там за ОС.

196 20 дек, 18:49 196 1314170

>>1314166
Я думаю он сам особо не понимает что делает.
Мог бы сразу написать 0xEB, 0xFE и не мучиться с файлами.

Ответы14173

197 20 дек, 18:50 197 1314173

>>1314170
Я не понимаю что делаю. Я мог бы написать 0хЕВ и 0хFE и не мучиться с файлами.

198 20 дек, 18:51 198 1314174

>>1314161
Лол. Я только сейчас заметил, что там еще и
ptr = (char★)c;
Возможно, стоит начать с изучения Си сначала?

Ответы14175

199 20 дек, 18:53 199 1314175

>>1314174
Это случайность, честное слово. Я когда писал код точно хотел заебенить там char приведение.

200 20 дек, 18:53 200 1314176

>>1314162
Хорошо, допустим, я нашел. Теперь я могу из hex-файла начать переписывать программу на си/кресты?
80386 PE формат

Ответы14180

201 20 дек, 18:55 201 1314180

>>1314176
Прямо из хексов? Глазками? Дизассемблирование в уме? Нет, не можешь, иначе не задавал бы таких вопросов. Иду возьми лучше с хексрейсами.

Ответы1418214185

202 20 дек, 18:56 202 1314182

>>1314180
>Дизассемблирование в уме?
И дворды ксорить.

Ответы14184

203 20 дек, 18:57 203 1314184

>>1314182
Дворды херня, это каждый сможет. А к нам 2019 спешит, у нас давно qword-ы.

Ответы14187

204 20 дек, 18:58 204 1314185

>>1314180
Я нихуя не умею, ладно. Начал RE день назад.

205 20 дек, 18:59 205 1314186

Хочу написать паровоз. Как долго это делать на ассемблере?

206 20 дек, 19:01 206 1314187

>>1314184
>у нас давно qword-ы.
Что это? Карасики маленькие?

207 20 дек, 22:09 207 1314288

>>1301036 (OP)
ОП, добавь в шапку онлайн-дизассемблер
disassembler.io

208 21 дек, 10:15 208 1314402

>>1313281
>До сих пор пишут в эмбедде, и много. Не очень понимаю, зачем, правда.

Потому что капиталисты по-прежнему жадные и им проще нанять усача за 2000-4000 евро в месяц без учета налогов чтобы тот применив более дешманский МК сэкономил своей байтоеблей от 2 до 20 евро на каждую сраную стиралку/, что при умножении на количество произведенных стиралок дает уже миллионы сэкономленых евреев в зарплату топманагеров и в доход акционеров.

209 21 дек, 22:03 209 1314756

сделал поиск по треду: gas
ничего не нашел
Разве будущее не за ним?

Ответы14801

210 21 дек, 22:46 210 1314772

Есть бинарник от микроконтроллера mc9s12x. У него страничная организация флешпамяти. Как правильно указать IDA работу с таким видом памяти?

4 Кб, 515x149
211 21 дек, 23:08 211 1314777

Как сделать, чтобы ИДА писал в псевдокоде хексы, вместо дец. заебался калькулятором конвертить

Ответы14801

212 21 дек, 23:59 212 1314801

>>1314777
<H> или правый клик. Алсо, в настройках декомпилятора есть default radix.

>>1314756
Нет.

Ответы15041

4 Кб, 287x188
213 22 дек, 17:39 213 1315041

>>1314801
>в настройках декомпилятора есть default radix
Не нашел, я пытался, честно.

Эти аррей акссессы меня путают, к примеру, this - тип char ^, this_ptr - int ^.
И this_ptr[0x374] != this[0x374], это очень мешает, можно, настроить, чтобы было в виде ^(this + 0x374) или ^(this_ptr + 0x374 * 4). А то менять все типы под char, дабы оффсеты совпадали будет как-то не очень.

Ответы15181

214 22 дек, 21:10 214 1315181

>>1315041
> Не нашел, я пытался, честно.
Edit->Plugins->Hexrays->Options, справа.

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

> this_ptr = this
Тыкай x на this_ptr, чтобы удостовериться, что он присваивается только один раз, тыкай =, мапь на this. Чем чище код, тем легче в нем разбираться.

215 28 дек, 04:12 215 1317613

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

Ответы176141769618274

216 28 дек, 04:21 216 1317614

>>1317613
Ты правда думаешь, что тырпрайз проще байтоебли?

Ответы17615

217 28 дек, 04:27 217 1317615

>>1317614
Думаю да. Разве нет?

Ответы17779

218 28 дек, 11:43 218 1317696

>>1317613
Начни прикладывать свои навыки где-то. Никто не занимается этим дрочем просто "чтобы быть классным спецом и получать свой косарь".

Ответы18191

219 28 дек, 14:27 219 1317779

>>1317615
Когда я в конце 90х делал реализацию просмотра JPEG в DOS на чистом asm'е без FPU (ДКП с fixed point это тот еще пиздец), это было в разы проще, чем выучить ебаный Spring Framework для ебаной Java.

Ответы18021

220 28 дек, 21:46 220 1318021

>>1317779
>без FPU
Зачем? Хардкор ради хардкора?

Ответы1804918263

221 28 дек, 22:37 221 1318049

>>1318021
Может его могло и не быть на тех процессорах, на которых исполнялась его программа.

Ответы18089

222 28 дек, 23:38 222 1318089

>>1318049
В конце 90-х уже SSE на пороге стоял.

223 29 дек, 03:58 223 1318191

>>1317696
Куда прикладывать то? Я практикуюсь реверсить разные хеллоуворды и крякми, ctf-ки решаю. Еще пробовал малварь анализировать, но сэмплы негде брать.

Ответы18205

224 29 дек, 07:14 224 1318205

>>1318191
Малварь не так интересно сейчас разбирать. Можешь на https://www.malwaredomainlist.com/mdl.php сходить и набрать себе на любой вкус поделок с платной чисткой фемидой+вмпротект.
Но будут там в основном всякие агенты, майнеры да поделки на дотнете.
Это раньше весело было увести у пинчевода логи, а то весь ботнет сразу. А сейчас только ctf'ные крякми еще как-то будоражат кровь.

Ответы67560

225 29 дек, 11:52 225 1318263

>>1318021
Демосцена ебать её... в итоге посаженное зрение и куча потерянного времени. Не повторяйте моих ошибок пацаны.

226 29 дек, 12:03 226 1318274

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

227 29 дек, 16:58 227 1318392

А можно тут попросить помощи? С темой треда относительно пересекается. Есть одно задание по какому-то ctf, категории pwn, с++ прога под Линукс. Хочу, собственно, его решить. Идей нет никаких, хотя довольно долго сижу. Пару предыдущих заданий я там осилил - переполнение, подмена rip, уехали куда надо.
Исходник: https://pastebin.com/GcaWX8aE

Ответы18421

228 29 дек, 18:40 228 1318421

>>1318392
> С темой треда относительно пересекается
Каким местом? Это какая-то сраная олимпиадка, там даже to брутить не нужно.

Ответы18464

sage 229 29 дек, 21:04 229 1318464

>>1318421
Ну ок, я не прав, это не просто сраная олимпиадка, а уязвимая сраная олимпиадка, там проверка после find кривая, и можно запатчить длину строки, ну и дальше дело техники.

Ответы1847218480

230 29 дек, 21:43 230 1318472

>>1318464
Так и надо уязвимость эксплойтнуть. Спасибо за наводку

Ответы18480

231 29 дек, 22:32 231 1318480

>>1318464
>>1318472
Хотя я честно говоря не понял, как именно. Ну увеличили мы длину строки, туда попал мусор. А толку?

Ответы18481

sage 232 29 дек, 22:35 232 1318481

>>1318480
Строка на стеке, его можно дампить, искать там нужные байтики и менять их местами, например.

Ответы1848218524

233 29 дек, 22:45 233 1318482

>>1318481
Звучит жестко, спасибо. Постараюсь доковырять.

sage 234 30 дек, 00:59 234 1318524

>>1318481
А вообще там же replace есть, с ним все еще проще. Ну это если условия тепличные в виде отключенного ASLR.

235 30 дек, 03:30 235 1318553

Завезу контента. И полезно и смешно!
https://www.youtube.com/watch?v=HlUe0TUHOIc

Ответы18597

sage 236 30 дек, 09:08 236 1318597

>>1318553
1) Было уже.
2) Кто-то правда пользуется графом в IDA? Зачем?!

Ответы18649

237 30 дек, 12:25 237 1318649

>>1318597
Быстро понять структуру программы

238 30 дек, 20:36 238 1318795

Что можно почитать про уязвимости уровнем повыше переплнения стека и буфера?

Ответы1881618962

sage 239 30 дек, 20:57 239 1318816

>>1318795
Книгу.

240 31 дек, 01:10 240 1318962

>>1318795
Блог Google Project Zero, например. А потом статьи про все встече

Ответы18963

241 31 дек, 01:11 241 1318963

>>1318962
...нные непонятные слова.

331 Кб, 566x536
242 31 дек, 08:12 242 1319041

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

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

Из этого вытекают следующие вопросы:
1) Какие языки программирования надо учить для подобного реверс-инжиниринга? Достаточно ли ассемблера и Си?
2) Насколько углубленно надо учить матан для такой цели? Хватит ли стандартного курса отечественных ВТУЗов?
3) Если я в будущем построю потенциальную хижину, то ко мне сразу на разборки приедут провинциальные коммерсы качать права за то, что я из мусора построился, а не купил у них стройматериалы как все. В связи с этим, какое боевое искусство учить, чтобы по голове сильно не били на тренировках, но чтобы можно было защитить мою потенциальную хижину от разборок коммерсов? Подойдет ли тэквондо ITF, там, вроде, сильно нельзя бить?
4) Как грамотно совместить тренировки, получение умений в программировании и в слесарном деле? Ведь надо будет быть достаточно сильным, чтобы быть готовым к тому, что коммерсы на разборки ездить будут. И достаточно квалифицированным, чтобы создать необходимые установки.

97 Кб, 847x528
243 1 янв, 22:01 243 1319476

Анончики, поясните за TLS-callback и почему о нем умалчивают. Пикрил, таблица CreateProcess из книги Windows Internals. Здесь сказано, что CreateProcess передает управление сразу к Entry Point. А где тогда находится TLS?

Ответы19509

244 2 янв, 00:52 244 1319509

>>1319476
Вот тут:
> Заключительная инициализация процесса.
все только начинается: вызываются не только TLS-колбеки, но еще и дллки грузятся, вызываются их entry-point-ы и т. д. Но это все частности, поэтому их опускают.

245 2 янв, 10:44 245 1319555

Есть одна программа. Она выделяет память через calloc, но не проверяет, сколько запрашивает пользователь. Так вот, пихаем -1, calloc возвращает NULL ака 0x0. Так как случилось переполнение size_t - прога считает, что предел у нас уехал в максимальное значение 64бит. После этого пользователь может запросить любой элемент массива, но так как мы сломали предел, и указатель на массив 0x0 - мы можем прочитать любой доступный кусок памяти. Так вот, пытаюсь таким образом прочитать стек (подсовывая в качестве индекса адрес начала текущего фрейма стека, найденного через отладчик, конвертированного в десятичное число) - выпадает с SIGSEGV, хотя вроде как не должно. Где я накосячил?

Ответы19557

246 2 янв, 10:50 246 1319557

15 Кб, 1366x76817 Кб, 1366x768

>>1319555
Вот скрины. В данном случае пытаюсь прочитать сохраненный rip, но выпадает SIGSEGV, хотя, по идее, по адресу 0x0 со смещением 0x7fffffffe888 находится наш стек и сохраненный в нем rip.

Ответы19726

247 2 янв, 19:10 247 1319726

>>1319557
rax*8
ебать в рот gdb и at&t

Ответы1974420163

248 2 янв, 19:11 248 1319727

>>1301036 (OP)
Сап.
Вопросы касаются архитектуры ПК.
1. Что в иерархии памяти находится ниже? Магнитные или оптические диски? Из этого вытекает 2 вопроса: что стоит дороже и работает быстрее.
Я ставлю на то, что ниже находятся оптические диски, но пруфануть не могу.
2.
Если запрос к L3 не приносит результата, он передаётся во внешнюю память:
а. По шине DDR3
б. По шине PCI
в. Запрос никуда не передается
Про шину DDR3 я слышу впервые, в гугле тоже ничего не нашел. Однако есть шина данных.
Казалось бы, в случае кэш-промоха, идет обращение к ОЗУ, по шине данных, значит ответ по шине DDR3
Но идет речь о внешней памяти, которой ОЗУ не является, хотя если внешней памятью считается все что за цп - тогда ок.
В общем здесь я уже даже не знаю.

Ответы1973120163

249 2 янв, 19:19 249 1319731

>>1319727
Лучше в /hw/ спроси, это слишком низко даже для асма.

Ответы20065

250 2 янв, 19:35 250 1319744

>>1319726
Блять. Спасибо. Буду теперь в Иде перепроверять выхлоп gdb. Это было довольно неочевидно.

Ответы19760

251 2 янв, 20:01 251 1319760

>>1319744
Есть radare, если что.

252 3 янв, 02:19 252 1320065

>>1319731
Не думаю что там помогут.
Остановился на PCI (cpu -> pci host bridge -> RAM) и оптических дисках.

253 3 янв, 11:30 253 1320163

>>1319726
> ебать в рот gdb и at&t
set disassembly-flavor intel в .gdbinit и забыть AT&T как страшный сон пробовал?

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

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

Ответы20198

254 3 янв, 12:51 254 1320198

>>1320163
>А одинаково. Если для твоего препода имеет значение технология хранения - с ним что-то не так.

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

По поводу L3 кэша, имеется ввиду, что нужно лезть в ram(скорее всего), вопрос только по какой из шин.
Я нашел 2 варианта:
a) cpu -> pci host bridge -> ram (какой-то древний)
b) cpu -> data-bus -> ram

Ответы20319

255 3 янв, 17:16 255 1320319

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

Ответы2043520538

256 3 янв, 21:45 256 1320435

>>1320319
Ну, скажем, насчет ничего реально не отражает это спорно. Все вполне разумно до уровня ЖД. А вообще да, придуман кукоретиками, с этим не поспоришь.

257 4 янв, 06:56 257 1320538

>>1320319
Дело не в том, что они съемные. HDD тоже может быть съемным. Оптические диски очень не любят перезапись. Лучший формат работы с ними - стереть полностью, записать. В этом плане у них чтение более-менее рандомное, а вот запись ближе к стримерам.
Иерархия, конечно, из манямирка, но определенный смысл в этом есть.

Ответы20558

258 4 янв, 10:06 258 1320558

>>1320538
> Оптические диски очень не любят перезапись
Флеш тоже не любит перезапись, и подход там в некотором смысле аналогичен оптическим дискам: писать каждый раз в новые (пустые) страницы (как в сессии на CD/DVD), а грязные блоки тереть в фоне или по необходимости. Значит ли это, что флеш в этой вашей иерархии ниже CD? В моем манямирке, например, он был бы выше HDD из-за практически бесплатного random access. Да и вся эта иерархия должна/упирается в random access. Чем сложнее, тем ниже.

259 4 янв, 12:01 259 1320595

>>1301036 (OP)
Давно здесь https://beginners.re/ книгу стали раздавать только на почту?

Ответы2059720605

260 4 янв, 12:06 260 1320597

>>1320595
https://10minutemail.com

# OP 261 4 янв, 12:39 261 1320605

>>1320595
В прошлом году всё было нормально.

262 8 янв, 14:10 262 1323047

Если я вызову какую-нибудь функцию (допустим, Beep из kernel32) с помощью invoke, введенные в стек параметры ф-ии будут вытолкнуты, но будут ли сохранены значения регистров? Или это необходимо сделать самостоятельно?

Ответы23058

263 8 янв, 14:19 263 1323058

>>1323047
> самостоятельно
Да, ищешь что такое stdcall и читаешь.
esi, edi, ebx сохранятся

Ответы23064

264 8 янв, 14:28 264 1323064

>>1323058
Я правильно понимаю, что stdcall — это только про автоматическое выталкивание параметров из стека? А про регистры я ничего не нашел (inb4: плохо искал). Где искать информацию о том, какие регистры будут затронуты той или иной функцией?

Ответы23473

265 8 янв, 23:22 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 схоронить иногда, это уж как компилятор код сгенерит.

266 9 янв, 23:52 266 1324091

Не тот тред, наверное, но тут разбираются. Решаю я задачи из всяких ctf, категории pwn, в которой нужно вскрыть программу и написать эксплойт, чтобы забрать флаг. Так вот, столкнулся с проблемой. Есть одна программа, я могу управлять ее стеком, ну и соответственно адресом возврата и сохраненными регистрами. Elf x64, включены защиты (PIE, NX, Stack Canary). Я бы не растерялся и устроил ROP-цепочку, разрешил бы исполнение стека и не парился, но в коде нет сисколлов. К программе прилагается еще и libc, т.е, наверное, предполагается, что я должен воспользоваться функциями оттуда, но так как еще и ASLR работает (не знаю, должен ли он быть по условиям, но у себя не выключал) - я не могу просто прыгнуть по адресу libc + смещение нужной функции.
Что можно сделать в такой ситуации? Есть ли что почитать?

Ответы2411124119

267 10 янв, 00:11 267 1324111

>>1324091
А, и Full RELRO тоже включен, но тут это уже наверное роли не играет.

268 10 янв, 00:28 268 1324119

>>1324091
Без кода сложно, но
> ASLR работает
и
> я могу управлять ее стеком
может быть, ты можешь раскрыть адреса, получив содержимое стека?

Ответы25177

3 Кб, 453x115
269 11 янв, 20:21 269 1325177

>>1324119
Спасибо. Осталось немного.

270 14 янв, 01:55 270 1326382

С полного нуля можно вкатиться?

Ответы2639626438

271 14 янв, 02:41 271 1326396

>>1326382
Изучи программирование немного, например Си. Потом уже можешь beginners.re читать.

Ответы26414

272 14 янв, 04:56 272 1326414

>>1326396
А без си никак нельзя?

Ответы26422

273 14 янв, 05:24 273 1326422

>>1326414
Ты хочешь бегать без ног?

Ответы26425

279 Кб, 256x256
274 14 янв, 05:59 274 1326425

>>1326422
Просто скинь литературу.

Ответы26439

275 14 янв, 07:13 275 1326438

>>1326382
Asm обычно осваивают с нуля. Так как это самый низкоуровневый из человеко-понимаемых языков. В 20 веке конечно и на машинных кодах писали, но сейчас такие вряд ли существуют.

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

Ответы26576

276 14 янв, 07:15 276 1326439

>>1326425
Курс молодого бойца (язык Си) http://cs.mipt.ru/c_intro

Ответы26588

277 14 янв, 14:28 277 1326576

>>1326438
Двачую. На асме обычно вставки делают, пару другую функций и все.

278 14 янв, 15:12 278 1326588

>>1326439
По ассемблеру. Если бы мне нужен был си, я бы пошёл в другой тред

Ответы26623

279 14 янв, 16:46 279 1326623

Я ничего не понимаю, почему так сложно? В первой дизассемблированной строке программа делает push 0xffffffff
Во второй push 0x4841а
Операнда нет, как понять зачем, нигде не написано.
Пойду грузчиком работать.

>>1326588
beginners.re имеет два названия. Реверс инжиниринг для начинающих и понимание языка ассемблера. Так что пробуй его.

Ответы26685

sage 280 14 янв, 18:44 280 1326685

>>1326623
> Операнда нет, как понять зачем, нигде не написано.
Показывай код. Или сам смотри, что будет дальше - если вызов функции, то смотри, что эта функция будет делать с аргументами. А может это просто SEH-фрейм, если вызова функции нет. В любом случае, понимание кода с неба не свалится, чтобы понять зачем, надо сидеть, смотреть, что происходит и постоянно пытаться понять. Вангую, что ты во втором пуше пропустил цифру. Особенно если это винда.

Ответы26711

281 14 янв, 19:44 281 1326711

>>1326685
>Показывай код
https://pastebin.com/Xd3JWGFg
>во втором пуше пропустил цифру
Да
>если это винда
Да, это PE.

Ответы26817

282 14 янв, 19:56 282 1326717

есть ли перспектива реверс-инженера? если да то какая? был ли опыт удаленки у кого нибудь?
как стать успешным и зарабатывать 300к\сек?

Ответы26895

sage 283 14 янв, 22:24 283 1326817

>>1326711
Бляяя, еще и AT&T, фу таким быть. Я угадал про SEH. Там пушится -1 (для exception level вроде, это крестовая фишка), потом адрес нового обработчика исключений и адрес фрейма предыдущего хэндлера, чтобы сформировать linked list. Получившийся фрейм обработчика пишется в _NT_TIB (fs:0), чтобы винда о нем узнала (потом он удаляется перед ret в обеих ветках). В принципе, весь этот код можно по большей части просто игнорировать, но если ты хочешь узнать подробнее, в сети полно туториалов про внутреннее устройство SEH и про обработку исключений в C++. А вот дальше по 401015 там начинается уже какая-то настоящая работа, вызываются какие-то функции, на которые нужно смотреть, чтобы понять, что делает эта. Я бы на твоем месте выкинул objdump - он пригоден максимум для инспекции сгенерированного компилятором кода, и взял бы вместо него IDA, которая для людей или хотя бы r2, который не для людей.

Ответы26842

284 14 янв, 22:44 284 1326837

Сколько вы зарабатываете?

Ответы26841

285 14 янв, 22:54 285 1326841

>>1326837
Тысяч 50 в Москве и меньше в мухосрансках. Боги получают сотни кесов, впрочем как и везде.

Ответы28065

sage 286 14 янв, 22:56 286 1326842

>>1326817
> еще и AT&T
Извините
>я был прав это SEH
Спасибо большое, почитаю
>ida pro
У тебя случайно слитой 7.2 версии нет от китайцев? Говорят там inheritance завезли.

Ответы26862

sage 287 14 янв, 23:39 287 1326862

>>1326842
> Говорят там inheritance завезли.
Очень плохо завезли, мне не понравилось. Обычное крестовое наследование, которое struct foo : bar { ... } уже давно есть, но оно неудобное, поэтому подход с созданием трех struct (struct ClassName { ClassNameVtable ptr, ClassNameFields fields }) по-прежнему рулит.

288 15 янв, 00:38 288 1326895

>>1326717
Нет, никакой, нету, никак.

289 16 янв, 05:22 289 1327611

>>1301036 (OP)
https://mega.nz/#!Bc9VVAYC!Vk6CFlW6VIoskLNgDKXbsL6FacDQeOKe6LX92wNicKY
Я совсем криворукий ебанат или у всех файл скачивается но внутри он пустой ?

Ответы2761427869

sage 290 16 янв, 05:35 290 1327614

>>1327611
Тебе вьювер 404 показывает при попытке открыть?
1) Правой кнопкой, свойства, разблокировать, опционально положить в директорию с путем, не содержащим странных символов (мало ли, может ты китаец).
2) Или можешь взять какой-нибудь 7-Zip, и распаковать .chm-ку им.
3) Или можешь смотреть в SumatraPDF, а не в дефолтном вьювере.

Ответы27615

291 16 янв, 05:44 291 1327615

>>1327614
Большое спасибо Sumatra помогла ♥

292 16 янв, 15:17 292 1327869

>>1327611
его кстати вирустотал ругает говорит бэкдор

Ответы2798028092

293 16 янв, 17:06 293 1327980

>>1327869
ты что совсем еблан ? :D

294 16 янв, 18:34 294 1328065

>>1326841
Ну я так и знал, что у вашего брата зп хуйня полная

sage 295 16 янв, 19:04 295 1328092

>>1327869
Там еще примеры в комплекте. На какой-то из них и агрятся. Я же предлагал распаковать chm и посмотреть.

sage 296 16 янв, 23:53 296 1328283

Есть RGB-мышь, сложно ли под нее будет написать ПО, чтоб самому управлять цветом/временем его переключения/зависимость от событий и т.д.

Ответы28289

297 17 янв, 00:01 297 1328289

>>1328283
Снифаешь USB чем угодно (например, USBlyzer или даже просто wireshark), берешь libusb, пишешь. Если окажется, что винда не дает работать с HID из юзермода, пишешь драйвер или реверсишь драйвер производителя железа.

Ответы28290

sage 298 17 янв, 00:02 298 1328290

>>1328289
Спасибо за быстрый ответ и наводку.

299 17 янв, 10:58 299 1328415

Когда вы уже все сдохнете со своим старьем?

Ответы2842229175

300 17 янв, 11:30 300 1328422

>>1328415
> Когда вы уже все сдохнете со своим старьем?

Никогда.

А вот что абстрактушки будут делать в ближайшие пару лет (а у них на носу полный конец развитию кремния по муру и заканчиваются техпроцессы, напомню) - вот это действительно вопрос.

Ответы2842428427

301 17 янв, 11:34 301 1328424

>>1328422

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

А вот вы скоро станете не нужны. Как только наш умный компилятор сможет скомпилить микросервис на Rustе в восьминогую Attiny на 4кб.

Ответы28536

302 17 янв, 11:38 302 1328427

>>1328422
Что тебя заставляет байтоёбить?
Разве может адекватный человек такой хуйней заниматься?

Ответы28536

303 17 янв, 14:34 303 1328536

>>1328427
Адекватный чему?

>>1328424
Мечта любого русского - ковер-самолет и скатерть-самобранка.

Ответы29018

9 Кб, 305x165
304 17 янв, 23:01 304 1328945

Как люди находят находят уязвимости на Pwn2Own? какие скилы нужны для этого? щас дохуя технологий, думаю нет смысла учить все подряд, а нужно сфокусироваться на чем-то одном. Как думаешь анон?

Ответы28994

305 18 янв, 00:08 305 1328994

>>1328945
Правильное питание, спорт, здоровый сон и регулярный секс это все что нужно.

Ответы29035

306 18 янв, 00:35 306 1329018

>>1328536
Зарепортил подпиндосного русофоба и нацпредателя.
Жди гостей.

307 18 янв, 01:00 307 1329035

>>1328994
а дальше?

Ответы29042

308 18 янв, 01:26 308 1329042

>>1329035
А дальше в монастырь.

sage 309 18 янв, 04:44 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!

Ответы29123

310 18 янв, 08:34 310 1329123

>>1329091
Попробуй edb/r2

311 18 янв, 11:09 311 1329172

>>1301036 (OP)
Но ведь, если я тру зондофоб мне же энивей придется создавать свой ЯП с нуля. Откуда я знаю что в ваших FASM.EXE не вшит руткит от васяна? И вы тоже этого знать не можете. А иначе ваш асм нахер не нужен. Поэтому в чём полезность? Набраться опыта перед написанием своего продукта?

Ответы2927629622

312 18 янв, 11:17 312 1329175

>>1328415
Нет, ты

313 18 янв, 13:29 313 1329276

>>1329172
Исходники полностью открыты. Берешь тот же самый фасм и собираешь из исходников. Я проверял.
Ну, конечно на этапе сборки можно что угодно добавить и без исходников. Да и тысячи строк на ассемблере не перечитать.
Но минимальное приложение генерится байт в байт.
Главное верить.

sage 314 18 янв, 21:17 314 1329622

>>1329172
> И вы тоже этого знать не можете.
fasm достаточно небольшой, а взаимодействия с системой там настолько мало, что можно взять дизасм и поискать руткит от васяна самостоятельно.

Ответы29728

315 18 янв, 21:51 315 1329642

Прочитал Reverse Engineering для начинающих из шапки. Есть книги посвежее? 2015-2018 год, желательно для x64 архитектуры?

Ответы29665

316 18 янв, 22:23 316 1329665

>>1329642
В этой области ничего не меняется десятилетиями, ничего принципиально нового ты в свежей книжке не найдешь. Если тебе нужен x86-64 ассемблер, так и ищи книгу по ассемблеру, их дохуя. Если интересно про реверсинг, почитай SAT/SMT by example от того же юричева, что-нибудь про скриптинг ida (и про ее микрокод), про инструментирование, про всевозможные frida и прочие unicorn. Все гуглится по кейвордам, но в основном это не книжки, а выступления, слайды и статьи.

317 18 янв, 22:36 317 1329676

Никогда не писал на ассемблере, на Си и плюсах тоже. В общем не знаю ни про регистры, ни чего такого низкоуровневого. Столкнулся с протоколом MODBUS. Ничего не понимаю. Книг и статей на эту тему почти нет. Посоветуйте что делать, что читать, как практиковаться?

Цель понять разницу между микроконтроллером, промышленным контроллером, микропроцессором, ПЛИС, ПЛК, IOT, СБИС, короче вот это вот все. Понять как их программируют. И понять как программировать управление устройствами по MODBUS.

Ответы2981636650

318 18 янв, 23:21 318 1329728

>>1329622
>Использовать один руткит чтобы прочекать смежный
Понел, ребят ))

Ответы29745

sage 319 18 янв, 23:37 319 1329745

>>1329728
Все врут! А еще в процессоре бэкдоры. Используй таблички в мануале от интела и декодируй инструкции вручную. В бумажке с ручкой бэкдоров пока вроде не находили?

Ответы2980734794

320 19 янв, 01:23 320 1329807

>>1329745
Intel ME норм бэкдор, не спрячешся.

321 19 янв, 01:58 321 1329816

>>1329676
>микроконтроллером
Маленький процессор со своим ПЗУ.
>промышленным контроллером
Здоровая дура, рулящая технологической линией. Программируется на визуально понятном васяну-слесарю языке, а не на С.
>микропроцессором
Строгое определение не дам, в большинстве случаев взаимозаменяемо с "микроконтроллер
>ПЛИС
Программируемая логическая интегральная схема. СБИС, стуктуру которой можно изменить доступным оборудованием. Не лезь пока сюда.
>ПЛК
То же, что и промышленный (логический) контроллер
>IOT
Маркетинговый термин, обозначающий чайники с подключением к интернету. Забудь его нахуй.
>СБИС
Сверхбольшая интегральная схема. Вся современная электроника кроме ПЛИС является СБИС, хотя понятие "сверхбольшая" устарело, т.к. термин введён при царе горохе.

https://radiokot.ru/start/mcu_fpga/avr/ - это ответит на некоторые вопросы.
Если есть время и деньги, купи ардуино и ковыряйся с ним по урокам с ютуба.
В любом случае, микроконтроллерами занимаются в /ra. Спроси там, они тебе укажут путь.

Ответы2982129824

322 19 янв, 02:23 322 1329821

>>1329816
Большое спасибо.

323 19 янв, 02:31 323 1329824

>>1329816
> Маленький процессор со своим ПЗУ.
Главное в нем не пзу, а наличие готовых интерфейсов для ввода-вывода, обычно разнообразных. Чтобы было чем микроконтроллировать.

> хотя понятие "сверхбольшая" устарело
Хуй знает, я периодически встречаю в литературе, но только как VLSI - русскоязычные термины умерли вместе с советским союзом.

Ответы29825

324 19 янв, 02:33 324 1329825

>>1329824
>Главное в нем не пзу, а наличие готовых интерфейсов для ввода-вывода, обычно разнообразных. Чтобы было чем микроконтроллировать.
Ну в ЦПУ на домашних пеках тоже есть готовые интерфейсы зачастую. Может ты и прав, но в таком случае грань между микроконтроллером и (микро)процессором нечёткая.

>Хуй знает, я периодически встречаю в литературе, но только как VLSI - русскоязычные термины умерли вместе с советским союзом.
Да, но с тех пор эта "большевизна" выросла в сотни раз. Термин используют, но смысл его несколько утрачен.

Ответы29828

325 19 янв, 02:38 325 1329828

>>1329825
> Ну в ЦПУ на домашних пеках тоже есть готовые интерфейсы зачастую
Ну как бы да, грань стирается, а десктопные CPU все больше превращаются в SoC.

326 19 янв, 07:25 326 1329894

>>1301036 (OP)
G

327 25 янв, 00:55 327 1334386

Есть один экзешник, созданный в Delphi 7 и созданный на-отъебись. Из него можно извлечь какие-то метаданные, связанные с создателем? Имя учётной записи, под который была запущена среда разработки, названия объектных файлов etc.
Просто исходники проебались двенадцать лет назад, однао я предполагаю, что они могут быть на одной из подчинённых мне машин.

Ответы34387

sage 328 25 янв, 01:04 328 1334387

>>1334386
Кидай сюда, посмотрим. Или сам посмотри банальным hex-редактором или strings (от руссиновича или линуксовым). Но максимум, что ты сможешь получить - путь к проекту и, возможно, названия некоторых юнитов.

Ответы34769

329 25 янв, 20:49 329 1334769

>>1334387
Есть IDA. Вбрасывать сюда пока немножко ссу. Корпоративная хрень, сам понимаешь.

Ответы34815

330 25 янв, 21:23 330 1334794

>>1329745
В табличках пробелы, а в пробелах тоже зонды!

sage 331 25 янв, 21:48 331 1334815

>>1334769
IDA славится своей способностью хуево детектить паскалевые строки. Смотри в strings. Боишься консольки - запусти и посмотри в Process Explorer, там в свойствах процесса есть соответствующая вкладка.

Ответы35200

332 26 янв, 14:28 332 1335200

>>1334815
Тут лучшим вариантом будет iDR, а не IDA

Что ж творится-то с этими числами с плавающей запятой!? 333 28 янв, 12:59 333 1336604

38 Кб, 825x4067 Кб, 418x114

Почему из порядка E в 32-битном числе с плавающей запятой отнимается 127, я понимаю. Но как оказалось, это происходит только в нормализованных числах. Разобрался в том, что такое нормализованное и денормализованное число, все понял, за исключением одного момента: КАКОГО ХРЕНА В ДЕНОРМАЛИЗОВАННЫХ ОТ ПОРЯДКА ВЫЧИТАЕТСЯ 126!?

Ответы36611

16 Кб, 867x409
334 28 янв, 13:17 334 1336611

>>1336604
Я еще немного подумал над этим. Кажется, я нашел в этом смысл. Видимо, это происходит потому, что минимальная экспонента в нормализованном числе с плавающей запятой одинарной точности равна 2-126. Денормализованные числа, как я понял, заполняют разрыв между нулем и минимальным значением нормализованного числа.
Минимальное нормализованное число — 1.0 × 2-126.
Максимально денормализованное число — 0.11...11 × 2-126.
То есть, эти два значения находятся почти впритык друг к другу, что было бы невозможно, если бы экспонента в денормализованном числе была равна 2-127.

Сам спросил — сам ответил, мдауш.

335 28 янв, 14:06 335 1336650

>>1329676
>Цель понять разницу между
> микроконтроллером

Микросхема

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

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

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

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

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

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

> ПЛИС

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

, IOT

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

, СБИС

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

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

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

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

Тебе точно в /wrk/

335 28 янв, 14:06 335 1336650

>>1329676
>Цель понять разницу между
> микроконтроллером

Микросхема

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

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

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

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

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

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

> ПЛИС

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

, IOT

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

, СБИС

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

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

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

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

Тебе точно в /wrk/

Показать весь текст

336 30 янв, 10:41 336 1337774

Помню был сайт, где обучение ассемблеру сделано в виде игры. Еще вроде создатели игры запилили курс на Coursera. Помогите найти.

Ответы37801

337 30 янв, 12:07 337 1337801

>>1337774
Сайта не подскажу, зато рекомендую поигорять в Human Resource Machine

Ответы38241

338 30 янв, 22:01 338 1338241

>>1337801
>Human Resource Machine
Это чё хоть такое то?

Ответы39273

146 Кб, 780x573
339 31 янв, 22:32 339 1338878

Есть какая-то строка на ассемблере, которая "ломает комп"? Как деление на 0 в Си, например

Ответы38989

sage 340 1 фев, 00:19 340 1338989

>>1338878
> ломает комп
Что?
> Как деление на 0 в Си, например
ud2

341 1 фев, 01:39 341 1339013

Здравствуйте, пилюкаю на плюсах, потихоньку ковыраю asm, возник вопрос, вот есть функция, которая возвращает какую-то структурку
как пример:

struct S1{
float x;
float y;
};

extern "C" S1 getval()

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

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

https://godbolt.org/z/VosXLv

dвыглядит будто от уехавшей вершины стека отсчитывает и оттуда значение берет, или я что-то не правильно понял.

Ответы39018

sage 342 1 фев, 02:00 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 результат влезает, но возвращают его все равно вторым способом.

sage 342 1 фев, 02:00 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 результат влезает, но возвращают его все равно вторым способом.

Показать весь текст
Ответы390203902239273

343 1 фев, 02:10 343 1339020

>>1339018
но я не вижу EAX:EDX в asm листинге, что мне выдает godbolt.org

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

и дальше там уже для принта.

Ответы39021

sage 344 1 фев, 02:15 344 1339021

>>1339020
Пятая и девятая строки по твоей ссылке. Но да, оно одновременно делает для printf даблы из флоатов. Т.е., положили регистр в стек, взяли movss в SSE-регистр, сконвертировали cvtps2pd в дабл и положили movsd в стек дабл.

Ответы39022

345 1 фев, 02:24 345 1339022

>>1339018
я просто читал немного про call-convention, и не до конца нашел инфу, как именно написать совместимую с с++ кодом асм функцию и возвращать такие жирные объекты. Оно понятно, что для жирного объекта надо работать с указателем. >>1339021

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

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

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

З.Ы. благодарствую за ответы.

Ответы39027

sage 346 1 фев, 02:40 346 1339027

>>1339022
> т.е функция на самом деле будет уже иметь один входной параметр, который будет у нее ожидать компилятор?
Да, неявный параметр, который всегда на стеке (даже если __fastcall) и всегда первый: если бы было S1 getval(int foo, int bar), фактически компилятор генерил был код для S1∗ getval(S1 ∗result, int foo, int bar).

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

Зачем нужно копирование, я не знаю, но так было еще в VC++98. Хотя если пофантазировать, при таком подходе у функции есть возможность послать нахуй эту временную структуру (и аргумент с указателем на нее) и возвращать, например, адрес какой-то глобальной константной структуры.

Ответы39029

347 1 фев, 02:43 347 1339029

>>1339027
спасибо тебе, добрый человек.

348 1 фев, 14:26 348 1339273

>>1338241
Игорь, обучающая ассемблеру https://gog.com/game/human_resource_machine
>>1339018
> <EDX:EAX>
Это какой-то синтаксис, или ты для удобства так сделал? Выглядит забавно
>>1339034
Пошёл нахуй

Ответы39510

349 1 фев, 15:08 349 1339291

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

Ответы39297

350 1 фев, 15:17 350 1339297

>>1339291
Да, возможно

Ответы39298

351 1 фев, 15:19 351 1339298

>>1339297
Вот прям точно-точно?

Ответы39366

352 1 фев, 16:36 352 1339366

>>1339298
Можно и без IDA сделать.

Ответы39399

353 1 фев, 16:46 353 1339370

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

Ответы393743951039637

354 1 фев, 16:53 354 1339374

>>1339370
>какая инструкция выполняется прямо сейчас
Которая в кернеле контекст переключает.

355 1 фев, 17:56 355 1339399

>>1339366
Это мне уж точно не под силы.

sage 356 1 фев, 20:27 356 1339510

>>1339273
> для удобства так сделал?
Да. У IDA/HexRays для регистров в прототипах используется нечто похожее, а двоеточие - это обычный способ указывать пару регистров (в том числе, и в манаулах интела).

>>1339370
По нажатию мыши выполняется миллион инструкций, и хорошо еще, если один. Тебе стоит прочитать что-нибудь про оконные сообщения в винде.

357 1 фев, 21:51 357 1339637

>>1339370
Начни с изучения своей операционной системы.

358 3 фев, 21:52 358 1341127

сложнее ли асм в изучении более высокоуровневых языков программирования?

Ответы41144

359 3 фев, 22:24 359 1341144

>>1341127
Сам по себе асм гораздо проще. Но если писать что-то сложное или быстрое, всплывает куча нюансов, требующих глубокого понимания работы процессора и памяти, как минимум.

360 6 фев, 00:31 360 1342567

https://www.youtube.com/watch?v=rX7lIfQlqOo
Реверсачеры, смотрите какие у нас няшные коллеги существуют!
Хотели бы себе такого сеньора в команду?

Ответы42687

sage 361 6 фев, 09:25 361 1342687

>>1342567
У вас жён нет?

Ответы42812

sage 362 6 фев, 13:46 362 1342812

>>1342687
Наши жены фронтендеры ряжены

Ответы4363443635

363 7 фев, 21:38 363 1343634

>>1342812
Я сам фронтендер...

364 7 фев, 21:40 364 1343635

>>1342812
Наши жёны в двадэ изображЁны
Вот где наши жёны!

Ответы43640

63 Кб, 506x666
365 7 фев, 21:48 365 1343640

>>1343635
Привет!

Ответы43672

115 Кб, 600x600
366 7 фев, 22:40 366 1343672

>>1343640

367 8 фев, 23:08 367 1344305

Реверсачеры, можете пояснить за гипервизоры простым языком? Нагуглил только сложную инфу на ангельском, не могу пока осилить технически. С меня как всегда.

Ответы4436244383

368 9 фев, 02:28 368 1344362

>>1344305
>простым языком
Нахуй не нужны.

Ответы4478244820

369 9 фев, 09:14 369 1344383

>>1344305
Если не умеешь гуглить, то еще не дорос до такого.

https://www.sim-networks.com/wiki/about-virtualization-technology
https://www.ibm.com/developerworks/ru/library/cl-hypervisorcompare-xen/index.html

370 9 фев, 21:25 370 1344782

>>1344362
Нужны. Ведь это самый верх безопасности, эмуляторы должны выстрелить! Скриньте

Ответы44933

sage 371 9 фев, 22:15 371 1344820

>>1344362
На каждой первой VPS.

372 10 фев, 02:16 372 1344914

Реверсач, либо я тупой либо я не знаю что.
Есть 25 значений по адресу adress + offset, каждое из них занимает по 1 байту. Мне нужно выдернуть 11 значение из этого списка и изменить его. Делаю так:
uint8_t* adress + offset |= 1 << 0xb;

И это не работает. Где ошибка?

Ответы45013

373 10 фев, 07:50 373 1344933

>>1344782
>эмуляторы
Какие еще эмуляторы. Гипервизоры это другое. И у них другое назначение.

374 10 фев, 13:02 374 1345013

>>1344914
Ну посмотри какое значение указателя у тебя получается. Ты не 11й берёшь, а 2^11й. Не выпендривайся и напиши адрес + офсет + 11

Ответы45016

23 Кб, 349x306
375 10 фев, 13:25 375 1345016

>>1345013
Вот пикрил. Как мне записать в какую-то одну ячейку если они все по одному адресу?

Ответы4503945049

376 10 фев, 14:00 376 1345039

>>1345016
В приведённом коде ты меняешь указатель, а не значение.
Int value = (address+offset+11)
value |= 1<<n
(Address+offset+11) = value
Так делай

Ответы45041

377 10 фев, 14:01 377 1345041

>>1345039
Макака съела звёздочки
В первой и третьей строке перед скобкой звёздочка

378 10 фев, 14:07 378 1345049

>>1345016
Да это же флаги, тебе с битами работать надо.

379 12 фев, 04:41 379 1346146

Реверсач, какие есть тулзы/гитхабы для дампа из режима ядра? Нужно сдампить один процесс, но он накрыт йоба-протекторами и его драйвер защищает.

Ответы47829

53 Кб, 656x755
380 13 фев, 13:55 380 1346819

Сука, никак не могу взломать эту ебанную парашу, и отвязать авторизацию при входе

Ответы47242

381 14 фев, 05:10 381 1347242

>>1346819
Жаловаться пришел?

Кидай сюда, поможем

Ответы60337

382 14 фев, 16:40 382 1347539

Сап реверсач. Есть ли отладчики с возможностью писать комментарии к строкам кода, дампу памяти и прочему? Чтобы можно было просто щелкнуть на определенный фрагмент стека и в поле рядом написать "здесь хранится пароль", просто ситуация когда в одну функцию вложили функций 7, то постоянная сверка этих ebp+78, ebp+160 выносит мой мозг.

Ответы47616477354777647827

383 14 фев, 19:55 383 1347616

>>1347539
Ты не поверишь, но даже OllyDbg даже без плагинов это умеет.

Ответы47735

sage 384 14 фев, 22:28 384 1347735

>>1347539
IDA позволяет нормально обозвать локальные переменные, смотреть содержимое наведением мыши, в том числе для указателей и т. д., но зато ее отладчик неудобен в остальных моментах.

>>1347616
> OllyDbg даже без плагинов это умеет
Там можно только к коду комментарии писать. Или ты обладатель тайного знания о том, как переименовать LOCAL.1 во что-то более внятное или знаешь как заставить OllyDbg распознать локальную переменную, когда он сам не осилил? Без плагинов.

Ответы47751

385 14 фев, 22:55 385 1347751

>>1347735
Я к этому
>Есть ли отладчики с возможностью писать комментарии к строкам кода, дампу памяти и прочему?

386 15 фев, 00:12 386 1347776

>>1347539
IDA Pro же. Не отладчик, но умеет вызывать другие, как я понимаю.

387 15 фев, 00:15 387 1347779

>>1306485
СИ
И

388 15 фев, 03:22 388 1347827

>>1347539
В иде так можно. Можно подключить дебагер, во время выполнения прокоментить и даже сохранить все это. Гугли мануалы.

389 15 фев, 03:26 389 1347829

>>1346146
Бамп, анончики! Нужно сдампить. Драйвер не дает это сделать, следовательно надо дампить тоже из ядра... Допустим напишу драйвер, как мне его загрузить-то? Патчгвард не даст же.

Ответы47830

390 15 фев, 03:33 390 1347830

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

Ответы47834

391 15 фев, 03:56 391 1347834

>>1347830
Так из ядра он не может предотвратить дамп. Все что мне нужно это получить структуру процесса. Даже если он там что-то похукает, что уже сомнительно, я могу свой callback раньше зарегистрировать.

Ответы47835

392 15 фев, 04:09 392 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. Ну и как вариант - попытаться заинжектить свою длл

Ответы47862

393 15 фев, 06:07 393 1347862

>>1347835
О, благодарю, статья очень годная. Почти все способы не подойдут.
Там процесс Denuvo накрыт + драйвер как говорил уже ранее.
Все таки без танцев с бубнами ничего не выйдет. Буду пробовать тогда писать драйвер дампить через mmcopyvirtualmemory и грузится в тестовом режиме с тестовой подписью, мб пройдет такое.

Ответы50851

394 19 фев, 12:33 394 1350851

>>1347862
Нашел свежий проджект на гитхабе. Драйвер + обертка на сисярпе. Может пригодится кому.https://github.com/EquiFox/KsDumper

Ответы52219

395 20 фев, 07:41 395 1351189

Кто знает пароль для инсталляции ida pro 7.2?

396 21 фев, 05:38 396 1351753

Аноны, как в windbg просмотреть весь лист вызовов? Например я вызываю функцию CreateProcess в юзермоде и хочу просмотреть всю иерархию вызовов и в ядре тоже.

397 21 фев, 21:46 397 1352219

>>1350851
Эх, а апекс из гифки на торрентах до сих пор нормальной нет.

Ответы52992

398 22 фев, 17:50 398 1352656

>>1301036 (OP)
Как изменить вектор в таблице прерываний?
mov 0000:[0180h], ax почему-то не работает (TASM, если чё).

Ответы52689

399 22 фев, 18:32 399 1352689

>>1352656
>mov 0000:[0180h], ax
mov ds/es (а то даже и ss), 0
mov ds:[0180h], ax

Ответы5269152699

400 22 фев, 18:33 400 1352691

>>1352689
Ну и word ptr, если нужен.

Ответы52699

401 22 фев, 18:47 401 1352699

>>1352689
>>1352691
>mov es, 0
>Illegal use of segment register

Ответы52704

402 22 фев, 18:52 402 1352704

>>1352699
Ну епт, xor ax, ax/mov es,ax

Ответы52705

403 22 фев, 18:57 403 1352705

>>1352704
Спасибо.

3 Кб, 325x67
404 23 фев, 00:58 404 1352848

>>1301036 (OP)
Кто-нибудь знает, как в ARMовском ассемблере поместить программу по произвольному адресу в памяти? По умолчанию программа располагается начиная с адреса 0х00000008, а надо, что бы она располагалась, например, по адресу 0х20002000. Я пробывал использовать DCD 0x20002000, но это меняет только регистр-указатель, при этом программа остаётся по старому адресу. Хорошо работает команда SPACE 0x400, но если адрес слишком большой, то компиляция занимает ооооочень много времени. Подскажите, может быть сталкивались с этим?

Ответы52858

405 23 фев, 01:26 405 1352858

>>1352848
Обычно это делается опцией линкера

Ответы53014

406 23 фев, 12:39 406 1352992

>>1352219
Там дамп почти в 1гб выходит + денуво сверху, никто не будет ковыряться в этом скорее всего.

Ответы53593

12 Кб, 626x193
407 23 фев, 13:10 407 1353014

>>1352858
Я редактировал эти параметры, но это ничего не меняет.

Ответы53045

408 23 фев, 13:53 408 1353045

>>1353014
Почему у тебя x/o пустой и r/o нулевой, хотя ты явно хочешь переместить именно код? Алсо, попробуй org задать в ассемблере, хуй знает. Это Keil?

Ответы53056

409 23 фев, 14:14 409 1353056

>>1353045
>Это Keil?
Ага.

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

>Почему у тебя x/o пустой и r/o нулевой
Это дефолтные значения, я менял и то, и то, потом менял только x/o, потом менял только r/o, но всё равно в отладчике команды как были по адресу 0x00000008 так и остались.

Ответы53190

410 23 фев, 15:55 410 1353190

>>1353056
> Unknown opcode ORG , expecting opcode or Macro
Печально. Как же вы там живете с этим? Это ж ебнуться можно все по секциям раскладывать.

У тебя на пике есть use memory layout from target dialog. Пробовал? Ну или смотри скрипт линкера, хуй знает.

Ответы5319653317

411 23 фев, 15:58 411 1353196

>>1353190
Вертани дерево?

412 23 фев, 17:34 412 1353317

>>1353190
>У тебя на пике есть use memory layout from target dialog. Пробовал?
ОФК пробывал. И остальные галочки тоже. Ничего не помогает.

413 23 фев, 22:46 413 1353593

>>1352992
Блин, видимо мне не поиграть в эту бесплатную игру.

414 25 фев, 11:27 414 1354658

Допустим есть маленькая утилита (единственный exe файл на 14 мб), которая конектится раком через хуй к дискорду/инторнету и проверяет, совпадает ли ключ. С чего начать, если я совсем нуфажик, но могу в кодинг. На ней наверняка висят какие-то защиты, как вообще к ней поступиться?

Ответы547275510755199

415 25 фев, 13:18 415 1354727

>>1354658
>маленькая утилита
>на 14 мб

Ответы5474454854

416 25 фев, 13:31 416 1354744

>>1354727
На фоне браузеров размером под гигабайт - вполне себе маленькая, лол.

417 25 фев, 15:53 417 1354854

>>1354727
Я предполагаю, что в нем упаковано несколько файлов. Ну так с чего начать?

418 25 фев, 18:40 418 1354992

А кроссплатформенный ASM бывает?

Ответы55013

419 25 фев, 18:57 419 1355013

>>1354992
LLVM IR, ну и всевозможный байткод виртуальных машин (JVM, CIL).

Ответы55039

420 25 фев, 19:24 420 1355039

>>1355013
А чего тогда Джава не работает со скоростью плюсов хотя бы?

Ответы5510855180

421 25 фев, 21:08 421 1355107

>>1354658
14 мб это дохуя, уверен она под протектором. Нихуя ты не сделаешь без знаний, забей. Можешь трафик понюхать, обычно это самое слабое место васянских утилит.

422 25 фев, 21:10 422 1355108

>>1355039
Потому что это не асм, а асмоподобная интерпреиируемая прослойка

423 25 фев, 22:16 423 1355180

>>1355039
Работает.

424 25 фев, 22:33 424 1355199

>>1354658
Лучше взломай установочный пароль для IDA Pro 7.2

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

прикол в том, что установщик уже есть, остался пароль только

Ответы5571256037

425 26 фев, 15:23 425 1355712

>>1355199
Не, ну я знал что китайца малость ебанутые, но чтоб надеяться в installshield пароль в отладчике увидеть...
им бы аниме рисовать

Ответы56067

426 27 фев, 00:15 426 1356037

>>1355199
Вот еще есть крякнутый 7.0
https://downloadly.ir/software/programming/hex-rays-ida-pro-1/

Ответы5606756083

427 27 фев, 01:23 427 1356067

>>1355712
Он увидел там шифр
>>1356037
Крякнутый 7.0 у всех есть

428 27 фев, 02:04 428 1356083

>>1356037
Товарищ майор.. Как поживаете?

429 27 фев, 18:30 429 1356325

Тру системники тут? Есть фуллскрин приложение Opengl/directx. Возможно ли как-то поверх него разместить свое окно или просто делать отрисовку? Работаю в ядре.

Ответы5634556365

430 27 фев, 19:17 430 1356345

>>1356325
Конечно, всякие фрапсы так и делают.

Ответы56434

431 27 фев, 19:48 431 1356365

>>1356325
Хуки пиши да рисуй поверх.

Ответы56434

432 27 фев, 21:33 432 1356434

>>1356345
Всякие фрапсы для взаимодействия внедряются в процесс. Меня это не устраивает.

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

Ответы5676856989

433 28 фев, 19:21 433 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/

Ответы57190

84 Кб, 800x450
434 28 фев, 22:22 434 1356933

Мир, братья. Чуваки, а где взять доп материал по Нарваху(ну, там программы, вот это всё)

Ответы56988

243 Кб, 900x1248
435 28 фев, 23:51 435 1356988

>>1356933
А всё, братья, нашёл, спасибо. Может добавите в шапку?
http://ricardonarvaja.info/WEB/INTRODUCCION AL CRACKING CON OLLYDBG DESDE CERO/EN FORMATO DOC/

436 28 фев, 23:53 436 1356989

>>1356434
За отрисовку отвечают WDDM драйвера, все туда сходится
У драйвера есть регистрируемые функции

Ответы57190

437 1 мар, 14:47 437 1357190

>>1356768
Это не работает без внедрения в процесс.

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

438 3 мар, 20:03 438 1358584

Реверсач, почему у экзешника упакованного Темидой только 1 импорт? lstrcpy. Я знаю, что можно вызывать динамически винапи через GetProcAddress + GetModuleHandle, но тут только lstrcpy. Как это работает, может объяснить кто-нибудь?

Ответы58605

439 3 мар, 20:13 439 1358589

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

sage 440 3 мар, 20:41 440 1358605

>>1358584
> Я знаю, что можно вызывать динамически винапи
TEB->PEB->PEB_LDR_DATA->InLoadOrderModuleList->kernel32.dll, ну и дальше можно парсить экспорты.

Ответы590005902667219

441 4 мар, 14:31 441 1358984

Начал я тут обмазываться 8051 и у меня встал вопрос по поводу передачи данных через UART. Вот смотрите, предположим есть у нас 8051 с частотой 12МГц и делителем 12 подключенный через последовательный кабель к компу. Комп настроен на передачу данных со скоростью 9600 бод. Судя по расчетам вот тут: http://www.keil.com/c51/baudrate.asp самая близкая скорость, которую мы можем получить на микроконтроллере это 10 417 бод, что не соответствует нашим стандартным 9600, хотя во всех инструкциях к 8051 пишут, что для 9600 нужно ставить именно эту скорость. Так вот, как это работает, если скорость передачи и приема не совпадают?

442 4 мар, 15:21 442 1359000

>>1358605
Осторожна, тут хакир!

443 4 мар, 15:21 443 1359001

Пацаны у вас тут че хакирский тред??? Научите плиз хакирить

Ответы5901859031

444 4 мар, 16:01 444 1359018

>>1359001
Тащемта тут ничего сложно нет. Просто берешь и без задней мысли ксоришь дворды в уме.

445 4 мар, 16:23 445 1359026

>>1358605
Ааааа, вот это уже похоже на правду, но все равно не совсем понял, хоть и писал недавно PE парсер.
Получаю PEB своего процесса А как его получить без вызова апи то?, смотрю в список загруженных модулей, там нахожу нужный, применяю парсер, нахожу адреса функций А что дальше? Как их вызывать-то? Или напрямую можно, так как модуль внутренний?.

Ответы59065

446 4 мар, 16:29 446 1359031

>>1359001
Значение знаешь?

Ответы59034

447 4 мар, 16:34 447 1359034

>>1359031
Неа, не знаю.

448 4 мар, 17:47 448 1359065

>>1359026
> А как его получить без вызова апи то?
[fs:0x18]+0x30 в 32-битном коде и [gs:0x30]+0x60 в 64-битном.

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

Ответы59076

449 4 мар, 18:11 449 1359076

>>1359065
>[fs:0x18]+0x30 в 32-битном коде и [gs:0x30]+0x60 в 64-битном.
Спасибо, погуглю. Не знал что так можно.

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

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

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

Ответы59086

450 4 мар, 18:26 450 1359086

>>1359076
> не хардкодили же они все это дело
Хардкодили. Поэтому там по-хорошему должен быть фолбек, если оно не знает текущую винду.

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

Ответы59108

7 Кб, 410x262
451 4 мар, 18:57 451 1359108

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

Еще о системных вызовах. В ядре же я могу похукать функции все равно, правильно? А отследить, что функция была вызвана из юзермода можно?

452 5 мар, 17:54 452 1359655

Да бомбит блять! Почему windbg такой кривой?
dt nt!_eprocess <address> все показывает, хочу вытянуть из eprocess peb, пишу dt nt!_eprocess peb <address> И НИХУЯ! dt nt!_peb
<address> тоже нихуя. Зато когда рекурсией прохожусь dt nt!_eprocess <address> -r, то все показывает. Как правильно то делать? Делаю как в книжке написано windows internals и выводится только название структуры, но не ее поля.

Ответы59725

453 5 мар, 19:34 453 1359725

>>1359655
>Почему windbg такой кривой?
Проблемы индейцев.

Ответы59754

454 5 мар, 20:03 454 1359754

>>1359725
А чем ядро дебажить-то?

455 6 мар, 20:36 455 1360336

> 14/02/19
>Кидай сюда, поможем
Обхохочешься, когда узнаешь, что я хочу сделать.

Ответы6033760338

2 Мб, 154x273
456 6 мар, 20:37 456 1360337

>>1360336
>>1347242
блять сука нахуй

457 6 мар, 20:38 457 1360338

>>1360336
Ширус?

Ответы60339

458 6 мар, 20:39 458 1360339

>>1360338
Нет. Хочу отвязать авторизацию от чита, чтобы он работал без авторизации, авторизация мой главный враг, и я должен его уничтожить

459 6 мар, 21:59 459 1360384

235 Кб, 1125x62441 Кб, 592x338

Посоны, тут это
https://github.com/NationalSecurityAgency/ghidra

Ответы60461605226052360699

460 6 мар, 23:11 460 1360461

>>1360384
> MUCH better than other tools
Радар наконец умрет в мучениях?

Ответы60699

461 7 мар, 05:07 461 1360522

>>1360384
>www.nsa.gov
>download
Посоны... тут это... анальные зонды пихают.

Ответы60699

462 7 мар, 05:18 462 1360523

>>1360384
Так себе, да еще и на джабе. Идачка без плагинов и то лучше.

Ответы60699

463 7 мар, 17:05 463 1360699

>>1360384
>>1360461
>>1360522
>>1360523
У меня одного их сайт не открывается?
403
А на гитхабе ничего нет.

Ответы60709

464 7 мар, 17:56 464 1360709

>>1360699
У тебя просто страна неправильная. Смени на правильную, и все будет.

465 8 мар, 15:00 465 1360973

Кто умеет по фасту виндовые dll ревёрсить?
http://rgho.st/66crCxNyS
Будучи запущенной через rundll32 в фоне есть n-1 ядер и перестает есть когда открывается диспетчер задач. (для аналогичных прог остановка не прописана). Рядом лежали dll-ки для SSL, отсылал в сеть менее килобайта данных, по крайней мере на момент когда спалил.
В ресурсах рандомные джипеги и описания из видосов на ютубе (и ссылки). Выглядит как рандом чтобы наебнуть чексуммы.
Брат умрёт?

Ответы6122961248

466 8 мар, 21:43 466 1361161

Реверсачеры. Что-то я запутался, помогайте. Есть хеллоуворлд, в нем функция складывающая два числа, как мне удаленно вызвать эту функцию с нужными параметрами и получить результат?

Ответы61184

467 8 мар, 22:31 467 1361184

>>1361161
В смысле удаленно? Уточни.

Ответы61635

468 8 мар, 23:42 468 1361200

Я тут недавно в глупую историю попал из за пароля, поставленного на hdd в биосе. Никто не знает, как там шифрование работает? Или может дадите ссылку почитать где это хорошо расписано именно с программными деталями?

Ответы6122961248

469 9 мар, 00:44 469 1361229

>>1360973
Там какой-то пиздец, если честно. Нихуя не понятно +xmm
>>1361200
Тебе лучше в сторону mhdd копать. Есть варианты со стандартным паролем, а есть и без.

sage 470 9 мар, 01:54 470 1361248

>>1361200
> Никто не знает, как там шифрование работает?
Гугли ATA security.

>>1360973
Оно тебе надо, очередной CPU-майнер реверсить? Удоли, да и хуй с ним.

471 9 мар, 21:45 471 1361635

>>1361184
Вызвать функцию с параметрами в чужом процессе и получить результат.

Ответы61646

sage 472 9 мар, 22:01 472 1361646

>>1361635
Read/WriteProcessMemory, CreateRemoteThread, оберточка, которая дергает функцию.

Ответы6179162267

473 10 мар, 03:44 473 1361791

>>1361646
А без CreateRemoteThread можно обойтись?

474 10 мар, 10:53 474 1361838

41 Кб, 694x59718 Кб, 565x127

Вкатываюсь в изучение FASM. В тех гайдах, по которым я учусь- написано, что скомпилированная программа должна запускаться под Шindows. Но она сука не запускается. Выдаёт мне эту ошибку. Он вроде как компилирует в DOS-овский формат .com
Но судя по тому что написано в гайде- он должен прекрасно запускаться

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

Что я делаю не так?

Ответы6188762092

475 10 мар, 12:54 475 1361887

>>1361838
После WinXP в составе винды нет NTvdm, только в dosbox запустится, либо под чистым досом.
Такие дела.

Ответы61994

476 10 мар, 15:35 476 1361976

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

477 10 мар, 16:22 477 1361994

>>1361887
>После WinXP в составе винды нет NTvdm
Пиздишь. Его нет в 64 битных сборках, как хрюши, так и дейсяточки. В 32 битных всё на месте.

sage 478 10 мар, 18:48 478 1362092

>>1361838
В дополнение к тому, что тебе уже написали, ты делаешь не так
> use32

479 10 мар, 23:27 479 1362267

>>1361646
Погуглил, на сколько я понял мне нужно либо хукать функцию либо инжектить шеллкод, если я хочу обойтись без CreateRemoteThread ?

Ответы62272

480 10 мар, 23:35 480 1362272

>>1362267
Тебе в любом случае инжектить код, который либо что-то делает сразу, либо грузит длл, которая что-то делает. Можно, например, SetThreadContext сделать, можно традиционный SetWindowsHookEx, зависит все от того, что ты делаешь и зачем.

21 Кб, 535x524
481 11 мар, 02:02 481 1362334

Сап, читаю Калашникова
Остановился на этой программе, не могу понять почему отладчики творят какую-то херню, хотя в обычном DOS выполнении строка выводится
Почему отладчик сразу прыгает на адрес смещения Lab_1?

Ответы623386235062352

63 Кб, 241x209
482 11 мар, 02:21 482 1362338

>>1362334
Да это же противоотладка через конвеер.

483 11 мар, 03:31 483 1362350

>>1362334
> не могу понять почему отладчики творят какую-то херню
Я хуй знаю, что именно имел в виду Калашников 9090h там явно не зря, но по-моему, он промахнулся. Независимо от того, как именно работает конкретный отладчик если это, конечно, не "внешний" отладчик какого-нибудь эмулятора, вроде отладчика DOSBox или Bochs: втыкает ли он int3 в первый байт строки (6), или взводит TF, или у него аппаратные точки останова я, кстати не помню, они в 16-битном режиме есть?, но что бы он ни делал, при попытке пошагового выполнения это должно вызвать исключение, чтобы отладчик получил управление. После выполнения первой же инструкции sp у тебя указывает на lab1, стек растет в обратную сторону, поэтому при передаче управления обработчику исключения (прерывания) процессор положит в стек cs:ip и flags, т.е., 6 байт минимум, и тем самым потрет инструкции из строк (6)-(7)-(8), плюс обработчик тоже что-нибудь свое в стек положит, эти данные потрут строку (5) и, возможно, еще немного PSP. Если отладчик втыкал int3, то он восстановит кусок инструкции в (6), или не восстановит, похуй - все равно при возврате из обработчика прерывания вместо кода будут байты адресов, т.е., мусор.
То же самое произойдет в том редком случае, когда после выполнения одной из первых трех инструкций тикнет таймер, или произойдет еще какое-нибудь аппаратное прерывание, поэтому это не антиотладка, а говно генератор псевдослучайных багов.

Ответы62352

sage 484 11 мар, 03:47 484 1362352

>>1362334
>>1362350
Лол, а поведение без отладичка-то я и не описал. В общем, в 90h - это инструкция NOP, в строке 7 две эти инструкции кладутся в стек (т.е., SP=SP-2, word[SP] = 9090h), затирая тем самым инструкцию в строке (8), поэтому если каких-то внешних прерываний не будет, то вместо int 20h выполнится два nop, и потом управление уйдет в строку (10).

485 13 мар, 08:37 485 1363296

Подскажите, как в асме работать с COM-интерфесами?

Ответы63509

sage 486 13 мар, 16:33 486 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

14 Кб, 637x175
487 15 мар, 20:42 487 1364936

Читал я о том, что в винде в х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 битных процессах, но всё же.

Ответы65067

sage 488 16 мар, 00:50 488 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 (из ядра).

489 16 мар, 05:12 489 1365211

Чем профилировать asm? У кого-нибудь был удачный опыт использования Valgrind в Win64? Поделитесь плз.

Ответы65602

490 16 мар, 19:43 490 1365542

Аноны, нужно вычислить к какому драйверу обращается приложение по хэндлу. Хукаю DeviceIoControl, получаю нужный хэндл. Что дальше с этим хэндлом можно сделать чтобы узнать как можно больше инфы о драйвере?

Ответы6556065694

38 Кб, 1021x302
491 16 мар, 20:26 491 1365560

>>1365542
В процесс-хакере нашел object address. Это что? Ссылка на KEPROCESS структуру?

sage 492 16 мар, 21:33 492 1365602

>>1365211
> Чем профилировать asm
vtune amplifier уровнем ниже, wpt/xperf уровнем выше.

493 16 мар, 23:11 493 1365694

>>1365542
Нашел кажись, анонасы. Вот может пригодится кому: NtQueryInformationFile msdn

494 19 мар, 12:43 494 1367012

http://asmworld.ru/uchebnyj-kurs/010-slozhenie-i-vychitanie-s-perenosom/
В этой статье написано про "слово"
> Запись word означает, что мы переопределяем размер переменной (она объявлена как DWORD) и обращаемся к младшему слову.
Собственно чё это значит?

Ответы6701767020

495 19 мар, 12:54 495 1367017

>>1367012
Да.

496 19 мар, 12:58 496 1367020

>>1367012
Что не понятно? Что такое слово? Или разложение более крупной единицы на младшую/старшую часть?

Ответы67027

497 19 мар, 13:27 497 1367027

>>1367020
И то и то не понятно

Ответы6708067081

498 19 мар, 16:10 498 1367080

>>1367027
В начале было слово.
И слово было 2 байта.

499 19 мар, 16:13 499 1367081

>>1367027
Машинное слово - платформозависимая хрень, равна разрядности регистров процессора (покури хотя бы вики). В твоей статье используется 16 разрядный режим (см комментарии к коду), word - 16 бит/2 байта. Двойное слово - 32 байта.

Ответы67083

512x512
500 19 мар, 16:14 500 1367083

>>1367081
>Двойное слово - 32 байта

Ответы67084

501 19 мар, 16:15 501 1367084

>>1367083
Очепятался жи

502 19 мар, 19:21 502 1367168

Есть свежая годная литература по ядру, написанию драйверов, минифильтров и вот этого всего? Винда офк.

503 19 мар, 21:01 503 1367219

>>1358605
Надеюсь ты еще здесь. Пытаюсь тоже самое провернуть в ядре. Знаю что можно динамически получать адрес RtlInitUnicodeString + MmGetSystemRoutineAddress. Можно улучшить как-нибудь?

99 Кб, 800x560
504 20 мар, 01:34 504 1367341

Ответы67363

37 Кб, 450x621
505 20 мар, 01:39 505 1367344

Ответы67363

506 20 мар, 06:45 506 1367363

>>1367341
>>1367344
Проиграл. Но мне тащемта чисто в исследовательских целях нужна эта информация, тарищ майор. Спортивный интерес так сказать. А потом в швитые шышыа понаеду к маломягким работать за котлету вечнозеленых.
Ну и у юзверей давно нет доступа к ядру, какие там руткиты.

507 20 мар, 16:19 507 1367560

>>1318205
Бля, какой же ты олдфаг, братишка.

558 Кб, 1052x2076
508 20 мар, 17:52 508 1367602

Антоны, подскажите диалект

Ответы6764567693

509 20 мар, 19:55 509 1367645

>>1367602
На TMS320C6000 похоже.

510 20 мар, 21:01 510 1367693

>>1367602
PCMCAS500, кажется.

511 20 мар, 23:50 511 1367848

Как представить 5 байтов в ассемблере как 10 тетрад, аноны?
Как их хранить? Мне нужно сделать между ними хоr и я черт его знает как их разделить пополам.

Ответы67852

512 20 мар, 23:55 512 1367852

>>1367848
xor / 2

Ответы67861

513 20 мар, 23:58 513 1367854

Test

514 20 мар, 23:59 514 1367855

Bump

515 21 мар, 00:08 515 1367861

>>1367852
Мне нужно байт разделить на две тетрады.
То бишь 10101010 нужно поделить на 1010 и 1010 и между ними сделать хоr, если я правильно задание понял.
(Дан массив из 5 байтов. Рассматривая его как массив из 10 тетрад, найти «исключающее или» всех 10 тетрад.)
Не к спеху на самом деле, сдача только через неделю, но задание странное. Я нипонил.

516 21 мар, 00:14 516 1367865

10101010 and 00001111 = 00001010
10101010 and 11110000 = 10100000
...
PROFIT

Ответы6786868396

517 21 мар, 00:17 517 1367868

>>1367865
после этого:
00001010 нормально
10100000 shr 4 = 00001010
и A xor B

Ответы6787768396

518 21 мар, 00:44 518 1367877

>>1367868
Можно еще поксорить сначала все числа как есть, байтами: a0 ^ a1 ... ^ a4, а потом уже поксорить куски результата, как сделал ты.

ОП, АЛЛО? ГДЕ ПЕРЕКАТ? ТЫ ЖИВ ТАМ ВООБЩЕ?

Ответы69177

519 22 мар, 13:12 519 1368396

>>1367868
>>1367865
Я тут поклацал, поклацал в турбоассемблере(такие дела, у нас изучают это).
И выводит вроде не то.
Help, please :3
Может я не то делаю, и нужно с байтами по другому.
https://ideone.com/bdBqe3

Ответы68436

520 22 мар, 13:19 520 1368399

43 Кб, 510x47721 Кб, 642x433

Должно выводить 26, а выводит 146.

Ответы68444

521 22 мар, 14:06 521 1368436

>>1368396
>https://ideone.com/bdBqe3
24 строка. У тебя BX уехал в ебеня.
А в 25 вообще обнуляешь.
А в 28 берешь [BX+1]
Хуйня какая-то.

522 22 мар, 14:20 522 1368444

>>1368399
4 xor 7 xor 11 xor 6 (23=00010111, 0001 xor 0111=0110=6)xor 5 = 11

523 22 мар, 21:57 523 1368623

Аноны, есть у кого windows internals 6 edition part 2 на русском?

524 24 мар, 05:53 524 1369177

>>1367877
>ОП, АЛЛО? ГДЕ ПЕРЕКАТ? ТЫ ЖИВ ТАМ ВООБЩЕ?
Подожди сейчас сделаю. Если бы не ёбанная рекапча, давно бы сделал.

525 24 мар, 06:08 525 1369181

ПЕРЕКАТЪ>
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
>>1369180 (OP)
<ПЕРЕКАТЪ

Тред утонул или удален.
Это копия, сохраненная 24 апреля 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion