Этого треда уже нет.
Это копия, сохраненная 1 июня 2022 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
1624544039066.png281 Кб, 400x600
ASM & Reverse engineering №14 /asm/ # OP 2079195 В конец треда | Веб
В этом треде мы изучаем самый компактный и низкоуровневый язык Ассемблер и смежную с ним область: Реверс-инженеринга (RE).

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

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

Книги по RE:
Денис Юричев: "Reverse Engineering для начинающих"- бесплатная современная книга на русском языке. К прочтению вкатывающимся и прочим ньюфагам обязательна!
Прямая ссылка - https://yurichev.org/b564f46f1c207b2dbc84a2bd4a41ed4c/
Рикардо Нарваха: Введение в реверсинг с нуля, используя IDA PRO https://yutewiyof.gitbook.io/intro-rev-ida-pro/
Введение в крэкинг с помощью OllyDbg https://backoftut.gitbook.io/intro-cracking-with-ollydbg/

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 Torrent Edition 7.2 | 7.0 | 6.8 на выбор. Иногда ограничения версий x86/x64, патчинг, вылеты прилагаются
2) IDA Freeware 7.0 - бесплатная для некоммерческого использования Важные функции/процы/форматы не завезли, саппорт все обращения ксорит побайтово.
3) IDA Home - тем, кто реверсит для хобби 365$ в год, ага. Умеет на выбор PC|ARM|MIPS, обычные и х64. Завезли IDAPython, но забыли Decompiler.
4) Ghidra - главный конкурент IDA Pro, разработка NSA под свободной лицензией. Тормозной Java UI, гипотетические звездно-полосатые анальные зонды в комплекте.
5) Radare 2 | Cutter - консольный + гуй на Qt дизассемблер. Умеет в Ghidra decompiler. Предположительно нужен только клиническим, не умеющим в скачивания торрентов, пользователям альтернативных ОС.
6) Hiew - Hex-редактор и легкий x86|64|arm дизассемблер за копейки. AV-ресечеры текут, вирьмейкеры боятся, поклонники st. Криса грят малаца.
7) Остальное

Отладчики:
1) x64dbg - х86/64 юзерспейс виндовый отладчик с открытым кодом не Olly же в 2020, верно?;
2) WinDbg - родной виндовый дебаггер от MS 32/64 битные приложения, драйвера, анализа аварийных дампов - это все к нему;

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

Книги по ассемблеру:
"Архитектура компьютера" Э. Таненбаум - https://www.libgen.is
Юров В.И: Assembler http://booksdescr.org/item/index.php?md5=73957AEFEADCB7F0C112DCAED165FEB6
С.В. Зубков: Assembler. Язык неограниченных возможностей.
Randall Hyde: The Art of Assembly Language http://booksdescr.org/item/index.php?md5=9C0F88DC623FCE96A4F5B901ADCE95D3

Сайты по ассемблеру:
Замена почившему wasm.ru- https://wasm.in/ , архив старого сайта https://rutracker.org/forum/viewtopic.php?t=407571 или восстановленный https://vxlab.info/wasm/index.php.htm
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
https://conspectuses.blogspot.com/2019/03/fasmg.html

Дизассемблер онлайн:
https://onlinedisassembler.com/

Сборник компиляторов онлайн:
https://godbolt.org/

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

Документация Intel:
https://software.intel.com/en-us/articles/intel-sdm
Документация AMD:
https://developer.amd.com/resources/developer-guides-manuals/
Документация Arm:
https://developer.arm.com/documentation/

Разное:
Michael Abrash's Graphics Programming Black Book Special Edition http://www.phatcode.net/res/224/files/html/index.html
http://www.phatcode.net/res/224/files/html/index.html
https://www.agner.org/optimize/
http://booksdescr.org/item/index.php?md5=5D0F6DBC1410E10BC489167AFE8192DF
https://www.cs.cmu.edu/~ralf/files.html
https://www.sandpile.org/
http://ref.x86asm.net/index.html
https://pnx.tf/files/x86_opcode_structure_and_instruction_overview.png
http://www.jegerlehner.ch/intel/

Предыдущие:
№9 https://2ch.hk/pr/arch/2019-11-11/res/1439555.html (М)
№10 https://2ch.hk/pr/arch/2020-03-11/res/1499956.html (М)
№11 https://arhivach.net/thread/560997/
№12 https://2ch.hk/pr/res/1748635.html (М) https://arhivach.net/thread/594187/
№13 https://2ch.pm/pr/res/1837856.html (М)
2 2079234
Ну хоть нормальный перекат запилили в этот раз, уже прогресс
sage 3 2079347
>>079234
Да вы охуели. Предыдущий недотред никому не нужен, а вы еще и второй сделали!
4 2079586
>>079347

> недотред никому не нужен


Именно. Из-за отсутствия нормального треда засирается весь /pr/. Сейчас на борде, так-то, две #asm нити, помимо этой, и тьма вопросов в нюфаг-треде
Msdos-icon.png1 Кб, 600x600
5 2080764
Рейтаните идею накатить ДОС на виртуалку и учится асму по старым книгам. Взлетит?
6 2080768
>>080764
По моему дилетантскому мнению, я не программист и вообще не касался ассемблера для ПК, идея крайне сомнительная. Если хочешь что попроще, то можешь изучать на примере AVR или чего-нибудь аналогичного. Оно хотя бы относительное современное и при этом совсем простое.
7 2080803
>>080764
kolibriOS или freedos
8 2080829
>>080803
А смысл? Идея в том чтобы учиться по старым 16-битным книгам, а это все уже новое.
9 2080830
>>080768

>изучать на примере AVR


А где его взять? Это же для микроконтроллеров, на виртуалке не взлетит
10 2080836
Аноны, вкатился немного в nasm, хочеца идти дальше в сторону reverse engineering. Что почитать/посмотреть о c++ reverse engineering? То есть о сопоставлении c++-шного сахара с конструкциями на asm.
11 2080843
>>080836
Ну дебажишь свой код и сопоставляешь. В чем проблема?
Читать тут все то же самое имхо.
12 2080844
>>080830
Самое тупое это взять https://ru.wikipedia.org/wiki/Proteus_(система_автоматизированного_проектирования) Будет предельно наглядно, но может быть не очень удобно. Или в Atmel Studio симулятор уже встроен. Можно и любой другой симулятор использовать совместно с gdb. Для других микроконтроллеров аналогично.
13 2080877
>>080829
Зачем учиться мёртвому? Это современные системы с хорошими условиями для программирования на асме.
14 2080879
>>080843
Ну мало ли есть каноничный материал
15784211653770.mp4307 Кб, mp4,
1272x776, 0:14
15 2080901
Вкатился
16 2080987
>>080877

>Зачем учиться мёртвому


Под мертвое есть куча годного контента: книги, туториалы, справочники, исходники и т.д. Причем некоторые из них признанная классика, типа старой книги Хайда.
Под фридос же вряд ли что-то лучше найдется чем унылые доки.
17 2081096
Книга за paywall. Денис, сцука, дай книгу!
18 2081117
>>080764
В досе будешь работать в 16битном режиме
19 2081144
>>080844
Спасибо, попробую вкатиться. Правда пока не очень понятно какие именно программы на этом нужно писать.
20 2081146
>>081096
1 доллар, епта. Не разоришься.
21 2082122
>>080901
Вкатывай сразу исходники, чего уж там
22 2082557
>>082122
https://dropmefiles.com/RJDuD
Не опозориться бы) Критику приветствую.
23 2082564
Может глупый вопрос: хочу асмом веб освоить. Что почитать? Ну там редактирование пакетов TCP и далее. Какие фунцкии надо использовать, с примерами.
24 2082628
>>082564
Читай то, что читают когда хотят освоить веб без асма. Тебе придется использовать апи для доступа к сети, и неважно на каком языке ты к нему будешь обращаться
ExtremeWays.mp410,3 Мб, mp4,
640x360, 4:03
25 2082666
>>082628
Это какое-то табу? Вся мяготка асма в сети. Просто везде стандартные - как работает память и push ax. А тут обсуждения как написать свою ОС на асме. Серьёзно? Теперь надо бояться того что ты умный или как?
26 2082691
Просто представьте, вот мой код>>080901 и исходник. Я в асме дно(не смогу написать ОС). У меня задача - сделать печаталку клавиатуры. И как по логике должно работать, оно не работает. Но мне стоило поменять, чтобы функция чтения клавиатуры вызывалась до того как инициализируется окно программы, и вот результат.
Высокоуровневые не смогут так сделать, проверил.
А вы тут обсуждаете всякие ос, хуету. Никто вам не заплатит за это, заплатят только за то когда ты поменяешь байтик на нужный.
27 2082903
>>082666
Что этот поток сознания значит?
28 2082908
>>082691
Если оно работает не так как должно по логике значит это ошибка в твоей логике а не в компьютере
29 2082970
>>082903
Ты правда не понимаешь? Поясняю. Асм это инструмент для работы с информацией, при помощи асма с информацией можно делать любые манипуляции, вообще любые то есть. Но это конечно же никому не интересно пока это происходит на твоём локальном пк. При всём этом существуют миллионы языков для веба, но они не могут делать любые манипуляции с информацией, как это может делать асм. И вот я вижу что на яве всё расписано для веба, а на асме ничего нет вообще, глушняк. Конечно же юнные вкатывальщики будут вкатываться в яву например, чем в асм.
Ну и поэтому у меня вопрос: а не искусственно ли это табу?
30 2083006
>>082970
Ты на ассемблере писал хоть раз? У тебя в голове о нем какие-то маняпредставления, поясняю: в асм ты можешь делать все угодно только в режиме ядра, в режиме пользователя ОС будет игнорировать команды вроде in, out, и прочие
Т. е. у тебя есть два варианта работы:
1. Пишешь все в пространстве пользователя, но тут увы придется использовать апи, а условный win32 одинаков и для асма и для си и для джавы и для питона. Уже на этом уровне весь функционал для твоего хацкерства или как ты это в голове считаешь доступен - можешь дрочить пакеты вплоть до сетевого уровня.
На асме никто веб не пишет потому-что это долго, тяжело, много багов и лучше условные кресты какие-то
2. Ты можешь высрать драйвер для работы с канальным/физическим уровнем, драйвер работает в режиме ядра и все команды будут доступны. Но тут созревает вопрос нахуя это нужно, вся задача этих уровней просто передать поток битов и все.
31 2083016
>>082970
Webassembly?
32 2083050
>>083006
Возможно он имеет ввиду реверс сетевых протоколов или что-то подобное
мимо
33 2083061
>>083050
Пишет про то что можно делать любые манипуляции с помощью ассемблера, следовательно пишет не про реверс а про программирование на нем. Но вот ведь незадача - другие языки вполне себе могут менять байты в потоке байт, вот и любые манипуляции
34 2083127
>>083061
Ну вот я не хочу чтобы >>080901 это печаталось. Хочу чтобы это вот посылалось сразу в сеть. Чёто нет такого на других языках.
Абстракции я понимаю и рассчитываю на то, что и ты тоже их понимаешь.
35 2083132
Например, как мне написать программу так, чтобы я написал сообщение в блокноте, а после запуска проги моё сообщение из блокнота отправилось в этот тред? Не перепечатывалось, а именно чтобы вот отправилось как будто я его написал и нажал кнопку отправить.
36 2083136
А зачем асм то нужен тогда?
37 2083156
И вообще, мне не нравиться как работает веб. Я знаю как работают программы на асме(даже игры). Но веб работает крайне убого.
38 2083162
>>083127
Сохранение в буфер текста -> Отправка в сокет, эта хуйня есть во всех ЯП
Ты знаешь что такое API?
39 2083400
>>083162
Примеров бы.
Постоянно получается какой-то непродуктивный диалог.
40 2083402
Анон просто придумал какие-то фантастические свойства асму и удивляется, что это не так.
Тот же спп компиляется в такой же машкод. Всё что ты можешь сделать на асме, можно сделать и на спп.
41 2083407
>>083402
Ладно, примем по умолчанию что я долбоёб. Как например добавить тэг к тсп пакету, инкапсуляцию там и такие вот всякие штуки. Примеры нужны. Возможно у меня каша в голове, но я не знаю с чего начать её разгребать.
42 2083408
>>083407
Насколько можно понять твои посты, то что ты хочешь называется драйвер фильтр в шинде.
43 2083443
Короче, я сформулировал задачу, мне нужно написать прогу которая просто пульнёт созданный мной пакет на указанный адрес. Думаю надо с этого начать.
Я наверно заебал уже, но надеюсь прийти к общему знаменателю.
44 2083774
>>080764
Зачем на виртуалку, тогда уж на флешку и учиться не по книгам, а как Крис Касперски, по хардкорному - смотреть воздействие каждой инструкции на процессор и память, через DEBUG.COM ;)
45 2083797
>>083774
Bochs умеет эмулировать практически полноценный процессор, там можно и через debug.com смотреть
46 2083905
>>079195 (OP)

>IDA Freeware 7.0


Уже IDA v7.6
>>081146

>1 доллар, епта


Я бы ему сраный аналог бакса в битке/эфире намайнил, но на пулах обычно вывод от $20-30((
Сори, но кэш не стану переводить.
47 2084088
>>083774

>


>Зачем на виртуалку, тогда уж на флешку и учиться не по книгам, а как Крис Касперски, по хардкорному - смотреть воздействие каждой инструкции на процессор и память, через DEBUG.COM ;)


Современные компы не умеют в ДОС.
48 2084466
>>084088
Обоснование? Реальный режим с 16 битной сегментной адресацией поддерживается..
49 2084469
>>083797
Можно и так, так даже удобнее, кстати QEMU насколько мне известно, тоже?
50 2084478
>>084469
Насчет Qemu н знаю, но на bochs успешно заводил оригинальную Windows 95 и там прям четенько второй пень себя ведет, можно любые древние тулзы использовать.
51 2084489
>>084478
Я на qemu, win 2000 когда то устанавливал, чтобы воспользоваться утилитой для "прошивки" старых Nokia успешно прошил 2100 :)
52 2085050
>>079195 (OP)
Аноны, поясните за порядок префиксов в инструкциях х86. Я в курсе что процу похуй на порядок, но меня больше интересует как обстоит дело с компиляторами. У них соблюдается порядок по группам или у всех по разному?
sage 53 2085052
>>084469
Если сравнивать QEMU и bochs, то последний гораздо лучше поддерживает все тонкости, особенно если это касается реального режима. Т.е., условный бутлоадер с переходом в защищенный режим может отлично работать в QEMU, но падать в bochs и на реальной машине.
54 2085427
https://github.com/NationalSecurityAgency/ghidra
Там Гидра10 релизнулась, а мы даже не отпраздновали в треде..
Good night, sweet Ilfak
sage 55 2085702
>>085427
А интерфейс нормальный уже завезли?
56 2086599
MOVSI,0[SI]
Что делает эта команда?
picrlll.jpg151 Кб, 668x616
57 2086604
>>080764
Короч, я все-таки решил вкатываться, хоть анон и не одобрил,
читаю пикрелейтед. Земля мне пухом, братишки.
04.png50 Кб, 704x541
58 2086702
>>086599
Копирует в регистр si слово по адресу который хранится в si
59 2086765
>>086604
Тоже учился по этой книжке в нулевых.
60 2087130
>>085427

>Good night, sweet Ilfak


1. Делаем фри тулзу
2. Разоряем коммерческого конкурента
3. Прекращаем поддержку фритулзы
4.?????
5. PROFIT
61 2087417
>>087130
Проблема:
Она не просто фри, а фри и опен сорс.
image.png89 Кб, 1599x851
62 2087968
>>079195 (OP)
Вкатываюсь.
image.png47 Кб, 730x481
63 2087970
>>079195 (OP)

>включите компуктер


как же я люблю методички ебаных вузиков
64 2088005
>>087970
Ну хоть не ЭВМ.
65 2088092
>>087970
1.Включите компьютер, опишите в тетради те процессы которые наблюдаете на экране
66 2088128
>>088092
проиграл
67 2089233
Все прерывашки из ITV 0x00-0x0F относятся только к бивусу, а всё что выше - к дос и шиндус кернел, правильно?
возможно я очень слеп, но не могу нагуглить подтверждение или опровержение
68 2089273
>>087968

>8085


>8 бит


Зачем тебе какой-то симулятор аутистов, когда есть DOSbox и божественные 16 бит?
sage 69 2089303
>>089233

> 0x00-0x0F относятся только к бивусу


Исключения процессора обрабатывает каждая уважающая себя ось. Ремапнуть их нельзя. А вот все остальное можно ремапить как угодно.
70 2089334
>>089273
практика на нём, я вообще не ебу, что такое ассемблер, пока что как обезьянка выполняю, че мне говоритметодчика
71 2089402
>>089273
Вагную, что учебная программа не менялась как раз с конца семидесятых. А вообще начинать с любого хуй-86 это такое себе, студенты ведь потом будут думать, как утята, что так и должно быть. Блядь, брали бы хотя бы 6502, если такие ретрограды ебаные, там хотя бы архитектура вменяемая да и досконально разобраться можно как сам чип устроен http://www.visual6502.org/JSSim/ Сука, как же я ненавижу рашкинское образование: прогрессивное человечество дало им RISC-V, всё под опен сорс, нахуй, - нет, хочу жрать говно. Пиздец.
72 2089613
А можно ли работать с процессором на уровне битов? Даже не байтов, как в машинном коде, а именно потока битов?
73 2089652
>>089613
Что ты высрал? Ты и так с ним работаешь на уровне битов
74 2089674
>>089652
Напрямую. Бит отправил, бит получил.
75 2089687
>>089674
Ну так ты и получаешь их так, поток битов. Если взять за некий промежуток то получаешь по одному биту
76 2089710
>>089687
Я немного не об этом. Даже байт это уже абстракция над битами. Можно ли обойтись даже без байтов?
77 2089713
>>089710
Бит это абстракция над электрическим сигналом.
Чтобы обойтись без всего - покупаешь процессор, изучаешь его цоколёвку, для интеловских есть в документации. Потом или покупаешь или сам делаешь сокет который будет соединятся с выходами процессора. Вот и все, можешь дрочить процессор электрическими сигналами, разумеется нужно знать элеткротехнические спецификации которые используют процессоры, но и они указаны в интеловских документах
78 2089722
>>089713

> Бит это абстракция над электрическим сигналом.


Это уже ненужное усложнение. Минимально возможная программная абстракция это бит. А то что электрон это абстракция над какими-нибудь кварками, с точки зрения софта практического применения не имеет.
79 2089725
>>089233

>0x00-0x1F


позднефикс

>>089674
ты про

and al, 0x01
mov bl, al

?
тогда сколько угодно
так или иначе адресация побайтовая
80 2089750
>>089725

> and al, 0x01


> mov bl, al


Это байты + ассемблерные инструкции. Бит имеет два значения - ноль и целковый 1. Так вот, вопрос в том, можно ли с процессором работать на уровне битов, или байт (машинный код) это минимум?
81 2089905
>>089402
а у нас ебланы просто говорят, что мол им не идут современные программы на комп, поэтому дали этуй хуйню, преподша ещё говорила, что мол даже на виндовс 98 пойдёт
82 2089910
>>089402

>RISC-V


Ну вообще-то набор инструкций в ранних x86 был гораздо проще и он лучше подходит для обучения.
83 2089960
>>080764
Hy смотря какие цели. Я вообще изучаю асм в эмуляторе спектрума
84 2089961
>>089750
Не совсем понятно твоё "на уровне". И это байт с машинными командами. Таким образм можно копировать маскировать, устанавливать биты.
85 2090012
>>089750
Можно, разрешаю.

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

>an al, 01b ; добавить второй по порядку бит


>mov bl, al

86 2090035
>>089722
Минимально возможная программная абстракция данных - это минимально адресуемая ячейка памяти в данной архитектуре. Примем за минимально адресуемую ячейку памяти байт.
Минимально возможная программная абстракция кода - машинная инструкция, которая храниться как массив байтов некой длины.
С памятью можешь работать как с массивом бит изменяя байты трогая при этом отдельные биты. С процессором только через машинные инструкции, большего на программном уровне ты добиться не сможешь. Можно отправить несуществующие инструкции или недоступные инструкции но он их вроде обычно игнорирует как будто там nop'ом все засрано
sage 87 2090301
>>089402

> прогрессивное человечество дало им RISC-V,


Это не прогресс. Из-за того, что в RISC-V целиком и полностью состоит из необязательных фич, и из-за того, что он открытый - получится линукс. Куда ни ткни в линуксе: у одного альса, у другого пульса. Хочешь под это писать - страдают все. У третьего пайпвайр - у одного пердит, у второго микрофон не работает, у третьего вообще звука нет.
ass.PNG32 Кб, 768x732
88 2090810
Есть шансы долго и упорно перечитывая вкурить это с уровнем математики пятого класса?
89 2090829
>>090810
Ну там же прмеры приведены. По примерам все понятно, даже если в определение тяжело въехать. что за книжка?
90 2090856
>>090810
Но ведь это и есть математика пятого класса...
91 2091834
>>083132
Да вабщем та все просто. Для этой задачи подойдет даже питон, что тут думать та? Открываешь файл на чтение, считываешь сообщение в буфер, дальше содержимое буфера отправляешь post запросом в дивы хуивы сосача.
1607261185500-b-9aef.png52 Кб, 323x227
92 2093219
Если архитектура та же (х86_64), то ISA не могут различаться у amd и intel? В то время как у AMD64 и IA64 они различны. Всё пральна?
93 2093231
>>093219

> не могут различаться у amd и intel


Могут отличаться дополнения.
А так да, Интел обосрался с итаниумом и перешёл на 64 от амд.
94 2093481
>>079195 (OP)
Антуаны, есть ли среди вас те, кто зарабатывает себе на хлеб с помощью реверса? Если да, то, пожалуйста, поделитесь своей историей и опытом. Как вкатились? Чем обычно приходится заниматься на работе? Как с реверсом обстоит ситуация у нас в СНГ? Есть ли работа на черном рынке? Есть ли перспективы для вката новичкам? Заранее спасибо.
95 2093556
>>093219
X86-64 = AMD64 ≠ IA64 - это и есть ISA (архитектура набора инструкций дословно, система машинных команд по-русски). У разных моделей процессоров и у разных микроархитектур могут быть разные расширения одной ISA. Например в моделях от AMD (пока) нет векторного расширения AVX-512. У Intel-ских микроархитектур до Хасвелла не было битовых расширений BMI.
96 2107992
Что нужно для изучения реверсинга? Типа там программирования или математика углубленно?.
97 2107999
>>107992
Чугунная жопа и терпение.
98 2108002
>>107999
Почему терпение?
99 2108759
>>108002
Чтобы стать куколдом набивать практику
sage 100 2110347
>>107992
Знания в предметной области. Грубо говоря, если собираешься реверсить игру, тебе будет гораздо проще жить, если ты сам что-то писал и можешь заранее представить себе вероятную архитектуру.
101 2110500
>>110347
ДваЧую. Этот реверсер смыслит в деле. Первый раз вижу.
image.png1,2 Мб, 800x600
102 2116307
Граждане байтоебы, помогите пожалуйста советом.
Есть одна мертвая игра - Квейк ЛутбоксЧемпион, в которой я хотел бы вкурить режим работы спектатора. В этом режиме внизу экрана отрисовывается панелька с ником игрока / советами спектатору, а при определенных событиях в игре или нажатом самим спектатором TAB-e она скрывается.
Предпологаю, что для самой панели есть некий объект с нужным свойством видимости/отрисовки, но как по быстрому это свойство найти в памяти я не представляю - это же не условные ХПшки или XYZ позиция энеми, которые можно просто менять и насканить чит энжином((
Или тут только курить в статике километровые простыни статических анализаторов и иначе никак?
image.png24 Кб, 907x607
103 2117389
>>116307
Присмотрите пожалуйста пока за моими табличками указателей, спасибо
Там лежит имя игорька, если что
104 2120832
>>116307
Непонятно написал. В чём твой вопрос?
105 2121522
>>120832

>В чём твой вопрос?


Как сделать так, чтоб эта панелька не отрисовывалась.
Как по фасту найти условный метод Visibility условного класса BottomPanel не вкуривая несколько десятков мегабайт машинного кода/данных
106 2121527
>>121522
Найти исходный код игры либо sdk
image.png52 Кб, 674x285
107 2123441
Кек, все откладывают и откладывают..
108 2123953
Почему в 16-битной программе для dos возможны операции над 32-битными регистрами? При этом с 64-битными регистрами это не работает. Разве префикс 66 не должен работать только в 32-битных программах при w=1 (см. пик 2)?
sage 109 2124018
>>123953

> Разве префикс 66 не должен работать только в 32-битных программах при w=1 (см. пик 2)?


Да, его для этого сделали. Но этот префикс меняет дефолтный для текущего режима operand size на противоположный (без REX 16/32, с REX 16/64). Для инструкций, не работающих со словами (в том числе для w=0), он игнорируется (если он не переиспользован, как часть инструкции, конечно).

> При этом с 64-битными регистрами это не работает.


use64 не забыл? Работает. В 64-битном режиме:
48 83 с0 03 - add rax, 3 ; REX
48 66 83 с0 03 - add ax, 3 ; REX, size override
83 c0 03 - add eax,3 ; нихуя
66 83 c0 03 - add ax,3 ; size override
Найдти сходства и отличия сам. А в 16/32 битных режимах REX в принципе не существует, поэтому никаких тебе 64-битных регистров.
110 2124035
>>124018

>use64 не забыл? Работает. В 64-битном режиме:


Я к тому, что если у меня use16, почему я вообще могу пользоваться 32-битными регистрами? 64-битными не могу, это понятно, но 32-битные - пожалуйста. Если бы было use32, я бы аналогично мог пользоваться 64-битными регистрами?

>48 83 с0 03 - add rax, 3 ; REX


>83 c0 03 - add eax,3 ; нихуя


>66 83 c0 03 - add ax,3 ; size override


Получается в 64-битном режиме по умолчанию команда ADD работает с 32-битными регистрами, а для уменьшения/увеличения размера операнда используются разные префиксы?
111 2124055
>>124018
>>124035
Если я правильно понял, 16-битная программа, содержащая, например, команду
6683C003 = add eax,3
может быть запущена только на 32-битном процессоре, потому что этой фичи с префиксом изменения размера не было в 16-битных процессорах, как и extended-регистров? Хотя казалось бы, 16-битная программка же.
sage 112 2124058
>>124055
386+, да. Если это имеет значение, можно детектить проц и делать фолбек какой-то.
sage 113 2124114
>>124035

> Если бы было use32, я бы аналогично мог пользоваться 64-битными регистрами?


Вот этот вопрос пропустил. Нет. 32-битные фичи - это расширение системы команд 16-битных процев с практически полным сохранением набора инструкций (выкинули две с половиной инструкции, притом недокументированные - гугли loadall). 16-битного кода тогда уже было написано дохуя, а памяти еще мало, поэтому существует 16-битный защищенный режим и прочие извращения. И так как по большей части разница между 16-битным и 32-битным режимами всего в одном бите дескриптора сегмента, то интелу ничего не стоило сделать так, чтобы 66/67 работали в обе стороны. От этого ничего не сломалось.

Для 64-битного расширения набора команд AMD поступила по-другому: взяла и выкинула сразу пачку разных однобайтовых инструкций, в том числе и inc/dec reg (40-47/48-4f соответственно), сделав из них новый префикс (REX). Точнее, так как у REX 16 возможных значений, то это по идее семейство из 16 REX-префиксов, ну да и похуй. И вот тут уже надо было как-то отличать, декодировать ли байты по-старому или это префикс. И поэтому только в 64-битном (long mode) режиме декодер считает, что это REX или нихуя (PUSHA, например, не декодируется), а в остальных (legacy modes) он работает по-старому и декодирует в привычные инструкции.

> Получается в 64-битном режиме по умолчанию команда ADD работает с 32-битными регистрами,


Да. А чтобы указать 64-битный регистр вместо 32-битного, используется бит REX.W (вот это самое 8 в 48). Чтобы указать один из новых регистров (всякие там dil, r9d или r11) в разных частях инструкции, используются остальные три доступных бита REX. Но REX доступен только в лонгмоде, поэтому без лонгмода ты никак до 64-битных регистров не доберешься.
114 2124143
>>124114
Вроде стало немного понятнее, спасибо
115 2126030
Сап, реверсаны. Есть одна дико обфусцированная китайская вариация AES. Основной алгоритм разобрал, S-боксы и прочую хуйню вычленил, короче сам алгоритм вроде отреверсил нормально. А вот key scheduling не выходит. На руках есть только один набор раундовых ключей.

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

Может, посоветуете чего? inb4 глаза разуй
116 2127259
В 2021 асм это только RE, или на нем еще что-то разрабатывают?
117 2127385
>>127259
Ассемблер - это сверхбыстрые вставки C/C++ при разработке значимых от железа прог. Это ОС, драйвера и прочее.
118 2127386
>>127259
И конечно же это ракеты и самолёты. Баллистические вычислители онли АСМ
119 2127415
>>127259
Как хобби разве что. Зарабатывать не выйдет.
Но асм всегда будет, он необходимая основа любого компилятора.
120 2127499
Как выбрать язык? Они сильно отличаются?
sage 121 2127515
>>127385
интринсики
122 2127644
>>127499
Выбирай FASM и всё.
Ещё научись юзать Olly, функции CreateFile, CreateFileMapping.
Ты считай бог в асме. Остальное приложится.
123 2127663
>>127644

> Ещё научись юзать Olly, функции CreateFile, CreateFileMapping.


Я пока только 16-битные досовские программы пишу)
124 2127696
>>127663
Да ладна. Add ax,bx понимаешь, add eax,ebx тоже самое. Джамп, проц, push одинаковые. Делай заготовку для 32битного приложения и вперёд. Функцией CreateFile создаёшь файл, функцией CreateFileMapping отображаешь файл в память, своей прогой делаешь с этими данными всё что угодно и выгружай через новый CreateFile результат. Вперерывах написания кода, загружаешь его в olly, проверяешь как он работает, писать весь код сразу не обязательно, просто поставь брэкпойнт где закончил и проверяй этот написанный участок кода, чтобы делал точно то что ты хочешь.
125 2127709
Можешь попробовать написать в блокноте Вася и асмом изменить на Петя.
DarkwingDuck.mp44,9 Мб, mp4,
640x360, 1:04
126 2127783
127 2127791
>>127709
Помню менял так в файле S на $.
Мимо
128 2127840
>>127791
Ctrl+H
129 2128203
Где почитать подробную документацию по инструкциям x86?
130 2128211
>>128203
Зачем вообще учить ассемблер x86, если по нему в РФ ноль вакансий?
Обычно требуется Cortex-M и прочий ARM.
131 2128231
>>128211

> Зачем вообще учить ассемблер x86, если по нему в РФ ноль вакансий?


Блядь, с какими же довенами я сижу на одной доске. Чтобы понимать, блядь, как там все ниже сишки работает. Чтобы научиться векторизации. Чтобы реверсить. Чтобы написать свою крохотную ОС. Все это нужно для общего фундамента, блядь. Ебаные вкатыши, нихуя не умеют, нихуя не интересно, лишь бы вакансии под их говностек были. Тьфу, блядь.
132 2128243
>>128231

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


Двачую. Зачем вообще идти в программисты с таким подходом к делу? Если нужны тупо бабки пусть идут в продаваны, толку больше будет.
133 2128298
Как понимать метод сжатия LZSS+RLE. По отдельности знаю, а как они работают вместе?
134 2128324
>>128298
Нет смысл вместе, может таки по отдельности?
135 2128364
>>128324
Есть slz decompressor, мне надо написать slz компрессор, чтобы запихивать изменённые буквы и ссылки на эти буквы в архив. В описании указано 2/LZSS+RLE. При slz0 в куске ничего не меняется, тупо добавляется заголовок с размером куска. При slz1 вставляется двухбайтная ссылка на строку, где первые 4 бита +3(если там 0, то размер 3 байта) размер строки, это и есть LZSS я понимаю. slz3 нету.
slz2 какая-то белиберда. На пикчах выделил заголовок, ff - оставлять как есть, ef - 1110 1111 то есть пятый байт это двухбайтная ссылка на что-то - 00 f1, в несжатом куске это - 00 00 00 00. При чём есть какие-то странные повторы 8с 00 00 00 00.
136 2128546
>>127840
Отрываю от сердца.

macro save MemPointer{mov dword[MemPointer],eax}

format PE GUI
entry start
include 'win32wx.inc'
section '.code' code executable
start:
invoke GetOpenFileName,GeneralOpenFileName
test eax,eax
jz mExit
invoke CreateFile,\ ;
FileNameString,\ ;pointer to name of the file
GENERIC_READ+GENERIC_WRITE,\ ;access (read-write) mode
0,\ ;share mode
0,\ ;pointer to security attributes
OPEN_EXISTING,\ ;how to create
0,\ ;file attributes
0 ;handle to file with attributes to copy
save FileHandle
invoke GetFileSize,[FileHandle],0
save FileSize
invoke GlobalAlloc,GMEM_ZEROINIT+GMEM_MOVEABLE,[FileSize]
save MemoryHandle
invoke GlobalLock,[MemoryHandle]
save MemoryPointer
invoke ReadFile,[FileHandle],[MemoryPointer],[FileSize],FileSize,0

mov edi,[MemoryPointer]
mov al,'s'
mov ecx,[FileSize]
ContinueLoop:
repne scasb
jecxz EndOfFile
mov byte[edi-1],'$'
jmp ContinueLoop

EndOfFile:
invoke SetFilePointer,[FileHandle],0,0,FILE_BEGIN
invoke WriteFile,[FileHandle],[MemoryPointer],[FileSize],FileSize,0

invoke GlobalFree,[MemoryHandle]
invoke CloseHandle,[FileHandle]
mExit:
invoke ExitProcess,0

section '.data' data readable writeable
GeneralOpenFileName OPENFILENAME 76,\;--------------------------------------------------------lStructSize
0,\;--------------------------------------------------------hwndOwner
0,\;--------------------------------------------------------hInstance
0,\;--------------------------------------------------------lpstrFilter
0,\;--------------------------------------------------------lpstrCustomFilter
0,\;--------------------------------------------------------nMaxCustFilter
0,\;--------------------------------------------------------nFilterIndex
FileNameString,\;-------------------------------------------lpstrFile
512,\;------------------------------------------------------nMaxFile
0,\;--------------------------------------------------------lpstrFileTitle
0,\;--------------------------------------------------------nMaxFileTitle
InitDir,\;--------------------------------------------------lpstrInitialDir
0,\;--------------------------------------------------------lpstrTitle
OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_EXPLORER,\;---Flags
0,\;--------------------------------------------------------nFileOffset
0,\;--------------------------------------------------------nFileExtension
0,\;--------------------------------------------------------lpstrDefExt
0,\;--------------------------------------------------------lCustData
0,\;--------------------------------------------------------lpfnHook
0;----------------------------------------------------------lpTemplateName
FileNameString TCHAR 512 dup (?)
InitDir TCHAR 'C:\Trash\asm\New program'
FileHandle dd ?
FileSize dd ?
MemoryHandle dd ?
MemoryPointer dd ?
section '.idata' import data readable writeable

library kernel32,'kernel32.dll',\
comdlg32,'comdlg32.dll',\
user32,'user32.dll'

include 'api\kernel32.inc'
include 'api\comdlg32.inc'
include 'api\user32.inc'
136 2128546
>>127840
Отрываю от сердца.

macro save MemPointer{mov dword[MemPointer],eax}

format PE GUI
entry start
include 'win32wx.inc'
section '.code' code executable
start:
invoke GetOpenFileName,GeneralOpenFileName
test eax,eax
jz mExit
invoke CreateFile,\ ;
FileNameString,\ ;pointer to name of the file
GENERIC_READ+GENERIC_WRITE,\ ;access (read-write) mode
0,\ ;share mode
0,\ ;pointer to security attributes
OPEN_EXISTING,\ ;how to create
0,\ ;file attributes
0 ;handle to file with attributes to copy
save FileHandle
invoke GetFileSize,[FileHandle],0
save FileSize
invoke GlobalAlloc,GMEM_ZEROINIT+GMEM_MOVEABLE,[FileSize]
save MemoryHandle
invoke GlobalLock,[MemoryHandle]
save MemoryPointer
invoke ReadFile,[FileHandle],[MemoryPointer],[FileSize],FileSize,0

mov edi,[MemoryPointer]
mov al,'s'
mov ecx,[FileSize]
ContinueLoop:
repne scasb
jecxz EndOfFile
mov byte[edi-1],'$'
jmp ContinueLoop

EndOfFile:
invoke SetFilePointer,[FileHandle],0,0,FILE_BEGIN
invoke WriteFile,[FileHandle],[MemoryPointer],[FileSize],FileSize,0

invoke GlobalFree,[MemoryHandle]
invoke CloseHandle,[FileHandle]
mExit:
invoke ExitProcess,0

section '.data' data readable writeable
GeneralOpenFileName OPENFILENAME 76,\;--------------------------------------------------------lStructSize
0,\;--------------------------------------------------------hwndOwner
0,\;--------------------------------------------------------hInstance
0,\;--------------------------------------------------------lpstrFilter
0,\;--------------------------------------------------------lpstrCustomFilter
0,\;--------------------------------------------------------nMaxCustFilter
0,\;--------------------------------------------------------nFilterIndex
FileNameString,\;-------------------------------------------lpstrFile
512,\;------------------------------------------------------nMaxFile
0,\;--------------------------------------------------------lpstrFileTitle
0,\;--------------------------------------------------------nMaxFileTitle
InitDir,\;--------------------------------------------------lpstrInitialDir
0,\;--------------------------------------------------------lpstrTitle
OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_EXPLORER,\;---Flags
0,\;--------------------------------------------------------nFileOffset
0,\;--------------------------------------------------------nFileExtension
0,\;--------------------------------------------------------lpstrDefExt
0,\;--------------------------------------------------------lCustData
0,\;--------------------------------------------------------lpfnHook
0;----------------------------------------------------------lpTemplateName
FileNameString TCHAR 512 dup (?)
InitDir TCHAR 'C:\Trash\asm\New program'
FileHandle dd ?
FileSize dd ?
MemoryHandle dd ?
MemoryPointer dd ?
section '.idata' import data readable writeable

library kernel32,'kernel32.dll',\
comdlg32,'comdlg32.dll',\
user32,'user32.dll'

include 'api\kernel32.inc'
include 'api\comdlg32.inc'
include 'api\user32.inc'
138 2128561
>>128546
Критика.

>invoke ReadFile,[FileHandle],[MemoryPointer],[FileSize],FileSize,0


ReadFile лучше не использовать, это устаревшая жопа, вместо этого юзать CreateFileMapping и MapViewOfFile. Тогда весь файл подгружается в оперативку, там меняешь что нужно. Просто я именно это советовал выше.
139 2128563
>>128561
Ну и потому что я больше ничего не знаю, лол
140 2128588
>>128561
Не буду врать, когда я это писал году в 2009 где-то, уже был маппинг и я осознанно от него отказался, потому что слишком сложно для школоло.
Сейчас это уже история и переделывать точно не стану
Там главное fasm установить и win32api.chm и includes скачать (некоторых констант из gdi32.dll нет в стандартном fasm), остальное по ходу дела гуглится.
141 2128597
>>128563
Кстати, в стандартной поставке fasm есть отличный и короткий документ с полным описанием как вкатиться. Очень рекомендую для начала. Если нужно на русском, загугли, вроде переводы кто-то делал.
sage 142 2128827
>>128561

> ReadFile лучше не использовать, это устаревшая жопа, вместо этого юзать CreateFileMapping и MapViewOfFile


ты токой MapViewOfFile, а юзер токой дерг флешку, и ты токой ой, программа допустила недопустимое, выполнила невыполнимое. хотите рассказать об этом своему психиатрумайкрософту? А вот ReadFile тебе просто ошибку вернет.

Нет, у отображений ограниченная область применения. Чаще всего Read/WriteFile подходят лучше. Особенно асинхронные.
sage 143 2128841
>>128364
У тебя там исходник в первом скриншоте, зачем ты занимаешься художественной раскраской хексдампов?
144 2128876
>>128231
>>128243
Вы же просто тупые, недоразвитые кодеры.
Программист должен в первую очередь изучать алгоритмы.
145 2129024
>>128876
Ты же тупой и необразованный грубиян.
Программист должен начинать с квантовой физики.
146 2129233
>>128876
Одно другому не противоречит
147 2129234
>>129233
*не мешает
148 2129246
>>129024
Это лженаука.
149 2129265
За webassembly поясните. Это же нормальный полноценный ассемблер?
150 2129276
>>128841
Чё то мутный какой-то исходник, слишком короткий, больше похоже на то, что только один режим там.(Не знаю С)
151 2129329
>>129276
Я глянул мимоходом, декодер в сорцах поддерживает все заявленные режимы.
152 2129352
>>129329
Я пошёл трудным путём) Изучаю как игра распаковывает этот кусок, распакованные данные совпадают. Но чёто пипец сложно, а там всего 15 строк..
153 2129474
Разобрался, сишники проверяйте). Если второй байт F1-FF, как на скрине 00F1, то это RLE, надо взять первый байт(00) 1+3 раза. Если 0820 например на скрине, то это LZSS, 2008 - 2+3 байта надо взять по смещению -080, это 3с00000000.
154 2129476
>>129474

>-080


-008 фикс
155 2129646
При архивации наверно лучше делать приоритет на RLE?
156 2129682
>>079195 (OP)
На собесе был вопрос "Что происходит на низком уровне когда вызывается винапи функция". Я начал отвечать про конвенцию вызово, стек, регистры, ленивую линковку, но всё общее для винды и линукса. Даже примеры в для линукса приводил типа гот плт таблицы. А меня спрашивали конкретно про винду. Типа стэк везде стэк. Плт таблица в винде по-другому назвается и не так работает. В итоге интервьюер заебался меня поправлять и сказал хватит. А как всё-таки надо было правильно ответить? Гугл говорит, что в винде ничего особеного для вызова винапи функций нет и они вызываются почти так же как везде
157 2129736
>>129682
Может, от тебя не только про асм хотели услышать, но и про оси? А ты чисто в асм ушел + поплыл.
sage 158 2129740
>>129682
Ну хуй их знает, что они хотели от тебя. Если конкретно про вопрос о вызове Windows API, то: call и конвенции, нахуй (не) нужны thunks (jmp IAT), API sets и форварды, wow64, трансляция A/W, вызов FuncEx из Func, нейтив апи-сисколл-KiFastSystemCallRet. Это вызов. Ну и линковка, если тебе вперлось про нее рассказать: директории импорта/экспорта (ординалы/форварды/bounds imports/delayed imports), dll search path (altered, KnownDLLs), activation contexts и манифесты, чего-нибудь про лоадер и PEB, наверное.
159 2129772
>>129682
Да ебланы какие-то, не переживай, скоро развалится их говноконтора рога и копыта. Меня тоже однажды спрашивали какими способами можно отформатировать винт. Короче, судьба тебя отвела от ненужных проблем. немного припекло
ss (2021-08-18 at 12.56.28).png7 Кб, 719x222
160 2131354
Смотрите, что тут у меня. Кто-нибудь что-нибудь знает про это?
16258172586740.mp419,9 Мб, mp4,
540x960, 1:53
161 2131381
Вы как хотите, а я завтра пойду почтальоном устраиваться, 17 т. р. Ламповая работа и деньги неплохие. Не каждый может себе позволить такую работу.
image.png82 Кб, 909x585
162 2131411
>>131354
Ошибка с уровнем исполнения проги. Ему нужно ядро, а ты видимо пытаешься запустить досом, что на 1 или 2 уровня выше. Пик прилагается.
164 2131451
>>131411
Не могу понять, ты всерьёз объясняешь или нет, но ладно. Это всё понятно. Другое дело, что гугл даёт практически нулевые результаты что по "TNT Embedded Kernel", что по "ETS Kernel", да и про утилиту DOSBOOT не знает. Это какая-то древняя RTOS. А хотелось бы узнать больше, прежде чем лезть дампить память железки (с процессором i386, ёпта), на которой это всё работает.
165 2131539
>>131451
Мы тут в байтах ковыряемся, ты можешь это понять? А ты какие -то ошибки вбрасываешь. Спасение утопающих - дело рук самих утопающих!
Чел годно ответил, ещё и картинку хорошую прицепил.
sage 166 2132183
>>131539
Картинка никак к досу и риалмоду не относится. В риалмоде нет защиты, а значит нет и колец. Алсо, картинка показывает влажные фантазии интела в восьмидесятых, в реальности же кольца 1 и 2 практически никем не использовались.
167 2132262
>>132183

Тем не менее никто из-под доса не запрещал самопальный маняпротектед использовать, все экстендеры памяти это делали и было куча протектедных движков вроде dos4gw под которыми всякие думы и квейки крутились. Очень много дос софта юзало протектед.
168 2132447
>>132183
Так проге нужны кольца, а он под досом запускает, там вообще .exe. Про это и речь. Ему надо гуглить что-то вроде запуск PE под досом.
169 2132536
>>082564
Нахуя тебе асм??? с сетью работаьь лучше на Си.
170 2132565
>>131381
Нет вакансий. Пиздец, ещё вчера читал отзывы, там пизда удивляется - почему такую тяжёлую работу работают только женщины. Ну вот, я пришёл, но там 100% "по блату" взяли какую-то пизду.
171 2132675
>>127385
я думаю gcc -03 сделает это лучше твоих ебучих вставок
172 2132735
>>132675
Циклический сдвиг уже завезли в си?
Мимо
173 2132737
>>132675
Есть такая хуйня - непредсказуемость будущего. Я с асмом на вы ещё со спектрумовских времён. Так вот, в нулевых асм был посмешищем, c++ ну вроде ок. Сейчас крен сдвинулся и вроде С уже норм, а asm для реверса можно и нужно юзать. Считаю что крен этот сдвигается потому-что всё что выше это фантики, общество потихоньку начинает понимать. А суть то в том, что только asm работает с инфой непосредственно, без надстроек. А инфа уже сегодня имеет ценность, а что будет завтра?
174 2132749
>>132737

>всё что выше это фантики


Тоже охуеваю от того, что большинство вопросов в айти - как подключить ту или иную либу, а не об архитектуре.

>А инфа уже сегодня имеет ценность, а что будет завтра?


Многое программисты так до конца жизни и не узнают, что означает буква ай в слове айти.
Мимо
175 2132751
Он>>132735 не шутит, мне щас надо архиватор написать. И вот эти циклические сдвиги кручу в голове, как применить.
176 2132758
Web 3.0 будет работать на asmе
подитожу
177 2132769
Если кто-нибудь делал перевод биткоинов, то вот так должен работать интернет. Так должны открываться ваши видосики с тиктока.
sage 178 2133000
>>132735

> Циклический сдвиг уже завезли в си?


Да. https://godbolt.org/z/xbhez8f3P
179 2133046
>>133000
Да это какая-то хуйня))
Циклический сдвиг, ну максимум в 4 строки. Сделаю, скину.
180 2133055
>>132749
В асме нет девственников. Прими и умойся.
181 2133418
>>129772
Этот вопрос задавал директор того самого GReAT

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

Грустно
182 2133605
Асматики, видали эту хуйню?
http://www.mcst.ru/elbrus_prog

И как с такой документацией гордиться отечественной архитектурой?
image.png76 Кб, 866x363
184 2133756
>>133627
Ну, тут хотя бы опкоды расписаны. ISA эльбрусов потихоньку реверсят энтузиасты, мцст то ли не хочет, то ли боится нормальные доки публиковать
185 2133979
>>133627
И как этот документ поможет документу выше?
186 2134255
Аноны, помогите разобраться. Не могу понять, где я ошибся. Даны точки на плоскости, нужно найти все пары точек с максимальным расстоянием между ними. Ответ получается неправильный.
Это не лаба, решаю для себя, пожалуйста не бейте

https://pastebin.com/F4t4Bpfd
187 2134441
>>134255
Можешь объяснить, как может быть несколько пар с максимальным расстоянием. Не понимаю.
sage 188 2134448
>>134441
Для каждой точки найти пару с максимальным расстоянием может быть?
189 2134455
>>134448
Я бы сложил x+y каждой точки, с какой точкой самая большая разница, то и есть максимальное расстояние. Но это не точно.
fasdfas.png27 Кб, 2304x928
190 2134519
>>134455
Надежнее было бы посчитать гипотенузу через fsqrt. Только по итогу получится, что работает весь алгоритм с перебором каждой точки к каждой другой точке даже медленнее, чем n^2
191 2134545
>>134519
Что у тебя изображено 3 3, 4 6, 5 10?
192 2134569
>>134441

> Можешь объяснить, как может быть несколько пар с максимальным расстоянием. Не понимаю.


Вот например даны точки:
0. (0, 0)
1. (1, 7)
2. (-1, 7)

Расстояние между 0 и 1 максимальное и равно расстоянию между 0 и 2. В ответе две пары: 0-1 и 0-2.
193 2134571
>>134448
Нет, не так
194 2134583
>>134569
Щас в полусонном слстоянии. Если точки с корами 100,10 и 200,10. Получится тогда по гипотенузе найти?
195 2134594
>>134583
Ну типа да, расстояние считается по формуле sqrt((x2 - x1)2 + (y2 - y1)2). Но я, естественно, сравнивал квадраты расстояний, чтобы не считать корень, и остаться в целых числах. На глаз код, вроде, правильный, но что-то не так, не могу понять.

https://pastebin.com/F4t4Bpfd
196 2134613
>>134545
А, забыл легенду. Три точки, три операции (вызова функции для расчёта длины на самом деле) 4 точки - шесть операций и т.д.
В целом, число вызовов совпадаёт с числом рёбер
197 2134849
>>134613
Jnb @f и после метки je @f
Это нормально? Там флаги поменяются же.
198 2134852
>>134849
J(cond), вроде как, не должен менять флаги. Думаю, проблема не в этом.
199 2134858
>>134852
Жоский код если честно
200 2134860
Поставь TurboDebugger из Dosbox и отлаживай.
201 2134980
Никогда не буду использовать два джампа подряд. Никогда в моём коде не будет dec ecx и лупов, залупов. Зачем они этому учат?
202 2134985
xor ecx, ecx
@@:
inc ecx
cmp ecx, нужное значение
jz @b
Что не так в этой конструкции? Зачем её усложнять?
203 2135112
>>134985

mov ecx, нужное значение
@@:
dec ecx
jnz @b
204 2135140
>>135112
Это плохая конструкция. Цена одна команда, а код нечитабелен - уменьшение ecx, от какого значения? Начинаешь искать этот мув, а точно это тот мув который нужен? Хорошо бы ещё убедиться что нет других mov ecx.
По какой-то причине не сработал джамп, тогда в ecx ffffebcd. Из-за этого значения дальше весь код по пизде идёт и показывает хуй знает что. А так не сработал.. и у тебя в есх вместо 10 оказалось 500, и ты видишь что весь остальной код работает правильно, просто джамп не сработал.
205 2135166
>>135140

>Цена одна команда, а код нечитабелен


Одна команда из четырёх. Поэтому код сейчас и генерирует компилятор, чтобы читабельность не была фактором.
206 2135178
>>135166
Это же не равно 25% кода. У тебя один, два цикла будет, зато сам не будешь теряться в своём коде. Ну если много циклов, ну оптимизируй потом под dec ecx.
Зато конструкция с inc позволит тебе творчески подходить к написанию кода, в этот цикл будешь вставлять переход на другой итд. А так, как будто сам себе рамки выставляешь этим mov ecx. Но рамки эти на самом деле написаны в учебнике.
207 2135327
>>135140
Хороший код - оптимальный код.

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

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

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

Не знаю кому ты там пишешь хороший код, я пишу для себя.
208 2135419
>>134980
Блен, а как еще-то? Без цикла в цикле никак не решить
209 2135421
>>134980
А два джампа это же просто if - else if, он разве не так работает?
210 2135453
>>135419
>>135421
Да оно теоретически то все будет работать, просто у самого было такое, получалось не очень.
Как-нибудь до джампа более точно описать условие, чтобы только два варианта было - да нет. Например, если получается отрицательные числа и положительные, то просто прибавить что-нибудь чтобы всегда получались положительные и проверять одно условие в положительных числах.
211 2135553
>>134255
Короче, я понял, где ошибка. Я пытаюсь посчитать (x0 - x1)^2. x0 и x1 это signed word в диапазоне от -2^15 до 2^15-1. Вычитаю одно из другого, не проверяя, какое из них больше. По идее, должно получиться значение от -(2^16-1) до 2^16-1, но так как результат вычитания шестнадцатиричный, получается черт знает что. Значит мне нужно проследить, чтобы всегда меньшее вычиталось из большего. Тогда я получу значение от 0 до 2^16-1, и его уже необходимо воспринимать как unsigned. Дико тупая ошибка, конечно. Попробую исправить.
212 2135593
>>135553
Сработало! Достаточно было добавить

jge @f
neg ax
@@:

сразу после вычитания. Даром пришлось еще чинить основной цикл, так как relative jump out of range. Просто заменил loop .lp1 на

dec cx
jcxz @f
jmp .lp1
@@:

Благодарю за внимание.
213 2138943
Так, такой вопрос. Вот я реверснул файл на си, все как в гайдах, но вот я ревершу файл на питоне, и там нету этого самого кода на асме, что не так с петухоном, стоит его реверсить, или нет, или там прослойка байт кода все парашит?
214 2138960
>>138943

> прослойка байт кода


Не прослойка, а нихуя кроме байткода
215 2139005
>>138960
И о чем это говорит, что питухон безопасный, и его реверсить бесполезно?
216 2139009
>>139005
Питон не компилится в машинный код. Что ты там реверсить собрался?
217 2139013
>>138943

> Вот я реверснул файл на си


Ты реверснул не файл на си, а предварительно скомпилированный исполняемый файл.
218 2139014
>>139009
Ну хз, например прога на питоне требует реги, вот это например, но это гепотетически, просто пришло в голову.
sage 219 2139023
>>139009
Зато компилится в байткод, и байткод можно запускать без исходника.
220 2139024
>>139014
Программа на питоне не является исполняемым файлом. Когда ты запускаешь программу на питоне, на самом деле ты запускаешь python.exe.
221 2139026
>>139024
Ясно, те патчить надо екзешник, да?
222 2139027
>>139023
И? Это код для питухоновской виртуальной машины. Ты его не дизассемблируешь.
sage 223 2139037
>>139027
Ну, во-первых, import dis, во-вторых, есть и внешние дизасмы. А для случаев, когда оно выполняется отдельным питоном, в котором опкоды поменяли местами, всегда можно написать свой.
Снимок экрана2021-08-2423-51-11.png90 Кб, 1112x577
224 2139039
А вообще я напиздел, каттер показывает питухон код на асме.
225 2139043
>>139026
Ты можешь, в теории, запустить программу в дебаггере, и посмотреть, что делает питон на уровне машинного кода. Но зачем?
sage 226 2139045
>>139039
Это неправильная интерпретация байткода питона в виде x86-64 кода. Ты точно так же можешь какой-нибудь жипег ему подсунуть, и он тоже это дизассемблировать будет, только кодом оно от этого не станет.
sage 227 2139046
>>139045
Ой бляяя, не байткода даже. Ты ему текстовый исходник скормил, лол?
228 2139049
Пиздец, что вы развели. Питон компилируется в байткод, потом этот байткод можно развернуть обратно в исходник, очевидно же.
Патчить тоже можно, но нахуя?
1629824410020.jpg70 Кб, 892x445
229 2139050
>>139037
Байткон питона нельзя дизассемблировать в привычном смысле этого слова. Максимум, что можно сделать, это получить на выходе расшифровку байткода, что собственно и делает dis (см. пикрил).
230 2139051
>>139049

> потом этот байткод можно развернуть обратно в исходник, очевидно же.


Чел хочет из кода на питоне получить ассемблерный код.
231 2139052
>>139051
Он хочет реверсить, про ассемблерный код он пизданул в этом контексте.
232 2139053
>>139052

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


Он прямым текстом с самого начала написал, что хочет код на асме
-->>138943

> но вот я ревершу файл на питоне, и там нету этого самого кода на асме, что не так с петухоном

233 2139057
>>139053
По-моему, он просто нуб и сам точно не понимает, что говорит, лол. Но смысла спорить нет, может и сам ответить.
sage 234 2139137
>>139050
А дизасемблировать - это по-твоему что значит тогда?
sage 235 2139154
>>139137

>в привычном смысле этого слова


Дизассемблировать, то есть преобразовать машинный код в ассемблерный код, что не понятно? Смотри на контекст обсуждения.
sage 236 2139159
>>139154
Для виртуальной машины питона машинный код - байткод. Мы его преобразовываем в читаемое представление. Это называется дизассемблированием. Можешь плугин для радара или иды написать, чтобы то же самое смотреть там. У них уже есть, например, плагины для джавы, и у джавы тоже виртуальная машина, поэтому дизассемблер показывает байткод JVM. Если у тебя собственный мир с собственной терминологией, нужно предупреждать сразу.
sage 237 2139167
>>139159
Я это всё понимаю. Ещё раз, смотри на контекст обсуждения. Речь шла именно про язык ассемблера (см. >>139053). Что по-твоему значит "код на асме"?
sage 238 2139185
>>139167
Значит, что он ожидал >>138943 получить нативный машинный код, но дизассемблер сопротивлялся как мог, а вы, вместо того, чтобы написать ему нечто вроде >>139159 устроили тут непонятно что. И он таки нихуя не понял, раз продолжает натравливать >>139039 cutter на .py-файлы.
sage 239 2139190
>>139185

>устроили тут непонятно что


Не все умеют хорошо объяснять. Особенно когда непонятно, какое у человека представление о предмете вопроса.
objection-1815391.mp46,6 Мб, mp4,
960x640, 1:33
240 2139277
241 2139462
>>138943
питон это интерпритируемый язык, он не компилируеться в исполняемый файл. если хочешь "реверсить" прогу на нем, просто открой в текстовом редакторе исходный файл .py
242 2139465
>>139277
Охуенчик
243 2139512
>>139277
До слёз.
666.mp415,2 Мб, mp4,
480x360, 3:01
244 2139521
>>138943

>но вот я ревершу файл на питоне

23.mp416,7 Мб, mp4,
640x360, 1:05
246 2139600
247 2139673
Лучше выебать тян, или обсуждать как выебать тян? Что ближе к истине?
248 2139756
>>139673
зависит от определения истины в даном контексте
249 2139931
Почему в шапке идет дискриминация радара? Чем он хуже других?
sage 250 2140231
>>139577
Респект и уважение!
sage 251 2140239
>>139931
Интерфейс для рептилоидов, кривые лоадеры, кривой отладчик, нет поддержки проектов в привычном смысле слова, зато есть эмодзи-хексдамп, снежинки и ванильные цитатки при старте. Но если ничего другого нет, пользоваться можно.
252 2140496
>>140231
Я там сжульничал немного, поставил брейкпоинт, скриптами в иде пропатчил память с буквами. Чтобы всё это закатать на диск надо написать архиватор, а это фак,фак,фак.... Или найти такой же архиватор, или я долбаёб и есть способ проще.
253 2141015
>>140239
Ты имеешь ввиду не пригоден для промышленных масштабов в лабораториях касперского? Но там комунити, можно писать на питоне какие-то дополнения, и в целом норм доки.
254 2143610
Такой вопрос по ре.
Только без снобизма и отсылки к тоннам книг.
При реверсе файлов на что следует обращать внимание, на аномалии, или что-то еще. Или все зависит от цели. Хочу попрактиковаться на крэксми. Скачал файл. В подобных примерах, надо типо найти пароль или нечто подобное. Есть алгоритмы или нечто подобное чтобы искать. Хз как сформулировать, но пусть пока будет так.
255 2143624
>>143610
Суть крекми это как раз обратная разработка. А запатчить можно за пять сек.
каир.jpg141 Кб, 700x921
256 2143742

>самый низкоуровневый


> - Посоны, а как начать писать на Ассемблере?


> - Ну, короч, ставишь досбокс...



Это такой тралленк, да?
257 2143752
>>143742

> начать писать


Ну так это самый простой способ начать учить ассемблер. Что не так?
258 2143781
>>143624
Я хотел бы понять суп ре без умствований. Вот есть файл, с чего начать, ну пусть будет крексми. В манах того же радара просто команды. Но я хотел бы понять логику, с чего начать, некий алг что ли. Можно же смотреть в книгу и видеть фигу. Надо знать что искать к примеру.
259 2143893
>>143752

>Что не так?


То, что он не низкоуровневый.
260 2143896
>>143893
а ты на макроассемблере что-ли пишешь?
261 2143908
>>143893
Что по-твоему значит низкоуровневый, лол?
262 2143917
>>143893
Создание программ на ассемблере для доса отличается только тем, что доступен только реальный режим процессора, и плюс дос предоставляет некоторые функции, и всё. Ты по-прежнему работаешь с регистрами непосредственно, и твоя программа по-прежнему состоит из ассемблерных инструкций. Я еще понимаю, если бы речь шла о формате PE, но этого я не понимаю.
263 2143919
>>143896
Нет, я хотел вкатиться в ассемблер, а мне сказали, что современный ассемблер теперь игрушечный и в каком-то эмуляторе запускается. Дико с этого проиграл и решил вкатиться во что-то другое.
264 2143928
>>143919
Ты спрашиваешь как начать писать на ассемблере - тебя закономерно отправляют в лягушатник. Вопросы?
265 2143936
>>143893
x86 ещё относительно высокоуровневый. А вот на всяких VLIW'ах с регистровым окном заебёшься писать
266 2143956
>>143936
То, что это сложнее, еще не значит, что оно более низкоуровневое. Архитектуру можно было бы назвать более низкоуровневой, если бы x86 инструкции было возможно разложить на более элементарные команды для данной архитектуры.
267 2143965
>>143781
Можешь начать с тестирования, там макачьих гайдов полно.
Реверсинг, пентест и тестирование это одно и то же, просто чуть под другим углом. Но всё учит как бы ебануть что плохо прикручено.
268 2143966
>>143956

>если бы x86 инструкции было возможно разложить на более элементарные команды


Разве за тебя это не делает микрокод? Ну и вообще, по такой логике, мипсы окажутся самой лёгкой архитектурой просто потому что у них команд меньше и приходится всё расписывать вручную, что в CISC'ах уже давно делается одной инструкцией
269 2143968
>>143781
Ищи строки- это самый простой способ
270 2144019
>>143966
Строго говоря, нельзя, сравнивая две разные архитектуры, сказать, какая из них более низкоуровневая. Но если две архитектуры взаимозаменимы, то можно условно сказать, что более высокоуровневая та из них, инструкции которой во второй архитектуре реализуются последовательностью команд. Напимер, какая-нибудь архитектура, типа x86, но в ней, например нет инструкций, типа push, pop и т.п.
271 2144898
А где можно брать всяких червей, бомбы, крекми и тд для учебы? Например, хочу посмотреть как выглядит переполнение буфера с точки зрения радара и понять логику. С крекми и бомбами вроде ясно, но есть очень сложные примеры, хочется по нарастающей. И еще такой вопрос. Что нужно знать, уметь, чтобы стать классным реверсером и все текли.
272 2145023
>>144898
https://crackmes.one/
Сюда же всякие CTF и прочие
273 2146869
Написал, нахуй блядь, архиватор этот ебучий. Теперь надо разобраться как работает cd-rom этой игре, а завтра на работу.
274 2146882
Им же, всяким англичанам, французам, испанцам. Им же проще всё это делать. Тупо меняешь глифы в тексте. А тут под глифы нужна память, и чтобы имя перса было в оригинале а сам текст на русском. У сука...
275 2146884
Ещё кто-то против русика пиздит. Да это охуеть как надо изьебнуться чтобы сделать на русском.
276 2146925
Короче триллер. На первом пике разжатый кусок, на втором сжатый. В кружочке 0604, к 04 надо прибавлять 3, потому что меньше трёх байт нет смысла сжимать, 06 это минус смещение от текущей позиции каретки.
Получается, надо взять 7 байт по смещению -6. КАК? Откуда должен взяться седьмой байт, он потерян при сжатии.
Но разжимается. Просто я когда писал, то сделал джамп если коретка доходит до текущей позиции, потом сравниваю полученный результат с исходным и охуеваю.
277 2147724
Как запустить код на виртуальной машине? Я так понимаю, мне нужно как-то создать загрузочный образ, но я не особо понимаю, как это работает.
278 2147928
>>147724
MBR же. Надо просто разместить в правильном месте и чтобы он(mbr) указывал на твой код.
Биос читает mbr, mbr читает твой код.
279 2147949
>>147928

>Надо просто разместить в правильном месте


А как? Вот я ассемблировал свой код, получил code.bin на выходе. Что с ним делать? Я пробовал genisoimage -o code.iso code.bin. Загрузил этот образ в virtual box: он говорит no bootable medium found. В чём я неправ?
280 2147961
>>147949
В Hex-редакторе тупо скопируй.
Ты результат всё равно не увидишь.
281 2147973
>>147961
Можно понятнее? Что куда скопировать?
282 2147978
>>147973
Открой в hex-редакторе образ системы, найди там mbr. Почитай где он должен быть расположен(в образе наверно будут доп.заголовки всякие). Скопируй в свой образ, измени стартовый адрес кода на свой код.
283 2147989
Ты осознаешь что это пук в космос? Тебе надо как минимум чтобы в коде был минимальный драйвер видеокарты, чтобы ты смог увидеть результат своего кода. Ты запустишь свой код, проц его выполнит и давай до свидания, он тебе ничего не должен.
284 2147993
>>147989
А что, биос мне тоже ничего не должен? Какой драйвер? Мне всего-то нужен текстовый режим 80x25.
285 2148000
>>147993
Возможно ты прав, не проверял. Хорошая идея у тебя, do it.
287 2148814
>>147989
В свою молодость я загружал bmp файл из флешки прямо в видеопамять. Vesa режимы рулят.
К слову загрузку секторов кода я так и не осилил, так что код там совсем маленький.
288 2149000
>>147993
>>148814
Думаю тут 2 варианта ошибки: код исполняется, но результат не отображается(ошибка в обращении к видеопамяти). Код не исполняется, ошибка с загрузкой кода.
289 2149253
>>149000
Поэтому нужен код и скриншот первого сектора. Остальное не поможет.

Скину то что нашел у себя в закромах. Давно уже не помню что именно делают эти int13 вызовы.
А то у нас совсем тред без кода почему-то. Так неинтересно.

;fasm boot.asm

Use16
org0x7C00

cli
mov ax,0xb800
mov ds,ax
xor si,si
mov ax,0x0700

mov ah,41h
mov dl,80h
mov bx,55aah
int 13h
mov ax,0x0730
jc @f
mov ax,0x0731
@@:
mov [si],ax

mov ah,42h
mov dl,80h
mov si,0
mov ds,si
mov si,dap
int 13h

mov ax,0xb800
mov es,ax
jnc @f
xor si,si
mov word[es:si],0x0735
@@:
xor si,si
mov word[es:si],0x0736

mov di,cop
mov ax,[ds:di]
mov [es:si],ax
inc si
inc di
inc si
inc di
mov ax,[ds:di]
mov [es:si],ax
inc si
inc di
inc si
inc di
mov ax,[ds:di]
mov [es:si],ax
jmp $

dap:
db 10h
db 0
dw 1
dw cop
dw 0
dq 1

cop:
dw 0x0700,0x0730,0x0731
289 2149253
>>149000
Поэтому нужен код и скриншот первого сектора. Остальное не поможет.

Скину то что нашел у себя в закромах. Давно уже не помню что именно делают эти int13 вызовы.
А то у нас совсем тред без кода почему-то. Так неинтересно.

;fasm boot.asm

Use16
org0x7C00

cli
mov ax,0xb800
mov ds,ax
xor si,si
mov ax,0x0700

mov ah,41h
mov dl,80h
mov bx,55aah
int 13h
mov ax,0x0730
jc @f
mov ax,0x0731
@@:
mov [si],ax

mov ah,42h
mov dl,80h
mov si,0
mov ds,si
mov si,dap
int 13h

mov ax,0xb800
mov es,ax
jnc @f
xor si,si
mov word[es:si],0x0735
@@:
xor si,si
mov word[es:si],0x0736

mov di,cop
mov ax,[ds:di]
mov [es:si],ax
inc si
inc di
inc si
inc di
mov ax,[ds:di]
mov [es:si],ax
inc si
inc di
inc si
inc di
mov ax,[ds:di]
mov [es:si],ax
jmp $

dap:
db 10h
db 0
dw 1
dw cop
dw 0
dq 1

cop:
dw 0x0700,0x0730,0x0731
290 2149256
>>149253
Вот была же любовь к табам раньше.

boot.asm

Use16
org 0x7C00

cli
mov ax,0xb800
mov ds,ax
xor si,si
mov ax,0x0700

mov ah,41h
mov dl,80h
mov bx,55aah
int 13h
mov ax,0x0730
jc @f
mov ax,0x0731
@@:
mov [si],ax

mov ah,42h
mov dl,80h
mov si,0
mov ds,si
mov si,dap
int 13h

mov ax,0xb800
mov es,ax
jnc @f
xor si,si
mov word[es:si],0x0735
@@:
xor si,si
mov word[es:si],0x0736

mov di,cop
mov ax,[ds:di]
mov [es:si],ax
inc si
inc di
inc si
inc di
mov ax,[ds:di]
mov [es:si],ax
inc si
inc di
inc si
inc di
mov ax,[ds:di]
mov [es:si],ax
jmp $

dap:
db 10h
db 0
dw 1
dw cop
dw 0
dq 1

cop:
dw 0x0700,0x0730,0x0731
290 2149256
>>149253
Вот была же любовь к табам раньше.

boot.asm

Use16
org 0x7C00

cli
mov ax,0xb800
mov ds,ax
xor si,si
mov ax,0x0700

mov ah,41h
mov dl,80h
mov bx,55aah
int 13h
mov ax,0x0730
jc @f
mov ax,0x0731
@@:
mov [si],ax

mov ah,42h
mov dl,80h
mov si,0
mov ds,si
mov si,dap
int 13h

mov ax,0xb800
mov es,ax
jnc @f
xor si,si
mov word[es:si],0x0735
@@:
xor si,si
mov word[es:si],0x0736

mov di,cop
mov ax,[ds:di]
mov [es:si],ax
inc si
inc di
inc si
inc di
mov ax,[ds:di]
mov [es:si],ax
inc si
inc di
inc si
inc di
mov ax,[ds:di]
mov [es:si],ax
jmp $

dap:
db 10h
db 0
dw 1
dw cop
dw 0
dq 1

cop:
dw 0x0700,0x0730,0x0731
291 2149718
Сап, /pr/, просьба не пиздить за нейминг, я скрипткидди. Тулза - ida, очевидно.
Есть бинарь (.dll), ижектится в другой, вешает разные хуки. Какие-то я нашел, но подозреваю что не все
в .text есть портянка кода, я нашел место где уже .dll получила данные из основного бинаря, немного их обработала, после места еще один обработчик, и вызов хука чтобы положить обратно измененные. Т.е.:

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

Как функцию ида то место не распознает, подозреваю что там jmp по рантайм адресу. (а может и статике, я хуй знает как понять).
Собственно вопрос - как найти откуда вызов, блядь?
Помогите нубасу, молю.
292 2149884
>>149718
В иде graph view есть же, показывает все вызовы.
293 2149894
>>149884
В этом коде ида не распарсила функции, соответсвенно без рантайма не знает что туда jmp прилетит.
294 2149902
>>149894
После того как распарсит, options - general - analysis - reanalize program
295 2150022
Палю годноту реверсачерам. Вчера первый день на почте. Суть: приходишь на почту(она рядом с домом) к 11. Ждёшь когда приедет машина с почтой. Потом берёшь почту на свой участок, сортируешь и составляешь маршрут, так чтобы было удобно разносить и ничего не перепутать. Составляешь маршрут так, чтобы последним был самый дальний дом. После того как всё разнёс берёшь бутылочку пива и пиздуешь на остановку. В 5 уже дома. 20к зарплата. Не ебу зачем дауны яндекс-еду разносят.
296 2151152
Знаете ли вы ресурсы на которых можно найти описание деталей процесса кряка современного софта (текстом/видео/как угодно)?
Речь не про поправить условный переход в какой-нибудь древней шароваре, а именно что разбор потрохов алгоритма активации шиндоуз/адобов и т.п. монструозных вещей
297 2151211
>>151152
Шапку прочитай.
298 2151445
>>151211
Там одно говно уровня crackme для вкатывалщиков
299 2151459
>>151445
Странно.
А чё exelab накрылся? Или туда вход особый нужен? Раньше нормально заходил, хотя я там не сидел никогда.
sage 301 2151715
>>151687
нет
302 2151747
>>151152

>современного софта


А современный софт весь в веб ушел. Есть конечно игрули да какие-нибудь кады-хуяды, но и этого становится ничтожно мало.
303 2152899
У меня такой нескромный вопрос.
Как я понимаю ре - это когда ты колупаешься в по без сырцов, так? То есть имея сырцы можно понять, логику, архитектуру по и прочее. А вот только по исполняемым файлам можно восстановить все что задумывал автор? Ну вот в руки конкурентов попали исполняемые фалы, без сорцов. Возможно ли понять и восстановить и монетизировать то что попало в руки?
304 2152902
>>152899
Возможно понять, как оно работает. Для рандомного говна смысла не имеет, но для каких-то узких ниш вполне, где оно и ценится.
305 2152964
>>152902
Я так полагаю что тема с ре не паблик, а есть кейсы, мб у местных. Тема то такая. Ладно я выучу что-то, а где найти работу? И есть roadmapы по ре? По тип питона или явы. Ну типа чеклистов, роудмэпов, читшитов или мастридов?
306 2152971
>>152964
Нигде. Это не выучу и вкачусь.
Если ты выбираешь как один из вариантов, то сразу вычеркивай.
sage 307 2153581
>>152964

>а где найти работу?


на почте, как этот >>150022
sage 308 2153719
>>146925

> Получается, надо взять 7 байт по смещению -6. КАК?


Звучит как типичный LZ77 с окном. Копируешь по одному, из -6 скопировал байт в конец, вот уже и седьмой байт.
но ты уже давно разобрался
309 2153746
>>153719
Не разбирался, это получается на место седьмого байта вставляешь первый в окне, на место восьмого второй и т.д.
Как бы сжимается и разжимается без этой тонкости. Но если понадобится, добавлю в код, спасибо.
310 2154824
Хочу изучить сам ассамблер, есть ли свежая литература? Самая свежая в шапке датируется 2003 годом, насколько я понимаю, процессор процессору рознь по архитектурной составляющей. В чем же смысл тогда учится по книге в которой пентиум, который я никогда даже не видел в живую, называют последним словом в технике? Реквестирую что-нибудь современное, если есть. Желательно, конечно, еще и на русском.
311 2154827
>>154824
Лучше вобще начинать с восьмибиток пятидесятилетней давности, современный ты наш.
312 2154859
>>154824

> процессор процессору рознь по архитектурной составляющей


У них у всех архитектура x86. Вряд ли тебе придется писать под ARM. А если все-таки захочется, тогда конечно придется с ними отдельно разбираться. Кроме того, фичи типа MMX, SSE и т.п. тоже везде работают одинаково, хоть и не все процессоры их поддерживают. Просто со временем складываются стандарты, потому что так удобнее.
313 2154860
>>154824

Вот тебе свежак: early access ещё не вышедшей книги http://libgen.is/book/index.php?md5=2F85E7A6B145EF22ECC2E8F11FD77804 .
Самое последнее из русскоязычных, наверно это http://libgen.is/book/index.php?md5=C72F16F6A4C7FDDA9344D408AAE76C9E . Но книга - так себе.
Да, с новыми книгами по ассемблеру на русском последние лет 10 довольно печально.

Пойми, программирование на ассемблере - методология старая и глубоко продуманная. Так что есть смысл изучать классику: и Нортона, и Абеля, и Абраша и т.д. Что касается X86 - у него ведь (некоторая) пресловутая обратная совместимость. Так что тот же Юров актуален где-нибудь на 70% (и как первый учебник весьма годен).

Можно считать, что знания программирования на ассемблере складываются из нескольких источников:
• Описание/спецификация системы машинных команд (ISA);
• Руководство для ассемблера / диалект языка ассемблера;
• ABI программного окружения;
• API рантайма/библиотек (если есть).

Так что, в принципе, можно и без учебника вникать.
314 2154864
>>154860
Забыл сказать, ещё надо (считай обязательно) уметь пользоваться отладчиком ну и может быть прочими инструментами.
Question.mp424,4 Мб, mp4,
1200x1200, 4:11
315 2154912
316 2154915
>>154912
Купил короче этот альбом чтобы не "выгорать". Круче него только The fat of the land, считаю. Пью пивасик.
317 2154919
Хотя я и так не выгораю. Работы реверсачерам полно - переводы игр теже. Да тысячи их, как тут "выгорать". Мне твоё выгорание непонятно совершенно.
320 2156394
Привет. Выполняю первую лабу по ассемблеру и вроде делаю всё пошагово, изменил файл .ASM перекомпилирую, а значение регистров не меняется после изменения переменных.
Я правильно понимаю что есть вот эти варА,Б,С их надо менять тогда регистры и флаги поменяются? Тогда почему у меня не меняется ничего.
321 2156445
>>156394
Флаги меняются после каждой арифметической команды (не без исключений). Показывай конкретно какой флаг ты ждёшь, в какой точке программы.
322 2156466
>>156394
Понажимай F8 лул
323 2156474
>>156394
А разве имена переменных не нужно поместить в квадратные скобки, чтобы показать, что это адрес, а не непосредственный операнд? Хз как в тасме, но обычно так.
324 2156475
>>156474
>>156394

> изменил файл .ASM перекомпилирую, а значение регистров не меняется после изменения переменных.


Да, наверняка так и есть. Хотя странно тогда, что тасм не ругается на mov al, imm16.
325 2156499
>>156466
Да это понятно, то что в отчёте это просто не завершенная программа
>>156475
Спасибо
image.png11 Кб, 254x361
326 2156511
>>156445
Я понял что не понял что такое флаги, и как вообще правая часть работает... хотя с кодом разобрался
327 2156519
>>156474
По моему квадратные скобки только в фасме однозначно означают память. Masm, nasm tasm используют их иначе, там ключевые слова (ptr).
328 2156522
>>156519
подскажи плиз а че за 0117 и 0118. Это типа в этих ячейках памяти хранится 100 и 60?
329 2156523
>>156511
Там от инструкции все зависит, у каждой инструкции в описании сказано что она делает с флагами.
330 2156524
>>156523
А где эти инструкции взять, ахахах
331 2156530
>>156522
Видимо да, и как видишь синтаксис разный. Наверное когда указываешь имя переменной, скобки не нужны, а когда адрес этой же самой переменной числом - нужны.
332 2156538
>>156524
Instruction set reference скачать нужно или гуглить переводы на русском.
333 2156539
>>156538
Всё, спасибо <3
334 2156544
>>156530

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


Вряд ли. А иначе как например загрузить в регистр сам адрес, на который указывает метка?
335 2156586
>>156544
Через ключевое слово ptr
336 2156945
>>156544

Вот к слову, а в чем поинт команды LEA если то же самое можно через mov ptr?
337 2156981
>>156945
Вообще lea считает конечный адрес из любого вида адресации. Например, команда

> lea ax,[ bx + si + 12]


делает то же, что и

> mov ax,bx


> add ax,si


> add ax,12


В 32-битном режиме можно даже так:

> lea eax,[ebx + 4*ebx]


То есть, с помощью lea можно, например, эффективно выполнять некоторые арифметические операции.
338 2156992
>>156945
Я как-то видел в интернете объяснение в духе

> нуу lea это то же самое что и mov но оно работает по-другому


Я подумал, ну охуенно, решил, что это очень сложно, и забил хуй. Разобрался, по-сути, только недавно.
339 2157000
>>156981

> конечный адрес


*эффективный адрес, если точнее
340 2161582
Тред умер?

проверка
Screenshot304.jpg367 Кб, 799x594
341 2161665
Перевожу потихоньку, рутинная работа, вопросов пока нет. Хочу весь пролог сделать для начала.
Оцените качество глифов и самого перевода: I don't want to get scolded by mother again
342 2161772
>>154860
А учебники Пирогова? Или тот еще кал?
343 2164660
Умер тред?
344 2164848
>>164660
Заебал ты.
345 2164905
>>164848
Тред умер?
image.png102 Кб, 247x1261
346 2165129
На хабре любопытная что крайне удивительно статья о том, как чувак переписал 2048 на асме, потому что прихуел от потребления памяти js|электроно реализацией, а в статье ссылка на еще более годный фак для вкатывающихся в современную байтоеблю:
https://sonictk.github.io/asm_tutorial/
Может закинуть в шапку, если доживете до переката?
image.png860 Кб, 648x873
347 2165239
>>154860
>>161772
А чем книга с ракушкой не угодила? Ирвин вроде её постоянно актуализирует
348 2165375
>>161772
>>165239
Почему не угодила? Вполне хорошие книги.
349 2165725
>>165375
Пироговские книги - это тупо пересказ документации для тех, кто не умеет читать по-английски. Писались они тогда, когда издательства тупо не могли найти нормальных авторов. Это шлак. Можно взять Ирвина или документацию от Интела.
350 2167340
Смотрю в книгу, вижу фигу
Prologue.mp412,6 Мб, mp4,
640x360, 0:49
351 2169019
Вместо бампа.
Вжал буквы в диск. Допройду Терминатора и продолжу.
352 2170779
Как вывести число на экран в TASM/MASM? Почему нихуя нет в интернете по ассемблеру, неужели за 60 лет ни один человек не додумался сделать нормальную шпаргалку с примерами базовых действий, арифметических операций, ввода с клавиатуры, вывода в консоль и тд.
353 2170835
>>170779
В фасме все примеры из коробки работают. Там и под дос и под Винду и Линукс примеры.
354 2170868
>>170779

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


В книжке Зубкова - "Assembler для DOS, Windows и UNIX" это всё есть.
355 2170870
>>170835
у меня в вузе TASM, хули я поделаю.
356 2170874
>>170868
Спасибо, посмотрю.
357 2174230
Как проще в иде выделить большой блок памяти и сохранить в файл? Сбивается выделение, неудобно. Может плагин какой есть?
358 2174624
>>154860
Кстати, для понимания быстродействия того, что ты напрограммировал, ещё нужно знать (в большей или меньшей степени) архитектуру целевого процессора. Не знаю много, ли есть смысла заниматься программированием на АСМе, не имея в виду быстродействие.
Кроме того, что касается специфики программирования на АСМе, здесь гораздо более критично понимание/умение алгоритмов и теории кодирования, чем для каких-нибудь ЯВУ.
359 2174713
>>170870

>в вузе


На лекции ходить не пробовал?
360 2174901
>>174624

>Не знаю много, ли есть смысла заниматься программированием на АСМе, не имея в виду быстродействие.


Программирование на асме ничем не обязывает. Порриджи сюда не лезут, кабаны не лезут, деньги сюда не текут. Это джунгли, здесь выживает сильнейший и если он выжил ему заебись именно здесь.
Смотреть на ассемблер с точки зрения "вкачусь и буду грести бабло" не имеет смысла, конечно. Но это и не программирование, это бизнес.
361 2175549
>>174901

>Но это и не программирование, это бизнес.


Толсто
362 2175762
>>175549
Кринжанул с себя
363 2176758
>>161665

Что за веобушное?
364 2176859
>>176758
valkyrie profile
Такой перевод нормально?:
Platina : Eek!
Platina : I... I'm so sorry! Your clothes, are they...?

Надо ещё перевести Your clothes, are they...? Как правильней?

Тут какбы шутки кончились, и я по паре диалоговых окон буду зажимать на диск, до победного конца. Так что не стесняемся.
365 2176924
>>176859
Ваша одежда, она/это...?
В зависимости от контекста.
366 2176936
>>176924
Контекст то и непонятен. Там дальше, ее кун ей скажет что это были ее покупатели. И вот непонятно, толи она так сказала изза того что пролила воду, толи изза того что заподозрила чтото.
367 2176938
Пролила ли она воду тоже непонятно) анимации нету
368 2176967
За таким лучше в /fl/
369 2177071
>>174713
У нас препод по ассемблеру хуевый, там проще самостоятельно заботать.
370 2177961
>>079195 (OP)
Я уже не могу, не пойму в чем проблема-то. Всё расписал в комментариях.
Как тут может быть деление на 0, если для моего типа данных 2байтовых я беру ДХ, который после умножения равен 4 и делю его на 16битный делитель, я так понимаю он число выше берёт то есть ВХ = 4?
image.png316 Кб, 1920x1080
371 2177966
Даже переменных не показывает, я хз как тут вообще можно работать.
372 2177968
>>177961
>>177966
только там в переменных неправильные комменты, это от прошлой лабы
373 2177978
Я тут сохраню код никто не против? дома чтобы попробовать тоже самое проделать.
; СПО Л/р 1 (COM)
; Арифметические операции: вычисление D=(A-B)C
; Порядок компиляции программы:
; 1. Ассемблирование: TASM.EXE lab1com.asm
; - в результате создается объектный модуль lab1com.obj
; 2. Компоновка: TLINK.EXE /t lab1com.obj
; - в результате создается COM-файл, готовый к исполнению
;F = A - B
C / D + E
CODESG SEGMENT PARA ; определение сегмента кода
ORG 100H; стандартное начало COM-програмы
.386 ;
ASSUME CS:CODESG, DS:CODESG, ES:CODESG
MAIN:
; исполнимая часть программы
; вычисление F = A - B * C / D + E
SUB AX,AX ; обнулить регистр АХ
SUB BX,BX;

MOV AX,varB ; записать в AX значение varB 2
MOV BX,varC ; записать в BX значение varC 2
IMUL BX ; АХ умножается на ВХ, 4 сохраняется в DX, а в АХ 0
SUB DX,DX;
SUB AX,AX

SUB BX, BX;
MOV BX, varD ; присвоим значение BХ = 4
IDIV BX; ; Поделим ДХ на BХ - 4:4 = 1, 1 запишется в AX
SUB DX,DX;

MOV BX, varA; ; BX = 6
MOV CX, varC; CX = 2
SUB BX, AX; ; BX = 6-1 = 5

MOV AX, varE; AX= 2
ADD AX,BX; AX = 5+2 = 7

; стандартное окончание программы
MOV AX,4C00h
INT 21h
;------------------------------------------------------------
; определение данных внутри сегмента кода
varA DW 6 ; cлово А (знаковый)
varB DW 2 ; слово В (знаковый)
varC DW 2 ; слово С (знаковый)
varD DW 4 ; слово-результат D (знаковое)
varE DW 2 ;

CODESG ENDS ; конец сегмента кода
END MAIN ; указывает, что исполнимая часть программы
; начинается с метки MAIN
373 2177978
Я тут сохраню код никто не против? дома чтобы попробовать тоже самое проделать.
; СПО Л/р 1 (COM)
; Арифметические операции: вычисление D=(A-B)C
; Порядок компиляции программы:
; 1. Ассемблирование: TASM.EXE lab1com.asm
; - в результате создается объектный модуль lab1com.obj
; 2. Компоновка: TLINK.EXE /t lab1com.obj
; - в результате создается COM-файл, готовый к исполнению
;F = A - B
C / D + E
CODESG SEGMENT PARA ; определение сегмента кода
ORG 100H; стандартное начало COM-програмы
.386 ;
ASSUME CS:CODESG, DS:CODESG, ES:CODESG
MAIN:
; исполнимая часть программы
; вычисление F = A - B * C / D + E
SUB AX,AX ; обнулить регистр АХ
SUB BX,BX;

MOV AX,varB ; записать в AX значение varB 2
MOV BX,varC ; записать в BX значение varC 2
IMUL BX ; АХ умножается на ВХ, 4 сохраняется в DX, а в АХ 0
SUB DX,DX;
SUB AX,AX

SUB BX, BX;
MOV BX, varD ; присвоим значение BХ = 4
IDIV BX; ; Поделим ДХ на BХ - 4:4 = 1, 1 запишется в AX
SUB DX,DX;

MOV BX, varA; ; BX = 6
MOV CX, varC; CX = 2
SUB BX, AX; ; BX = 6-1 = 5

MOV AX, varE; AX= 2
ADD AX,BX; AX = 5+2 = 7

; стандартное окончание программы
MOV AX,4C00h
INT 21h
;------------------------------------------------------------
; определение данных внутри сегмента кода
varA DW 6 ; cлово А (знаковый)
varB DW 2 ; слово В (знаковый)
varC DW 2 ; слово С (знаковый)
varD DW 4 ; слово-результат D (знаковое)
varE DW 2 ;

CODESG ENDS ; конец сегмента кода
END MAIN ; указывает, что исполнимая часть программы
; начинается с метки MAIN
374 2177995
>>177978
Уже вроде было в треде. С квадратными скобками помещается значение переменной, без скобок адрес.
375 2177998
>>177995
А, лол, в этом что ли проблема. Я думал с регистрами запутался.
376 2178009
>>177998

>А, лол, в этом что ли проблема.


Хз. Чё у тебя там нули в регистрах?
377 2178282
>>177978

> ; АХ умножается на ВХ, 4 сохраняется в DX, а в АХ 0


Нет.

> SUB DX,DX;


> SUB AX,AX


> ...


> IDIV BX


Ты делишь ноль на BX. И да, возможно ты запутался со скобками, но это зависит от ассемблера.
378 2178666
>>177961
У тебя же буквально на сайте написано, что в операции деления учавствуют 2 регистра. Старшая часть лежит в dx, младшая в ах.
Ты не можешь поделить на dx, он учавствует в делении. Рекомендую делитель хранить в памяти в качестве переменной.
Также для вычислений тебе нужно знать про команды cbw, cwde и cdq.
Почитай учебник Юрова, там про всё это написано.
379 2179133
PHRACK #70
http://phrack.org/issues/70/1.html
Всего-то пять лет прошло
Апостол.mp45,5 Мб, mp4,
640x480, 2:11
380 2179255
Собеседование на Reverse engineering 1941 год. Лубянка...
381 2179666
>>179255

> Nachalnik-sempai, eto mne?


> (✿‿)

382 2179668
>>179666
Что-то смайлик обрезался

> (✿


> ‿)


> ‿)


> )

383 2179669
>>179255

> Nachalnik-sempai, eto mne?


> \(^-^)/

384 2179922
>>179666
Соболек ?
385 2179923
image.png284 Кб, 526x354
386 2180050
>>179923
А все таки ?
387 2180247
>>179255
Там же нет реверса, он сначала должен был разобрать и собрать замок, а только потом открыть.
388 2180251
>>180247
Он деобфусцировал защищенное протектором приложение Коньяк.exe
Тебе что мало ?
da-mne-tvoi-kluch-nachalnik.png223 Кб, 756x444
389 2180606
>>180050
Da mne tvoi kluch nachalnik, naher ne nuzhen.
16339626643570.gif397 Кб, 720x480
Аноним 390 2180648
>>088092
2. Перевыведите уравнение Шрёдингера и все Гилбертовы тензоны полей ЯО-ХМАО за 7 строк
cabinet035bartasmagnusekmanfredrik006.jpg123 Кб, 1200x800
Аноним 391 2180661
Зачем нужен этот тред?

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

Количество инфы по теме уже давно перегнало ёмкость памяти человека, и дальше будет только хуже.
392 2180686
>>079195 (OP)
Хочу поднять ассемблере микросервисное веб приложение, где можно почитать о том, как это сделать на вашем чудо языке?
393 2180875
>>180686
Первый звоночек
0002.jpg35 Кб, 1236x715
394 2180885
395 2181167
>>180686
Ассемблер это там где надо все писать с нуля. Вот и пиши, готовых решений нет.
396 2181217
>>180661

>Количество инфы по теме уже давно перегнало ёмкость памяти человека, и дальше будет только хуже.


Ну да... Расскажи мне как работает CD-ROM Playstation 1
397 2181282
>>180686

Ну, тип, берешь https://libevent.org/ и теребишь ее функции и процедуры.
398 2181288
>>181217

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

Порты управления по адресам с 1F801801h по 1F801803h

Дальше вопросы?
399 2181329
>>181288
DMA нет в твоём посте.
Как мне работать с инфой? Почему на диске 1 файл, а CD-Rom подгружает и там и здесь?
400 2181339
>>181288

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


Я не знаю точно, но похоже на домыслы.
401 2181347
>>181329

>DMA нет в твоём посте.



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

DMA и его канал 3 находится в CPU и к контроллеру CD о котором шел спич не относится.

Что то мне подсказывает, что петушочек-то ты залетный и выебнувшись про контроллер CD PS1 даже и не предполагал насколько тут тебя обоссут.

> Я не знаю точно, но похоже на домыслы.



Я уже понял что ты петушок.

> Почему на диске 1 файл, а CD-Rom подгружает и там и здесь?



Потому же почему почему в DOOM 1 файл а монстров и текстур в игре дохуя да еще и музон играет. И диск тоже в разных местах скрипит.

Ну и да, на диске PS1 должно быть как минимум ДЖВА файла и если ты мне сейчас не расскажешь прочему и какие, то я начну тебя обоссывать уже в полную струю, а там может твой пердак и до популярной нынче швабры дойдет.
402 2181348
>>181288

>Порты управления по адресам с 1F801801h по 1F801803h


Короче только это по существу, и чё делать? Даже DMA нет.
Как, что, куда, почему? Где это написанно, покажи?
403 2181351
>>181347

>DMA и его канал 3 находится в CPU и к контроллеру CD о котором шел спич не относится.


Ты так скозал?
Опять одна вода.
404 2181371
>>180661

>Количество инфы по теме уже давно перегнало ёмкость памяти человека, и дальше будет только хуже.


Ну что, признаём обосратушки? Ибо кроме вычитанных 4 портов контроллера нихуя не смог найти(даже DMA).
405 2181482
>>181347

>эти картинки


Если на заборе написано ХУЙ....
406 2181490
>>181348
>>181351
>>181371

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

Во-вторых ты сейчас ее проглатываешь и подставляешь рот во второй раз.

> Даже DMA нет.



А теперь я достопочтенным джентельменам обьясню, зачем этот >>181348>>181351>>181371>>181329>>181217 петушок сейчас будет глотать мочу в третий раз.
Дело в том, что петушок где-то выучил баззворд DMA и краем уха где-то там слышал про то как DMA работает на пекарне, а точнее на устройствах IDE и пришедшим к ним на смену устройствам SATA. В них действительно контроллер имеет всторенный DMA движок который позволяет по инициативе самого IDE устройства писать в оперативу хост машины. Вооружившись и экстраполировав это знание на всю технику петушок решил прийти на макач и, почувствовав себя невьебенно умным, начал высирать псто за пстом.

Только вот петушок не учел, что стандартом IDE из его манямирка мир не ограничивается и устройства могут реально быть устроенными по-иному. Как пример - упомянутый петушком контроллер CD из состава сосноли Sony PlayStation.

Данный контроллер не имеет на борту DMA функционала, характерного для IDE, поскольку архитектурно консоль устроена так что возмождности DMA впендюрены в многоканальный контроллер на борту CPU, с которым работает программист задавая ему команды по обмену данными между различными видами памяти и портами устройств (в противовес имеющемуся на ПК подходу, где DMA вызывается со стороны периферийных устройств).

А теперь, дабы петушок был окончательно обоссан и этот в этом треде все поняли кто этот обоссатый канючийся поридж, а так же для расширения кругозора прикладываю пик 2 и пик 3.

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

На все 5 минут, время пошло, уеба.
407 2181516
>>181490
соси чмоня. пасты катать. ору с тебя.
image.png346 Кб, 974x2607
408 2181518
Но все же поговорим про контроллер DMA , который, как я упомянул ранее, является компонентом центрального процессора. Этот контроллер являет собой главную, наверное силу пикселеварни (даже пиксельный GPU стоит поставить на второе место, поскольку, в отличии от CD, работать с GPU без помощи DMA практически не возможно) и по-существу именно благодаря нему разработчики раз за разом находили потанцевал - еще бы, ведь это центральный узел системы, без преувеличения, отвечающий за разруливание данных между всеми кишками пикселеварни от сосни.
image.png90 Кб, 299x168
409 2181521
>>181516

Так, начинаем засовывать в твой сракотан вторую швабру.
410 2181558
>>181518
Ты мне так и не обьяснил как работает связка контроллер - DMA. IDE приплел зачем то.
Ну да ваш гавпротык(хованский) сидит же, все мысли теперь о швабрах.
#Бег.mp4667 Кб, mp4,
270x360, 0:15
Аноним 411 2181568
>>181490
Сколько тебе годиков?
412 2181581
>>181558

> обьяснил как работает связка контроллер - DMA



Точно так же как и без связки - пишешь в регистры контроллеру чо ему делать, контроллер высирает то что прочитал в свою маняпамять (у него собственный буфер чтения есть куда он и высирает). С DMA этот процесс попросту автоматизируется и позволяет частично разгрузить такты CPU на копировании этого буфера в основную оперативу..
413 2181590
>С DMA этот процесс попросту автоматизируется и позволяет частично разгрузить такты CPU на копировании этого буфера в основную оперативу..
Опять вода на самом интересном месте. Вот я тоже могу сказать - чтобы был дождь, надо просто просить Прометея сильней.
А как это сделать? Где это написано?
415 2181613
>>181599
Ты мне ссылки не кидай. DMA PSX я и сам могу вставить в гугл. Ты мне объясняй как это работает,.и описание этого простого механизма. А то по твоим словам ваще ниче делать не надо и все в память само копируется. Вот только куда?
416 2181631
>>181613

> визги обоссыша



Ну кто же виноват в том, что ты мудила слепошарый и читать не умеешь?
417 2181635
Мне же надо указать адрес куда будет копироваться буфер контроллера через dma. Как это сделать, если все автоматически? У меня же программа, а не то что там у некоторых - скопировал один сектор хоть куда и радость.
image.png68 Кб, 974x433
418 2181642
>>181635

Нет, ну ты точно швабры заслуживаешь.
419 2181647
>>181642
Мне нужен полный механизм, от считывания сектора, до попадания данных в память по указанному адресу.
Картинки ты искать умеешь, я понял, найди теперь нужную инфу.
420 2181649
Че за фиксация на швабрах? Это в связи с чем?
421 2181668
Короче, если ты не критин-хохол(наврятли) , обьясняю. Есть диск, на нем данные, нужно узнать полный механизм как данные с диска попадают в память.
422 2181691
>>181649
>>181647

>ряяя сделайте мне домашку



Ну уж нет шваброгей, дальше ты как-нибудь сам.

Так и быть, напоследок подскажу: последовательность такая

Sync -> Setloc -> SeekL -> ReadN -> А вот тут ты начинаешь заводить свой DMA.

Каждая из этих команд бросает прерывание - какое описано в документации. Команды пишутся в регистр 1F801801h, параметры для них в регистр 1F801802h. В регистре 1F801803h ты настраиваешь, хочешь или нет получить в пердак прерывание после выполнения команды (бит 5) и должен установить 7 бит в 1 если хочешь получить данные с диска вместо хуя защеку.

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

> Че за фиксация на швабрах? Это в связи с чем?



Я понятия не имею, за чем ты своей дупой швабры ищешь.
>>181647
423 2181725
>>181691
Это не работает.
424 2181749
>>181668
Зависит от файловой системы же. Спроси о конкретной фс.
425 2181973
>>181749
Шваброзависимый сам все рассказать должен был, первым же постом.
Screenshot310.jpg192 Кб, 738x524
426 2183372
>>181749
Тут получается такая хрень:
1 Как с авто, это коробка передач, это педаль газа, тормоза сцепление. А как на этом ехать инструкции нет.
2 Функции CD-ROM на С из библиотеки psyq.
И для меня между 1 и 2 большая пропасть. Потому что я хочу наебать psyq, но чтобы наебать я должен знать как он работает на низком уровне, педали есть и что, там ньюансы есть - скорость считывания, свои трики какие-то.
Мне щас это не оч. нужно, но было бы неплохо узнать. Я это не нашёл, на пикрелейтед максимум что я нашёл. Но на практике всё по другому.
Double Dragon - Stage 1 (Kosuma Remix).mp426 Мб, mp4,
960x720, 3:28
427 2183424
428 2183867
Кто-нибудь может объяснить суть double free уязвимости? Я понимаю use after free, но про двойное освобождение даже на эльфийском инфы мало. Непонятно как ломается список чанков что появляется write what where условие?
429 2183920
>>183867
При определенных ситуациях (ОЧЕНЬ зависит от аллокатора памяти) при двойном освобождении следующая аллокация может вернуть указатель, который уже указывает на какой-то валидный чанк. Результат - у тебя есть 2 указателя на один чанк. Имея возможность читать по вернувшемуся указателю - получаешь примитив чтения, имея возможность писать - портишь данные по указателю со всеми вытекающими. В общем и в целом, double free очень сложно эксплуатировать но возможно, особенно в современных аллокаторах памяти. В конечном итоге всё очень зависит от конкретного состояния программы во время триггера самого примитива double free, от защит, реализованных в аллокаторе памяти, и от банальной удачи.
430 2184550
>>183920
Спасибо большое за ответ! Есть ли где инфа о том, по какому принципу можно понять когда будет производиться аллокация "поверх" другого объекта в различных аллокаторах?
431 2184602
>>184550
Как я уже сказал, это ОЧЕНЬ зависит от реализации аллокатора. Нужно реверсить/читать код аллокатора памяти, дабы понять что произойдёт при двойном освобождении и есть ли вообще в аллокаторе митигации против этой атаки. По этой самой причине, эксплуатация double free - одна из самых сложных если не самая из всех остальных типов уязвимостей на уровне памяти.
432 2185227
Люблю NoStarchPress
433 2185388
>>185227
1 пиу, типа робот играет против Масма, типа масм это почеловечески. И это не пропаганда? Специально же уводят от истины.
image.png26 Кб, 1145x220
434 2185472
https://blog.mozilla.org/attack-and-defense/
Существуют ли похожие бложики про хромого?
435 2187452
Швабра-кун, ты тут? У меня есть для тебя задача которую ты не сможешь решить, даже теоретически. И решения ты тоже нигде не найдёшь. Задачка из RE, и в RE было бы неплохо знать её решение.
436 2187497
>>187452
1 Примем за идеал реверсачера который оставляет минимум следов изменения. Минимум изменений - максимум эффективности.
2 Мне нужно изменить заархивированный код, я же его должен сначала разархивировать, потом изменить, написать архиватор и заархивировать. Заархивированный изменённый код получился меньше чем исходный.
Вот и найди мне примерный алгоритм уровня a,b,c, с помощью которого у меня получится заархивировать изменённый код в точно такого же размера архив, как и у исходного кода.
А то программирует мне мышкой тут...
Convoy.mp412,4 Мб, mp4,
640x360, 5:30
437 2187499
Чё? Жоска? Беги у своих хозяев решение спрашивай.
438 2187508
Просто если нихуя не делать, то и не наткнёшься на проблемы для которых нужно решение. И поэтому "кажется" что всё уже решено.
Я вот против этого с самого начала, а на швабра-куна ничего не имею.
439 2187571
Вся Украина на ушах). Это же нихуя, пропуск в евросоюз. Тьфу на вас ещё раз.
440 2187612

>1 Примем за идеал реверсачера который оставляет минимум следов изменения. Минимум изменений - максимум эффективности.


Можно конечно тут про швабры вспомнить, но что так, то так и будет.
unnamed.jpg29 Кб, 512x384
441 2187618
Вот это загадка. Как хохлу её решить? 80 лет архивировали без проблем, а тут вот вам нате. А кто... а кто это сделал?
442 2187705
Анонче, я вот начал читать Reverse Engineering для начинающих. И у меня вот проблема. Пытаюсь сделать листинг кода дефолтный хелоу ворлд на ++ в vs 2019. Пишу в консоли cl {Name}.cpp /Fa1.asm, все по методичке. Открываю 1.asm, а там пикрил на 8000 строк. А должно было бы быть как на 2 пикриле. Что делать? Я просто вторую сутку недосыпаю, и возможно разгадка у меня под носом, а я дурак не вижу. Помогите.

Ах и да. У меня вопрос. Если я не изучал ассемблер, но у меня есть опыт в программированиибольше чем хелоу ворлд, однозначно немного на плюсах, но в основном на шарпах. В основном вопрос к ассемблеру. Мне в этой книге все подробно разжуют, или лучше еще вместе с этой книгой, читать книгу по самому ассемблеру? Да и я сам хотел бы писать эксплойты, и читы. Что посоветуете?
443 2187759
>>187705
Чё ты Fasm не осилил?
444 2187764
Ждём решения под конец треда от многоуважаемых хохлов, как заархивировать информацию в точно указанный размер.
LoseYouselfCover.mp412,5 Мб, mp4,
640x360, 3:19
445 2187802
Чё? Не нужно? Я поехавший алкоголик?
А вот теперь представь что делают не поехавшие алкоголики.
446 2187820
Нужен любой алгоритм, любого еврея, который бы сжимал данные до точно указанного размера.
Я спать пойду. Можете свой ИИ озадачить, как вариант.
447 2187864
>>187705
Какой блять листенинг, высокоуровневый? В асме ты сам пишешь этот листенинг. Берешь пустой файл, переименовываешь его в .asm и пишешь код. У твоего листенинга ценность околонулевая. Написал код, запустил в отладчике, вот тебе и весь листенинг.
Научись работать с отладчиком. Ollydbg тебе инструмент на всю жизнь.
448 2187878
В асме писать код и отлаживать считай тождественно. Написал,, проверил, отладил, написал проверил, отладил... Зато ты точно знаешь что будет делать твой код. Долго, зато работает как полагается.
449 2187895
>>187705
Судя по листингу, там ещё адреса внешних ф-й. тебе же надо найти энтри поинт это обычно main, _main, _start, start, в винде свой формат вроде, там winmain@n, где n - размер аргументов в байтах.
450 2187929
Лоха увидел в низкоуровневом. Пиши в ЕСПЧ, в ООН пусть тебе предоставят алгоритм как сжимать до указанного размера.
Алгоритм это последовательность действий.
451 2188236
>>187878
Как же охуенно когда есть отладчик.
452 2188538
Спасибо релеватному поиску, гуглится всё что угодно кроме того что нужно. Может кто подсказать, откуда это пошло/взялось: при переключении с русской (скорее всего и другой) раскладки на английскую, дополнительно появляется событие keyUp для Ctrl ?
Eng 2 Ru:
```
KeyDown Alt
KeyDowb Shift
KeyUp Shift
KeyUp Alt
```
Ru 2 Eng:
```
KeyDown Alt
KeyDowb Shift
KeyUp Shift
KeyUp Ctrl
KeyUp Alt
```
453 2188555
Скачал исходники FASM для линукса https://flatassembler.net/fasm-1.73.28.tgz

Там в составе идут два бинарника для сборки. Но возникает вопрос: а они как собраны? Где их исходники?
454 2189462
Анонче, я вот сейчас прохожу книгу калашникова, и я так понял там я буду кодить только для DOS. У меня вопрос, я ведь смогу потом без проблем кодить под x64, да и вообще под новые ОС? Есть ли смысл проходить Калашникова?
455 2189695
>>189462
Калашникова не читал, но принципы что в DOS, что в винде, что в линупсах будут плюс-минус одни и те же, за исключением работы с ОС и железом.
456 2190010
>>079195 (OP)
Подскажите, пожалуйста, книгу по оперционным системам, которая бы описывала в общих чертах их строение как можно сделать на примере разных ос. Чтобы она не было тупо о винде или тупо о линуксе написана.
457 2190016
16308872710920.mp41,6 Мб, mp4,
400x720, 0:14
458 2190018
>>190016
Мерси, моё увожение
459 2190063
Можно ли сделать так, написать прогу которая бы загружалась при включении пк, копировала весь диск С с системой в память и уже из памяти загружала ОС.
460 2190083
>>190063
bootloader?
461 2190088
>>190063
GRUB умеет подобное
462 2190099
Какой самый минималистичный опенсорсный ассемблер под архитектуру x86-64?
463 2194107
Алгоритм как сжимать до нужного размера:
1 Разбиваем файл на чанки, присваиваем чанку тег несжатого чанка. Вычисляем новый размер файла с тегами.
2 Сжимаем с проверкой размера.
3 Если размер после сжатия чанка стал меньше нужного, подгоняем последний чанк под нужный размер. Оставшиеся чанки оставляем как есть.
Итог: сжатый файл нужного размера, распаковщик всё распаковывает.
464 2194216
465 2194576
>>194216
Где ты его исходники раздобыл?
466 2194595
>>190016
Годная книга, но идёт тяжеловато, почему-то больше 30 страниц в день не осиливаю, толи переведена так толи я такой тупой, но до этого плюсы, си, архитектуру и микроарихитектуру читал там нормально шло.

Но читать интересно.
467 2194971
>>194576
Кстати, а зачем исходники? Программисту на асме нужны исходники, зачем? Это тавтология какая-то.
468 2194992
>>194971
Программист на асме в теории может раскомпилировать любой исполняемый файл в асм вот тебе и исходник, кееееек
469 2195068
>>194971
>>194992
Исходники это вменяемые метки, макросы, каменты и в целом структура.
Без них это другая область.
470 2195702
>>194992

>в теории


Чегось? Статическое дизассемблирование по-прежнему алгоритмически неразрешимо.
471 2195797
>>195702
Я не разбираюсь в этом, у меня крайне поверхностные знания, мог хуйню сказать
472 2195937
Поясните, пожалуйста, каким образом посылаются команды на gpu? С моим нынешним уровнем знаний, я только знаю о том как команды на цп подаются и что этот цп через шину связан с северным мостом, который в свою очередь с видеокартой связан.

Так как команды на gpu подаются? Они напрямую программистом подаются или подаются на cpu и он решает что их нужно на gpu послать?
473 2195990
>>195937
Хороший вопрос в целом.

>Они напрямую программистом подаются или подаются на cpu и он решает что их нужно на gpu послать?


А этот не очень. Не знаю, но предположу, что команды посылаются на определённые адреса памяти. Конечно программистом, а кем ещё?
474 2195992
ЦП или просто железо это неодушевлённый предмет, потому все эти микросхемы и называют - железо. Они не могут принимать какого-либо решения.
475 2196011
>>195937
Может поможет, не знаю. Короче на PS1 картинка рисуется слоями, самый первый слой это интерфейс. Если тебе нужно изменить инфу как здесь>>116307, то ищи первый слой и как там происходит организация текста. Чем мог...
476 2196060
>>195990
Ну я имел в виду что типа gpu он же другой по микроархитектуре и больше заточен на обработку графики. ну и типа я знаю только что программист имеет доступ к памяти(регистры, озу, жд), а вот про gpu не слышал. Следовательно наверное cpu определяет может по каким-то меткам какие команды лучше делегировать gpu.

Хотя это всё очень долго, особенно если через память делать, а gpu надо очень быстро работать, объём вычислений огромный

>>196011
Спс, но я знаю как происходит отрисовка(поверхностно) мне интересно как команды на графический процессор подаются который и выполняет отрисовку.

>>195992
Ну да, они состоят из блоков цифрой логики которая по совокупности конкретных цифровых сигналах на конкретных входах даёт конкретные выходы.
477 2196114
>>196060
В асме ещё есть скрытый -1 уровень).

>Ну да, они состоят из блоков цифрой логики которая по совокупности конкретных цифровых сигналах на конкретных входах даёт конкретные выходы.


Только разница во времени, обычный cpu тебе даст на выход, допустим за 0,5 секунды, потому что он общего назначения. А видеопроцессор тебе даст на выход мгновенно, потому что он только под это и заточен, другие команды он не сможет выполнить.
А как туда подаются команды я не знаю)
478 2196120
>>196114

>Только разница во времени, обычный cpu тебе даст на выход, допустим за 0,5 секунды, потому что он общего назначения. А видеопроцессор тебе даст на выход мгновенно, потому что он только под это и заточен, другие команды он не сможет выполнить.


Спасибо это я знаю.

Меня именно интересует как команда в gpu подаётся. У меня пока 2 варианта предполжений:

1. cpu сам определяет какие команды можно делегировать gpu а какие нет, но это долго. Пока это команда на cpu поступит с истоничка ввода, пока cpu обработает, пока она по шине придёт на северный мост, пока она её отправит на видеокарту, это колоссальные потери времени.
2. Команды для графики не попадают на cpu вообще, они с источника ввода подаются на южный мост, южный мост делигирует их на северный, а северный мост отправляет её на видеокарту, а видеокарта после обработки отправляет её на монитор.
479 2196133
>>196120

> cpu сам определяет какие команды можно делегировать gpu а какие нет, но это долго.


Да как он может чёто делегировать? У него уровень mov ax, bx. Ты может путаешь, считаешь что mov это команда, а ax, bx это переменные? Нет. mov ax, bx это одна команда, mov ax, cx это другая команда. У этих команд есть определённый двоичный код.
У видеокарты может быть совсем другой код и мнемоники. У видеокарты может быть mov ax, ebx и соответствующий двоичный код. mov ax, ebx на процессоре общего назначения недопустима, потому что нарушает логику предназначения этого процессора. А на видеокарте вполне может быть.
480 2196148
mov ax, [bx] это тоже одна команда, она задана на заводе-изготовителе. А mov ax, [bx] это просто мнемоника, тупо чтобы не писать в своей программе двоичный или hex-код.
481 2196157
ЕЩЁ. ВСЕМ ВКАТЫВАЛЬЩИКАМ В ИТ!
Вы должны понимать для чего нужен ISO - Международная организация по стандартизации.
Именно там назначается двоичный код для мнемоники mov ax, [bx]. Там назначается вообще всё, поэтому структурировать знания лучше начинать с этого. Со стандартов.
Россия, например, может назначить другой код для мнемоники mov ax, [bx]. Поэтому написанный в вашей программе mov ax, [bx] не будет работать на российский процессорах.
image.png4 Кб, 462x137
482 2196172
ебать пацаны я в ахуе, всего за 10 часов научился хеллоу ворлд писать
image.png2 Кб, 328x43
483 2196183
db - 1 байт.
хеллоу ворлд содержит 11 байтов.

как нахуй оно помещается
484 2196200
>>196183
Это шорткат для
db 'H'
db 'e'
и т.д.
485 2196203
>>196133
Ай блядь, вот я ебланище, даааа. Команды это же от архитектуры зависит, понятное дело что у видеокарты какая-нибудь своя архитектура и там другое всё.
486 2196204
>>196200
а, понял. Я видел че-то про массивы где чтобы не определять по одной цифре все пишется в одной строчке.
487 2196206
>>196157

>российских процессорах


Гавно с 1 ядром и частотой 400 мега герц для разработки на котором нужно стоит невыездным хуесосом в оборонке на пожизненный срок? Спасибо, откажусь
488 2196232
>>196203
Да не от архитектуры, а от стандартов. Свою архитектуру может любой дурак сделать, только она не будет совместима с архитектурой которая распространена по всему миру. Это важно!
В этом и суть ISO, суть стандартов.
489 2196295
Да и видеокарта это очень быстрое устройство. В моём понимании это как блок выключателей пикселей, практически нет задержки. Ты отправляешь этому блоку данные, он сразу же отображает картинку, включает нужные пиксели. Понятно что там вычисления тоже есть, но все они сводятся к тому чтобы видяха фунциклировала как простой блок выключателей. Поэтому нет смысла посылать что-то процу, чтобы он подумал и потом делегировал.
490 2196370
>>196295
Ты даже не представляешь насколько сложные вычисления у видяхи когда она обрабатывает 30-60 кадров в секунду какой-нибудь 3х мерной игры типа гта.
491 2196400
>>196370
Не представляю. Но чисто логически, туда не могли запихать процессор, который делает mov ax, bx и вот эти все ненужные движения для отображения видео. Там наверно стоит проц со специфическими задачами, который не будет вычислять 3 в кубе(к примеру), а сразу выдаст прописанное значение.
И как бы вопрос о сложности. Сложно по сравнению с чем, с человеком, с cpu, c другим gpu?
Это чисто попиздеть, в специфики видеокарт я никакой.
492 2196418
То есть 3 в кубе. Можно послать процу двоичное три, потом ещё раз двоичное три, и проц выдаст двоичное 9. А на специфическом проце посылаешь двоичное 3, потом ещё раз двоичное 3, и он выдаёт двоичное 27. Одна операция, а вторая посложнее будет, но процам одинаково.
Это -1 уровень асма для меня)
493 2196431
Понимаете меня или нет? Два проца делают одну операцию за один такт, но во втором случае операция сложнее.. для человека.
Поэтому в приставках используются более слабые процы, потому что им не надо вычислять 3 умножить на 3, у них никогда такой задачи не будет. Утрированно всё.
Без обид, написал как есть и похуй, заебало всё.
494 2196590
Що такое? Тред затопило румяными школьниками?
495 2196674
1 северный мост уже встроен в чип
2 у видяхи векторная архитектура
3 а) цп может отправлять данные в коммандый буфер
б) видяха имеет dma и mmu для работы с ram, тогда цп просто шлёт команды
image.png117 Кб, 320x200
496 2196721
>>196674
А я помню на CGA надо было ждать обратного хода лучша и только после этого писать в видеопамять, иначе помехи были на экране.
На EGA уже пофиксили это.

А ещё заебаты видеорежим на VGA был
497 2196743
>>196721
3 а) тоже уже устарел.
Тогда же прямо в видеобуфер писали. Сейчас же нужен драйвер и динамическая либа. Всё это пишут на яву. Даже для загрузчика ассемблер уже не нужен, есть uefi.
498 2196881
>>196721
Это ремейк? Графика вроде хуже была в луме.
499 2197564
Парррни
я ебал ваш язык просто пиздец
нихуя непонятно
и работает через жопу
500 2197856
Вопрос как нахуй учиться если на любой вопрос по ассемблеру препод отвечает односложно.
Ууу сука.
Я может вас уже заебал но мне похуй я больше не знаю как тут выжить.
INB4: Да я пытался в скобках переменные писать, еще пытался word [varA] и т.д., файл экзе. ТАСМ, i8086
Почему-то когда выполняю программу и вместо переменных использую числовые значения, то регистры работают так как надо, помещаю 2 в ах в регистре 0002, а если через переменную это делаю mov ax, varA то регистр заполнен FFF5.
501 2197857
https://pastebin.com/7MQa7s5n
вот код программы ехе
502 2197943
>>197856

> а если через переменную это делаю mov ax, varA то регистр заполнен FFF5.


> еще пытался word [varA]


Так а что получается, если написать mov ax, word [varA]?
image.png147 Кб, 1794x877
503 2197978
>>197943

>Так а что получается, если написать mov ax, word [varA]?


по моей логике? или что по факту происходит
EA00 записывается.
Я вот ща думаю может там из-за того что тип данных такой большой dw записывается лишняя инфа
image.png124 Кб, 1707x666
504 2197983
>>197943
меняю значения регистр тот же
image.png264 Кб, 1844x818
505 2197986
>>197943
Если я прямо вставляю без varB, то записывается корректно всё значит что-то не так с переменными
506 2198030
>>197856
Чё у тебя там dw везде, если у тебя 16 битные регистры. Ты совсем чтоли тупой? 16 бит это word.
1 это бит
ff это байт
ff ff это слово
ffff ffff двойное слово
507 2198037
>>198030
dw - это и есть 2 байта = 16 бит = word, что не так?
по заданию надо пользоваться директивом dw
508 2198046
>>198037
dw это double word, двойное слово 32 бита.
Значит задание у тебя с подъебоном и препод всё правильно сделал, потому что ты нихуя не шаришь. Тебе надо в команде написать указатель на данные в памяти, которые ты туда записываешь своими var'ама.
image.png92 Кб, 1411x779
509 2198047
>>198046

>dw это double word


это толстый троллинг?
d - директив w- word
dd - директив d- double word
учи азы
510 2198050
>>198047
Ну а ты можешь посмотреть в TASME как они у тебя записываются в память, дундук.
511 2198052
>>198050

>в TASME


В Турбодегаре тоесть
512 2198057
>>197978
>>197983
>>197986

а я что по-твоему делал?
>>198050
513 2198067
>>198047
Что еще за директив?
514 2198074
>>197978
Почему DS не инициализируешь? Куда он указывает у тебя?

>>198046

>dw это double word, двойное слово 32 бита.


Нет.
DB, DW,... - Declare Byte, Declare Word,...
RB, RW,... - Reserve Byte, Reserve Word,...
515 2198080
>>198074

>Почему DS не инициализируешь? Куда он указывает у тебя?


А я не знал что его надо инициализировать
и что туда пихать, DATASG ?
516 2198087
>>198080

В синтаксисе TASMа не разбираюсь.
Обычно для ДОС-приложений инициализируют так:

MOV AX, DATASG
MOV DS, AX
image.png267 Кб, 1883x860
517 2198089
>>198087
Ебать, ты гений и спаситель, спасибо.
518 2198126
>>198089
Это ты тупиздень, не можешь в банальную логику с отладчиком. Выживальщик бля я ебу
519 2198162
>>198126
ты уже выучил что dw это слово?
520 2198168
>>198162
Да нахуй мне чёто учить? Посмотрел в отладчике чё получилось и всё понял.
Учи, учи, когда крышей двинешься уже и не вспомнишь ничего.
521 2198576
>>198126
>>198089
Блядь, а че тогда делает ASSUME DS:DATASG? Не шарю за тасм.
522 2198705
>>198576

> Транслятор должен знать заранее, через какие сегментные регистры будут адресоваться ячейки программы, и мы сообщаем ему об этом с помощью оператора assume (assume - предположим). При этом в регистр CS адрес начала сегмента будет загружен автоматически, а регистр DS нам придется инициализировать вручную. Обращение к стеку осуществляется особым образом, и ставить ему в соответствие сегментный регистр (конкретно - сегментный регистр SS) нет необходимости.



ASSUME похоже просто указывает что за DS закреплена секция DATASG.
523 2198725
>>198705
Я же.
Так-то какой-то дибилизм. Зачем нужно указывать ASSUME DS:DATASG? Если DS всё равно надо инициализировать?
Почему у нас такое образование? Зачем нужна эта хрень которая только запутывает? Возможно, если писать простыни кода эта директива окажется нужна, но лучше же научиться пользоваться в тот момент когда она будет нужна. Тогда и заучивать ничего не надо будет, сам поймёшь нужность и автоматом запомнишь.
Как бы образование идёт от теории к практике, но по моему мнению лучше чтобы было наоборот. Это как минимум интереснее чем тупо заучивать.
TASM уже нахрен никому не нужен, но заставляют заучивать эти директивы. Да тут рили свихнуться можно если заучивать директивы от всех ассемблеров, в голове просто не останется места для чего-то ещё. А код то в итоге получается одинаковый.
524 2199805
>>198047
>>198067
Какой директив ещё? define
define byte,.word, dobleword

В фасме по крайней мере ещё есть
dq - 8 байт, для 64-битных систем основной тип.
dt - define ten 10 байт.
525 2199817
>>198037
Верно для x86, на арме 4 байта - это word слово, а 2 байта это half-word пол слова. Остальное называется так же.
526 2200564
Допустим мы вводим с клавиатуры число 123,
Записываем в массив, теперь чтобы вывести 2 хочется вписать String[1], но выдаст 23, как можно после String[1] добавить '$' чтобы вывод закончился на двойке?
527 2200696
Поясните, плиз, каким образом работают программы типа cheat engine или artmoney? Ты типа выбираешь процесс и они в диапазоне памяти где расположен текст программы этого процесса и его переменные\стеки\хуеки сканируют всё на наличие искомого значения? Я правильно понимаю принцип их работы?
528 2200706
>>200696
Читерить собрался?
529 2200710
>>200706
Нет. Мне просто интересно решил плотно сесть в компьютер сайнс, читал книжки по архитектурам, микроархитектурам, по операционным системам читаю книжку(мне в этом треде) 2 недели назад посоветовали. Потом планирую про компиляторы почитать, про то как антивирусные программы работают.

Нравится низкоуровневая хрень просто.
530 2200728
>>200710
Как я понимаю, они ищут в памяти изменяемые значения. Если значение не меняется, то ничего не найдёт. Например, меняется кол-во патронов, то можно найти. Статичные объекты не найдёшь.
Я никогда не пользовался, отладчик есть.
Лучше научиться пользоваться отладчиком.
Мне он не пригодился ни разу, даже в трудных моментах. Возможно, лучше расскажут те кому он помог.
531 2200738
>>200728
Спасибо, понял. Ну я про отладчик не слышал, думаю про это я почитаю когда до книги про компиляторы дойду
532 2200745
>>200738

>Введение в крэкинг с помощью OllyDbg


в шапке
Лучше с этого начни.
533 2200773
>>200745
Мерси. А ещё вопрос ты писал

>Как я понимаю, они ищут в памяти изменяемые значения


Я так понял в озу у каждого значения есть свойство типа read write и если там write разрешено то такое значение считается изменяемым, а если read only то и трогать его нельзя да и смысла нет особого
534 2200839
>>079195 (OP)

>Книги по ассемблеру:


>"Архитектура компьютера" Э. Таненбаум


Есть ли смысл читать если до неё прочитал книгу супругов Харрисов тоже по архитектуре?
535 2200849
>>200773
Имел ввиду значения которые изменяются. Ну то есть если кол-во патронов изменилось, то значит изменились значения в памяти, вот artmoney и должен их показать. Это примерно, потому что я не пользовался artmoney и читенжином. У меня принцип - нет читерству.
536 2200854
>>200849
Понял, спасибо. Да не читерит никто и вообще в игры не играет, это в образовательных целях всё.
537 2200864
>>200854
В отладчике можно сделать почти также, может даже проще получится. Надо поставить один брейкпойнт перед стрельбой, второй после стрельбы. Сделать дамп памяти на первом брейкпоинте и второй дамп памяти на втором брейкпоинте. Два этих файла с дампами сравнить в hex-редакторе (neo например). Он покажет отличия, отличия которые для видеоотображения значения сразу отсеиваются. С остальными значениями можно ковыряться, ставить поочередно брейкпоинты на изменения этих значений. Постепенно найдешь значение в памяти которое влияет кол-во патронов. Чем лучше шаришь в реверсе и во всяких функциях, памяти и отладчиках, тем быстрее найдешь.
538 2200870
>>200864
Мерси, спабо за подробное объяснение. Тогда после книжки по осям пойду читать про отладчики и компиляторы. А ты сам на каком стеке работаешь если не секрет?
539 2200876
>>200870
Если честно, я даже не знаю что это значит. Мне надо было кучу файлов соединить в один, я знаю что можно это сделать при помощи досовской команды, я не вспомнил и не нашел, написал прогу на асме которая все соединила)
540 2200881
>>200876
Я имел в виду работаешь ты на работе, какие технолгии используешь. Какой ты программист, системный там или что?
541 2200883
>>200881
Это хобби. По сути да, системный программист, сетевой инженер.)
542 2200887
>>200883
Моё увожение. Сетевой инженер это ты чтоли у какого-то провайдера работаешь и более мелким провайдерам интернет подаёшь?
543 2200892
В реверсе решает практика. Ты хоть сто книжек прочитай и не увидишь в коде шифрования, а когда сам пару раз расшифруеш, зашифруешь, сразу увидишь.
Это мои наблюдения, а не то чтобы я там спец по шифрованию.
544 2200893
>>200887
Раньше работал, в нулевых.
545 2200897
>>200892
Никто не спорит, но без книжек ты не будешь иметь общего представления что можно делать и вообще как к делу подступиться. Будешь как один кадр с моего предыдущего места работы который все знания получал через телеграмм каналы и статьи из поисковика. Он много лет работал и когда нужно было выполнить допустим 100 похожих команд где просто 1 число увеличилось на 1 он их копировал в редактор текстовый и там менял эти значения, хотя элементарно в консоли скрипт 5 сек написать чтоб он эти команды размножил и применил.
546 2200902
>>200564
1. Для того, что бы вывести число, тебе надо сканкод клавиши, который ты получил при отконвертировать в ascii символ, который ты будешь выводить на экран.
2. Можно вывести напрямую в видеобуфер, можно вывести символ через int 10h, либо через int 21h, в последнем случае, перед выводом символа непосредственно запиши после него $ в область памяти.
547 2200908
>>200902
Мм...
Мне просто надо арабские цифры перевести в римские, я думал можно как-то отдельно массив отфильтровать и поставить 9 условий поставить if str[0] = '1' then str[0] = 'I' ну грубо говоря, хотя херня метод всё равно
548 2200909
>>200897
А его не выпизднули за такой подход к делу?
549 2200911
>>200908
У тебя начнуться проблемы с таким подходом сразу на цифре 4, потому что в памяти это 2 знакоместа - I и V.
550 2200919
>>200909
Нет, он с обязанностями должностными справлялся, а это так маленький ньюансик. Человек пришёл с 0 опыта с компанию и тупо сам в процессе всё изучил через поисковики и телеграмм каналы, лол. Ни одной книжки он никогда не читал, на практике много что освоил, но вот такие пробелы когда он не знал про консольные скрипты и правил много однотипных команд через редактор текста присутствовали.
551 2200923
>>200919
Пиздос, конечно. Не страшно то, что с нулевыми знаниями пришел, хуже что по ютюбу, поисковикам копипастить научился.
552 2200927
>>200923
Ну он такой человек был, нормис, задротскими навыками не обладал, книжки читать он не мог, клинило его, устроился по блату кстати.
553 2200931
>>200911
а ты бы как сделал?
554 2200938
>>200911
>>200931
Я вот всё же думаю надо чтобы одна цифра занимала скажем 5 байт, то есть заполнить $
тогда типа если 1й элемент массива = '4$$$$', то можно будет его заменить на 'IV$$$'
555 2200976
>>200938
Как бы сделал не знаю, первое что приходит на ум, как раз соответствие числа индексу в массиве с римскими числами. Да, пожалуй, лучше под римские числа отводить не байт, а 4 байта, но тогда вопрос, как конвертировать тысячи и тому подобное.
556 2201038
Ты что во что собрался преобразовывать? Арабские цифры в римские это не ответ. Для преобразования есть команда xlat. Символы они и есть символы, просто изображение чего-то. Это у тебя изображение чегото или что? Надо значения этих символов в памяти преобразовать в другие значения в памяти. До преобразования символов надо пересчитать значение из hex в dec, чтобы в памяти вместо FFh стало 255h, например. Потом это значение посимвольно преобразуешь в ascii-код(или что у тебя) символов I V через xlat.
557 2201047
>>201038

>посимвольно преобразуешь


Поразрядно
Фикс

Это с помошью команды сдвига shr, shl
558 2201265
>>201038

>Надо значения этих символов в памяти преобразовать в другие значения в памяти. До преобразования символов надо пересчитать значение из hex в dec, чтобы в памяти вместо FFh стало 255h, например. Потом это значение посимвольно преобразуешь в ascii-код(или что у тебя) символов I V через xlat.


Окей, попробую завтра тогда. Спасибо.
559 2201296
>>079195 (OP)
Поясните, если ли смысл пытаться обмануть системы антиплагиата? Насколько я понял тупо клонировать такие же символы только с другим кодом не вариант и программа палит. А как она палит? Графически чтоли текст распознаёт?
image.png100 Кб, 1463x745
560 2201599
хуясе я программист.
561 2201654
>>201038
А если мы с клавы вводим числа 123 те же, в переменную
InBuff label byte
MaxSymb Db 9
RealSymb Db ?
StringT db 9 dup ('$$$$')
То там же хранится его десятичная версия в виде символом 1, 2, 3?
Тогда и переводить из 16-ричной в десятичную не надо? или я не прав
Тогда надо подумать как на разряды поделить.
562 2201743
>>201654
Тогда не надо. Там же в переменной будет ascii 31h 32h 33h. Тогда надо отнимать 30h, иначе надо делать большой массив для xlat чтобы на 31 месте бы код I.
Жопа, xlat наверно мало тут поможет, потому что уже для 2 надо II, а это два байта. Сложно.
563 2201768
Ты как здесь хочешь?
https://www.kalkulaator.ee/ru/konverter-rimskix-i-arabskix-chisel

Тогда наверно надо отнять 30h, потом из hex 010203 сделать 123h. Потом както дальше преобразовать в римскую систему счисления, а потом уже xlatом менять на ascii коды M C L X и т.д.
564 2201773
>>201768
Не, мне по заданию надо просто цифры вписать как поток
123
и чтобы из этого получилось -I-II-III-
51 -V-I-
image.png6 Кб, 716x98
565 2201785
В общем у меня ща задача стоит получить отдельно разряды что пользователь ввёл, а вот отдельный разряд я умножу на 6, так как у меня между римскими числами 6 байтов разница
1й разряд (нулевой) = 06 = 0, выведет -I-
1
6 = -II-
Ух бля, уже близко к победе
566 2202049
Не вывозит 2х ядерных процессор бюджетного ноутбука открытые 2 вкладки ютубе... не вывозит...
567 2202089
Почему mas[si] при si = 12h не выдаёт 12h элемент массива а какой-то мусор, в дебагере всё ок, си = 12h, а если вручную mas[12h] прописать то все правильно выводит.
И если си не может быть в скобках, тогда как туда переменную можно засунуть?
568 2202514
Аноны, недавно более-менее разобрался, как работает Meltdown. Прлучается, имея железо с этой уязвимостью, я могу несанкционированно считывать любую инфу из оперативной памяти. Можно ли, используя эту уязвимость, получить доступ к сегменту кода исполняемой программы и дизассемблировать её? Если прога не большая, она ведь вся в памяти будет?
И если можно, почему так ещё не делают, ведь это огромное упрощение реверса если прога как-то упакована или защищена, ведь её код можно просто спиздить из оперативки.
image.png3 Кб, 416x94
569 2203057
Сегодняшний день я назвал бы победным.
Совместными усилиями треда я смог выполнить лабораторную работу.
Благодарю анонимов за поддержку.
570 2203066
>>203057
У тебя между числами два тире, а должно быть одно.
571 2203069
>>203066
Да похуй)
надеюсь преподу тоже
image.png326 Кб, 575x914
572 2203341
Помогите найти где спиратить, плиз
За первую часть актуальную тоже буду благодарен
573 2203612
Вот что>>202514 с людьми высококоуровневое программирование делает.
574 2203770
>>203057
Если честно, препод какой-то полупидор с полумерами. Скажи ему что в /pr делают полноценные проги/конверторы и этой хуйнёй не занимаются. Хуйня не будет работать как надо, потому что она хуйня.
575 2203976
>>203612
Из высокоуровневых ЯП ничего не знаю, только Си на троечку, если он считается. Пытаюсь вкатиться в асм потихоньку. Что не так с моим вопросом?
576 2204080
>>202514

>она ведь вся в памяти будет


Она и так вся в памяти в виртуальной
>>202514

>огромное упрощение реверса


Нет, анпакать можно по частям в процессе исполнения, а если и нет, ты и так можешь все задампать, чем ебаться с дырами спекулятивного исполнения на проце
577 2204102
>>204080

> ты и так можешь все задампать


Могу задампать, если никакой защиты от пиратства нет. А если прогу каким-нибудь вмпротом упаковали или зашифровали, то ведь проще уже распакованный код считать напрямую из памяти. По крайней мере, хотелось бы знать, насколько возможно это реализовать?
Типа, пока все пытаются бороться с программными уязвимостями, ты можешь воспользоваться уязвимостью железа (учитывая наличие оного) и полностью обойти какую-либо защиту.
578 2204122
>>204102

>А если прогу каким-нибудь вмпротом упаковали или зашифровали


Ну так и дампай из памяти после этапа расшифровки, и вообще, пчел, вмпротект - виртуализатор, как в условной яве есть байткод и ява-машина, так и тут своя виртуальная архитектура и команды поверх х86.
В какой бы момент времени и каким бы способом ты не добыл содержимое памяти, на выходе получишь раздутый код, который в декомпилере выглядит как нечитаемая каша такая же, как у тебя в голове, без обид.
Явное практическое применение подобных дыр - воровство данных и обход защитных механизмов для воровства данных. Пользы в обычном дебаге ноль, на своей локальной тачке с помощью подобных дыр нельзя сделать ничего такого, чего бы нельзя было сделать и без них.
1636150326370.png76 Кб, 649x933
579 2204194
>>204122
Спасибо что разжевал, теперь понятнее намного стало. А насчет каши согласен - надо как-то инфу в голове упорядочить или более углублённо изучить вопрос.
Мб посоветуешь какой-нибудь литературы по архитектурам? Сейчас мои знания на уровне этой книжки, что после неё стоит почитать?
image.png7 Кб, 402x145
580 2204334
>>203770
Пиздец, не принял защиту, начал низкоуровневую хуйню спрашивать мол 'а что если вписать твою хуйню которую ты выводишь вывести еще раз в конце?' В итоге у меня затирается чутка текст а я не ебу как это исправить.
сука
Я ему объяснил всё что делается в коде, а ему похуй,
Cпрашивает есть ли динамическое выделение памяти в ассемблере
Спрашивал а че значит лейбл, стринг т сколько выделяет байтов после ввода в переменную ( я отвечаю что столько сколько в реалсимб будет храниться, он недовольный урчит)
я хз как это защитить пизда
581 2204346
>>204334
В ассемблере динамического выделения памяти быть не может, так как это свойства операционной системы. Запрашиваешь страницы, потом смотришь, достаточно ли страниц памяти, если нет, запрашиваешь еще. Все это делается через проверку выделенных участков памяти и системные вызовы.
Тема объяснена в общих чертах в труде Programming From Ground Up - https://download-mirror.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf
Глава 9
и в видео из нескольких частей:
https://www.youtube.com/watch?v=RSuZhdwvNmA
582 2204348
>>204334
Так про память ссылки дал (тема сложнее, чем кажется на первый взгляд, советую видео посмотреть. Куча нюансов всплывает)
Далее, как следует прокомментируй код, что бы было меньше деталей за которые можно зацепиться.
Полный код программы можешь привести?
583 2204350
>>204348
>>204346

Ух нихуя, спасибо
https://pastebin.com/ENfePx9L
584 2204352
>>204350
Посмотрел код. Он как существо Франкенштейна, собирался из разных частей?
Выработай единый стиль написания кода. Либо все заглавными буквами, либо все строчными. Работай с целыми регистрами всегда (короче код), а с их частями - там где это необходимо.
Правильно:

>MOV AX,4C00h


>INT 21h



Неправильно:

>MOV DH, 10 ; позиция по вертикали


>MOV DL, 35 ; позиция по горизонтали


>MOV AH, 02H ; установить положение курсора


>INT 10H ; вызов прерывания BIOS 10H
Прокомментируй весь код.
585 2204364
>>204346
Уточню, что бы было понятно. Ассемблер - это инструмент. Сам по себе он ничего делать не может. Выделение памяти - функция операционной системы. Динамическое выделение памяти - работа с данными, размер которых заранее не известен. Достигается путем выделения нужных страниц памяти под данные по мере исчерпания свободного пространства уже выделенных страниц. Реализация - на усмотрения программиста. Дополнительную информацию я тебе привел.
586 2204365
>>204334

>динамическое выделение памяти в ассемблере


Нет такого понятия в АСМе. Ну то есть совсем.
Уточни, что имеется в виду. Если, это понятие в рамках какого-то ЯВУ, ну так и смотреть надо, как это делается в рантайме конкретного ЯВУ.
587 2204690
>>204334
Препод тут сидит чтоли, лол. Ок, завтра напишу конвертор в римские цифры и скину исходник. Сразу красный диплом проси)
588 2204707
>>204334
Так ты и не шаришь же нихуя. Ты пытаешься как-то уйти от задачи, решить её на высоком уровне. А я же тебе говорил, что изображение на экране это просто изображение. Вся суть в вычислениях.
Ты хочешь как-то хитро наебать ассемблер чтобы поменять одни символы на другие. Это так не работает.
Friends.mp46,6 Мб, mp4,
480x360, 2:05
589 2204725
Суть асма. Джо выживает.
590 2204836
>>204690
Не понял тебя если честно.
>>204707
Согласен
591 2206673
>>204836
Ты исходник привел в божеский вид?
592 2206999
Тяны любят логику, не знаю почему. Но они просто текут от логики. Обычно считают, что сами могут в логику, но не могут.
подсмотренно
593 2207313
>>206673
Да я хз че там делать, просто комменты добавлю и всё.
594 2207389
Как команды попадают на процессор видеокарты?

Видеокарта определённо регистрируется в операционной системе и она имеет свой драйвер.

Выходит всё таки что сперва процессор посылает сигналы на видоекарту через видео драйвер?
595 2207424
>>204364
Динамического выделения памяти не существует. Это просто большое по объему место в физической памяти которое выбрано и зарезерверивано ос для какой то перемнной в какой то программе
596 2207527
>>207424

> Это просто большое по объему место в физической памяти


> которое выбрано и зарезерверивано ос



Зависит от операционной системы. Если мы про linux - это объем неинециализированная память выделенная для программы.
Прочитай что такое стэк (stack и heap). Я ссылку привел на книгу.
597 2207535
>>207389

> Видеокарта определённо регистрируется в операционной


> системе и она имеет свой драйвер.


Да.

> Выходит всё таки что сперва процессор посылает сигналы на


> видоекарту через видео драйвер?


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

http://www.techhelpmanual.com/93-rom_bios_variables.html
598 2207536
>>207313
Там и лишнего можно выкинуть немного.
599 2207621
>>207535
Та, похоже, зря ты распинаешься. Этот щегол упорно не хочет читать ссылки, которые ты кидаешь, а предпочитает упарываться своими маня-гипотезами.
600 2207811
>>207535

>А архитектуре комьютера есть определенные участки памяти


А где они? В процессоре или в biosе?

У меня пробелы да, я читал про архитектуру, как там процессоры собираются из логических элементов, автоматов, триггеров, про асмы, про то как ввод вывод на сторонние устройства идёт, но нихуя не было там про работу видеокарты. Вот не знаю в какой книге этот пробел восполнить ты скинул мне ссыль я глянул вроде как эти адреса описсанные там к биосу относятся
601 2207819
>>207535
Насколько я понял по ссылке там какие-то биос переменные так и что блэт ты хочешь сказать что время работы пк когда пользователь в игру играет сигналы на видеокарту поступают через микросхему биоса или что?
602 2207831
>>207819

>сигналы на видеокарту поступают через микросхему биоса


Ты тупой или да? Микросхема БИОСа - это ПЗУ. Туда программа записана ('прошита'). Как через ПЗУ могут "поступать сигналы" на какую-то там видеокарту?
604 2207837
>>207831
Ну а как тогда? Ну блять ну у меня реально пробел в знаниях я не спорю. Я читал книгу по архитектуре да там про процессор был, как он там на кристалле построен из транзисторов, как эти транзисторы в цифровую логику собираются, про ассемблеры, комманды ввода вывода, шины.

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

Щас вот читаю книгу которую мне здесь посоветовали про Операционные системы, Таненбаума, уже 400 страниц прочитал, на 5й главе щас про устройства ввода-вывода. Вот.

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

>>207835
Мерси, щас посмотрю
605 2207840
>>207811
Видеокарта - это (внезапно) периферийное устройство, а значит обмен информацией с ней является вводом и выводом.
Дальше читай тут https://en.wikipedia.org/wiki/Memory-mapped_I/O
606 2207841
>>207840

>Видеокарта - это (внезапно) периферийное устройство, а значит обмен информацией с ней является вводом и выводом.


Да? А я в этом посте что написал? >>207389
Раз это устройство ввода вывода значит драйвер в процессоре посылает на её мирококнтроллер определённый ввод
607 2207846
>>207389

>процессор посылает сигналы на видоекарту через видео драйвер?


Что ты имеешь в виду? Видеодрайвер на CPU исполняется.
608 2207849
>>207846
Ну я читаю книгу про операционные системы там написано что переферийное устройство содержит у себя плату на которой есть пзу. Воооот. В ядре операционной системе есть драйвер этого устройства который используя CPU подаёт на этот пзу сигналы и получает от него ответы. Воооотъ.

Да ладно всвё я уже понял читаю щас про видеокарты как этот gpu отличается от cpu чтобы хоть поверхностно представление иметь
609 2207855
>>207837

>делают тест устройств на исправность и передают загрузчику ос управление



BIOS - Базовая Система Ввода-Вывода. Это программа (прошита в ПЗУ, исполняется на CPU) для простых унифицированных операций ввода-вывода. В первую очередь - для этого. А затем ещё и для инициализирующего теста периферии и дальнейшей загрузки ОСи.
610 2207858
>>207855
О спасибо, чётенько объяснил. То есть bios это всего лишь программа который на цпу исполняется.

А я думал что bios микросхема она самостоятельна то есть там и процессор и память внутри и она сама по себе работает.
611 2207884
>>207837

>про Операционные системы, Таненбаума



Так тебе сначала надо было про архитектуру машины читать.
Того же автора хотя бы http://libgen.is/book/index.php?md5=345C04FC70BD5CFD4A542CF620CC9038
612 2207895
>>207884
Я читал книгу супругов Харисс цифровой дизайн и компьютерная архитектура, там ассемблер кстати на примере архитектуры mips или как-то так она называется показан был в основном. Чё стоит перечитывать архитектуру таненбаума?

Ну я в любом случае операционные системы пока не дочитаю к новой книжке не преступлю
613 2208040
Можете помочь с расшифровкой.

На сайте intimcity имена фотографий в анкетах вот такие примерно

733824471.jpg
680239644.jpg
436613119.jpg

Раньше они были просто 01.jpg, 02.jpg и т.д.

Скажите что это за шифр и как его расшифровать, очень надо
614 2208044
>>208040
Можно предположить что это посто глобальнный счётчик всех загруженных фото на сайт, но в одной анкете в которой фото были добавлены в один деньги крайне сильная разница в суммах как здесь вот в примере >>208040

из чего я делаю вывод что имена шифруются но по какому алгоритму я хз
615 2209686
>>079195 (OP)

>Денис Юричев: "Reverse Engineering для начинающих"- бесплатная современная книга на русском языке. К прочтению вкатывающимся и прочим ньюфагам обязательна!


Прямая ссылка - https://yurichev.org/b564f46f1c207b2dbc84a2bd4a41ed4c/
Есть у кого-то ссылка на самую, или почти, обновленную версию его книги?
616 2209896
Если вставить жёсткий диск с уже установленной виндой где есть файловая система и загрузочная gpt таблица в другой компьютер он стартанёт там?

По логике должен, запустится, биос считает gpt таблицу и передсаст управление загрузчику. В чём я обосрался?
617 2209947
>>209896

>В чём я обосрался?


Написал не в тот раздел.
Сделай загрузочную флешку и охуей.
618 2210031
Набор туториалов для разных архитектур
https://www.chibiakumas.com/
619 2210039
>>210031
хуя стильный сайтик
620 2210236
>>079195 (OP)
Мой ноутбук загружается в режиме uefi, даже специальный efi раздел есть. Таблица разделов жёсткого в gpt, тогда почему во всех системных параметрах в ноуте записано что у меня bios версия bios и т.д.?
621 2210730
>>209686

>самую, или почти


Задонь ему бакс на патреон, что ты как нищеброд..
На либгене прошлогодняя лежит
622 2211337
Надо короче написать чтобы наш тред не всплывал. Чтобы было тру
623 2211339
Бля, это вообще нормально, что в dosbos debugger и в radare2 разный код?
624 2211456
>>211339

Модель проца верно установил в radare2 перед дизассемблированием?
625 2211816
>>211456
Поставил на авто, опредилил как 386
image.png48 Кб, 616x481
626 2211855
Как элементы в процессоре взаимодействуют друг с другом, тут шина какая-то?
627 2211888
>>210730
Да, последняя, которую я находил, была датирована декабрем 2020 года. Ну, кто-то же должен сливать в сеть новые версии его книги, правда? Как-никак больше 300 патронов у него. Я нищеброд, да.
628 2211973
>>211816
А сама прога для каких процессоров написана? Если для ms-dos, то вполне возможно, что выставить стоит 286. Что за программа?
630 2211994
>>211973
Игра dark sun 1, в системках написано, что минималка для нее 386
Вообще, я уже гидру попробовал, она как-то лучше справляется или чего-то не так понял, ведь я ньюфаг
631 2211999
>>211994
Ghidra определяет DSUN.EXE как 16bit real mode. Перед дизасмом екзешника не забудь пройтись по нему утилитой unpack, мало ли, а то он запакован.
632 2212010
>>211976
В видео ничего не сказано про работу внутри процессора.
633 2212031
>>211855
Тебе нужно почитать книгу вот эту https://microelectronica.pro/wp-content/uploads/books/digital-design-and-computer-architecture-russian-translation.pdf

Здесь про процессор подробно расписано начиная с самого маленького транзистора. Там он внутри состоит из миллонов транзисторов микроскопических которые образуют логические цифровые элементы И ИЛИ НЕ из них уже защёлки автоматы собираются, короче там просто не раписать, извини.
634 2212210
Аноны, вопрос наверное больше архитектурный, но думаю вы тут разбираетесь. Хочу углублённо изучить устройство кеш-памяти (проблему арбитров, многопортовость), можете посоветовать какую-нибудь литературу по этой тематике, желательно для вузов?
635 2212947
Репетиция книготреда новой шапки: https://pastebin.com/zzbMyUS7

Собрал некоторые ASM-рилейтед ссылки. Выборка получилась однобокой, видимо (Разработка IBM PC X86 WIN).
Не охвачены темы: написание драйверов, виртуализация, микроконтроллеры, эмуляторы... (Т.К. не разбираюсь в этом. Не знаю, надо ли это вообще)
Не добавил ничего по инфосеку (пентест, хакинг,...), т.к. есть отдельный тред. Надо ли его упоминать?
Хоть шапка и получилась большая, но я не уверен, что это плохо. Пытался не упустить ничего ценного по теме. А то нынешние зумеры совсем одичали, не знают, что там внизу можно делать. Нет вменяемых подборок и программ даже для университетских курсов.

Давайте ваши советы: что добавить/убрать/заменить/передвинуть. Несите свежие ссылки на актуальный софт/книги/сайты. Критикуйте. Не перекатывайте пока.
1633446010889.png23 Кб, 893x335
636 2213054
>>212947
Книжки по архитектуре совсем уж протухшие. Там издания 1975-198х годов. Я бы хотел что-нибудь предложить, да только сам не могу ничего достаточно годного найти по архитектурам.
637 2213503
>>212947
Несколько лет назад, меня тут с говном пермешали за то, что я предложил Абеля добавить в шапку в треде. Мол, говно старое, нахуй тут MS-DOS не нужОн.
Подкину ссылок еще:
Ed Jorgensen - x86-64 Assembly Language Programming with Ubuntu
http://www.egr.unlv.edu/~ed/assembly64.pdf

Ed Jorgensen - MIPS Assembly Language Programming Using QtSpim

http://www.egr.unlv.edu/~ed/MIPStextSMv11.pdf
638 2216993
>>212947
Я, вообще, начинаю сомневаться, нужен ли вдумчивый АСМ-тред на доске вкатывальщиков. Пошло он всё в пинду.
639 2217422
Сука завтра ведь защищаться этому преподу а я нихуя не готов опять, я уже и забыл че он меня спрашивал.
похуй.
Screenshot321.jpg24 Кб, 323x193
641 2217638
>>217422
Сделай нормальный конвертер он тебе полюбому поставит зачёт.
Логика такая:
Ты вводишь в консоль 2021, в памяти появляется значение 32,30,32,31.
На выходе надо получить MCMLXXXVI, это в памяти должно быть 4D,43,4D,4C,58,58,58,56,49.
Надо из 32303231 логическим путём получить 4D434D4C5858585649.
Вся логика на пикче, надо просто её написать ассемблеровскими инструкциями.
Но есть ньюанс, нельзя логически получить значение 4D434D4C5858585649 из 32303231. Поэтому надо получить другие значения, потом с помощью xlat преобразовать в 4D434D4C5858585649. А потом просто отобразить.
Лень думать если честно.
642 2217725
Ребзь, а как вы арифметику с отриц. числами выполняете?
varB dw -1 это вроде 65535
и если поледить это число на, скажем, 5
то получится 3333h, а это уже хрень какая-то, неясно это положительное число или отрицательно.
Да и с 65535 непонятно какое число взято
643 2218265
Читаю тут книжку что мне анон советовал ещё в октябре про операционные системы Таненбаума, ну короче читаю главу про виртуальные системы, автор с таким придыханием рассказывает(2015 года книга) про то какие они пиздатые, какое это будущее, как там всё продумано.

В итоге читал так что аж самому захотелось какую-нибудь 98ю винду на виртуалке накатить. Ну короче 98se тупо не накатвыается потому что гипервизор не может корректно обработать служебные команды операционной системы и тупо куча ошибок и система не ставится, в интернете сказали что только первая редакция может встать, ну встала, да, тоже с ошибками но встала. Ну короче смысла от них, систему то они могут запустить, но она там в таком состоянии выходит что на ней врядли какую программу можно запустить корректно.
644 2218304
>>218265
Обмазайся 86Box, если осилишь.
645 2218306
>>218304
Не спасибо, я немного в другую область стремлюсь, итак дохуя всего учить, не до баловства с виртуалками вообще
646 2218340
Что такое фильтр файловой системы?
647 2219233
Изучаем masm32, дали задание
3. Напишите инструкцию OR для логического сложения:
ж) содержимого регистра АН с данными по адресу WHEN, с сохранением результата по адресу WHEN.

Как я понимаю, WHEN это название переменной.
Очевидное решение
or [WHEN], ah
не работает, наверно потому что нельзя вернуть значение из памяти по адресу из памяти.
Возможно ли это вообще сделать одной инструкцией?
16197157290050.mp414,6 Мб, mp4,
1920x1080, 0:34
648 2219279
649 2219640
>>210236

>Мой ноутбук загружается в режиме uefi, даже специальный efi раздел есть



У тебя GPT совместимый с бивусом. Бутинг начинается с бивуса, который загружает легаси MBR из первого сектора.
Таблица разделов MBR указывает на единственный раздел, который должен охватывать весь диск. А уже на следующих секторах - GUID таблица, которая в общем случае мапит все логические разделы диска
650 2219658
>>219640
Понял, спасибо
651 2222370
>>217422
Ну как ты там, анон? Сдал лабу? Или, может, в стройбат уехал уже?
652 2222480
>>222370
Да блять я не могу ответить ему на тот же вопрос, почему затирается фраза, если в конце программы еще раз вывести че-то.

Еще вторую лабу не сдал арифметику, потому что там при больших значениях залупа происходит.
В общем еще работать и работать
653 2222757
>>222480
Так ты сформулируй нормально вопросы здесь - тебе помогут.
654 2223004
Помогите дубинушке с пониманием виртуальной памяти.
Вот у нас есть система где физическое адресное пространство меньше виртуального. Допустим есть процесс (или группа процессов, что наверное не так важно), который занял всю main memory, т.е. количество пейджей адресного пространства процесса равно отношению размера всей памяти к размеру пейджа. Далее процесс запросил аллокацию памяти, соотвественно ось должна выделить еще стока-то пейджей (ведь аллокация происходит пейджами, а не байтиками?)
Значит далее аллокатор сейвит в диск в( swap файл или раздел) один из пейджей, попутно выставляя absense битик, и на его место кидает новый?

И типа таким образом за счет swap пространства мы добились увелечения адресного пространства всей системы?

где я не прав?
655 2223015
>>223004
алсо какой смысл пейджинга и виртуальной памяти в общем, когда физической памяти больше виртуальной? ведь тогда все пейджы могут распологаться в main memory
656 2223037
>>223015

>физической памяти больше виртуальной


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

>>223004

>добились увелечения адресного пространства


Размер адресного пространства фиксирован для конкретного ядра и никак не зависит от общего объёма доступной RAM. В страничный файл, по задумке, выгружаются не востребованные на данный момент страницы.
657 2223058
>>223037

>Не понял



Сорян, я про адресные пространства.
Т.е. к примеру размер входа mmu 32 битика (итого 4 ГБ), а установленной памяти больше 4 ГБ

>Виртуальная память - это буквально механизм трансляции эффективных адресов в физические.



Сам механизм трансляции ясен как божий день. Только вроде на вход MMU идет логический адрес. Эффективный это вроде как оффсет внутри пейджа

>Это нужно, чтобы управлять памятью т.е.


свободно перемещать части памяти задачи непрозрачно для исполнения этой задачи и, в конечном итоге, для изоляции задач

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

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



Это даже страничный файл, а не своп, как мне показалось? Оке.
658 2223072
>>223058

>Эффективный это вроде как оффсет внутри пейджа


Я имел в виду x86-64, конечно. В Long Mode эффективный и линейные адреса совпадают.

>концепцию set working


Working sets, видимо.

>есть ли выигрыш в бОльшем количестве памяти


Не вижу смысла, если часть RAM процессор не сможет адресовать, и она останется недоступной для него. Кроме того, в адресное пространство не только RAM отображается.
659 2223105
>>222480

>почему затирается фраза


перевод строки?
не читал вашу переписку, сори если дичь и мимо
660 2223332
>>223058
И ещё, пейджинг, разумеется, позволяет сделать так, чтобы суммарная выделенная память всех задач (и даже только одной задачи) была больше объёма доступной RAM. Но это не тоже самое, когда RAM больше адресного пространства.
661 2223579
>>223105
Ну вот у меня там в программе выводятся римские числа, если потом, после выполнения всей логики программы, вывести хеллоу ворлд то надпись не выведется, а затрёт предыдущий текст.
И надо объяснить почему не выведится.
Я не понимаю как это происходит изнутри.
>>204350 код
662 2223933
>>223579
Сори, я может не совсем пони, а зачем у тебя дергается вывод AskClient в самом конце проги (уже после лупа с выводом результатов и отступов)?
Я к тому, что при выводе отступов (пробел + 0Dh,0Ah,'$' это и есть тот перевод каретки о котором говорил) у тебя курсор переносится к началу следующей строки, но в самом последнем выводе этого нет - выходит последующая печать на экран должна засрать предыдущий текст
663 2223935
>>223933

>пробел + 0Dh,0Ah,'$'


Сори, не пробел - пустая строка
664 2223938
>>223933

>а зачем у тебя дергается вывод AskClient в самом конце проги (уже после лупа с выводом результатов и отступов)?


Да это препод попросил в конце еще раз вывести проверить затирается там че или нет.
А если затирается, то почему не полностью, как это всё объясняется
665 2223946
>>223933
>>223935

А всё забейте. Извините что отнял ваше время.

Ничего там не затирается все как надо работает, я не помню почему когда в первый раз запускал по его просьбе что-то не так выводилось. Может я и препода в заблуждение ввёл, он просто неизмененный код смотрел на доверии спросил по телефону (удалёнка) затирается ли там что или нет, я ответил ему что затирается.
еще раз извините
666 2224596
форум какой-та https://bbs.pediy.com/ от чайнабро
667 2224893
>>224596
Как и всё за фаерволом, очень долго грузится.
Screen Shot 2021-11-29 at 12.46.36 AM.png61 Кб, 738x433
668 2224963
Спрошу у коллективного разума.
Есть некий модуль DXE, исполняется внутри UEFI загрузки.

Модуль считает некий хеш на основе 20 байт серийного номера HDD.

Если я правильно понимаю код, то в 4й снизу строке произойдет оверфлоу PasswordBuffer, потому что byte ptr [rcx+r11] будет явно больше 31, буфер 32 байта.

Коротко - он считает сумму всех байт в s/n жесткого диска, делает с ней XOR 0x1f, и потом пытается поочередно засовывать каждый байт из Diskserial в локацию в PasswordBuffer, выраженную index ^ сумма_байт ^ 0x1f

Что то не сходиться. Потому что код работает.
Логично если бы там было & 0x1f, но там реально ^ 0x1f

Средствами дебага UEFI на живой машине пока не располагаю - пытаюсь понять в теории по коду
669 2224991
>>224963
Что это, UEFI бутлокер какой-нибудь?
Сори по теме не подскажу, просто любопытно
670 2225458
>>224991

Это ATAsec модуль в промышленном компе.
Защищает диск ATA паролем
671 2225871
>>224963

>Если я правильно понимаю код, то в 4й снизу строке произойдет оверфлоу PasswordBuffer, потому что byte ptr [rcx+r11] будет явно больше 31, буфер 32 байта.


Я понял что прога просто положит 20 раз байт по адресу PasswordBuffer + поксоренный rcx.
movzx eax, r8w ? там типа в последнем байте серийника сумма какая-то зашифрована? Или зачем она его ксорит?
672 2227325
>>225871
так RCX указывает offset от начана PasswordBuffer

и он будет > 31 возмжоных позиций.
r8w будет перед movzx eax, r8w будет уже содержать сумму всей байт в серийнике, ну если я конечно правильно понимаю.
673 2228375
>>224963
Последние 5 бит суммы инвертируются, наверное как часть работы хэш-функции.

И ты уверен, что размер хэша - 32 байта?
Максимальное значение серийника fffff fffff fffff fffff, значит максимально возможная сумма - 300 (15*20)
атсаси у тракто

Возможно размер хэша примерно равен этому значению и уже инициализирован чем-то, а байтики из серийника раскидываются по этому полю. Других версий у меня нет
674 2228679
>>228375
Размер "хеша" - он же пароль ATAsec 32 байта

Размер серийника 20 байт, то есть макc сумма 20 * 0xff = 0x13ec (5100)

Проблема в том, что ^ 0x1F как бы ни на что не влият при макс возможном значении 5100

Тут логически должно быть & 0x1F, это как раз ограничивало бы это самое значение в нужном нам диапазоне 0...31

Но там реально XOR, а не AND
Вот я и пытаюсь понять что упустил.

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

мэх, да нахуй ему сдался я
676 2229276
>>079195 (OP)
Приветствую, работяги. Обьясните, пожалуйста, малиновому про YASM. Какие перспективы? Какие отличия от других ассемблеров? Годнота ли вообще? NASM или YASM?
677 2229448
>>079195 (OP)
Есть где почитать разные статейки по взлому защищенного ПО, про устройство всяких пакеров, про написание анпакеров и т.д и т.п
678 2232131
Большая разница между x86-32 и x86-64?
679 2232211
>>232131
Существенная. По крайней мере, 32-bit mode программы не работают в 64-bit mode, и наоборот.
Безымянный-файл-изображения-(32)-5-b-76a4.jpg228 Кб, 922x2048
680 2232839
Анон, поясни плз за микрокод. Я понял только, что это средний слой между ISA и CPU, вроде как связывает отдельные значения с отделными регистрами, входами АЛУ.
Но нахуя оно нужно и где это локализуется - я так и не понял
681 2232871
Помогите отследить движение информации по регистрам.

Короче ломаю одну игру через артмани, нашёл адрес значения, но когда меняю оно изменяется на визуальное и возвращается на исходное. Стал в отладчике отслеживать откуда идёт запись в эту ячейку памяти. И нашёл только 2 строчки, как попасть с верхней строчки на предыдущую операцию с ebx+00000718 мне нужно знать как туда инфа попала. Может есть какой-нибудь поиск? или отслеживание по регистру я хз Там много инструкций очень просто
682 2232872
>>232871
Пики отклеились.
683 2232873
>>232872
>>232871
Алсо допишу сразу что игра полностью автономная и выполняется на компе никаких удалённых серверов нет и искомое значение также хранится в оперативке во время выполнения ни из каких файлов она не читается. Мне нужно просто отследить движение инфы по регистрам и операции в ходе которых она получается найти.
684 2232933
>>232872
поставь breakpoint на 0BDEBС23
посмотри чему соответствует адрес в памяти EBX+0x718
поставь watchdog на его изменение
685 2232988
Привет, как установить или инвертировать определенный бит в числе? Заранее не знаю, какая позиция будет, это всё в цикле происходит. Есть переменная с позицией где установить.

TASM
image.png105 Кб, 1004x412
686 2233065
Препод сказал что это не структурная схема для ПЕРСОНАЛЬНОГО компьютера. А для однопроцессорной системы.
Как он это понял?
во-вторых, в чем отличие, мне нужна схема ПК
687 2233130
>>232933
мерси, попробую отпишусь
688 2233298
>>233065
Препод еблан какой-то на персональных компьютерах 1 процессор установлен нахуй в 99% случаев. Ну или может быть он ядра в процессоре считает за отдельный процессор я хз или он ещё за процессоры считает всякие микросхемы, процессоры на видеокарте, микросхемы на сетевой карте я хз.

Пиздец вам эти совковые преподы мозги ебут конечно в ваших вузиках и вот вместо того чтобы делом заниматься асмы дрочить ассемблировать, дизассемблировать человек носится пол года доказываяя\пытаясь понять старого маразматика что за какую-то мелочь к которой он приебался
689 2233325
>>233065

>Препод сказал что это не структурная схема для ПЕРСОНАЛЬНОГО компьютера. А для однопроцессорной системы.


А персональный компьютер это что у нас? никак сервер мультипроцессорная система?
16364664110950.mp4113 Кб, mp4,
480x360, 0:02
690 2233331
>>233065

>Препод сказал что это не структурная схема для ПЕРСОНАЛЬНОГО компьютера. А для однопроцессорной системы.

691 2233339
>>233065
Ну так в схеме нет ничего ПК-специфичного. Т.е. это может быть и не ПК.
692 2233500
>>232988
Серьезно, если это тупой вопрос, то простите, но нашел я только как делать инверсия в заранее известных позициях.
693 2233527
>>232988

BTR r/m64, r64
BTS r/m64, r64
Позицию в r64 загоняешь.
694 2233627
>>232988
в Си нотации

number | (1 << position ) установка

number ^ (1 << position) инверсия
695 2233672
>>213054
Предлагаешь весь раздел удалить?

>>213503
Добавил.

>>217633
Какое отношение это имеет к АСМу?

Какие-нибудь ещё предложения по шапке есть?
696 2233714
>>233527
>>233627
Большое спасибо
697 2233973
>>233672

>Какое отношение это имеет к АСМу?


Потому что АСМ это отражение мышления. У высокоуровневых такого нет, у них отражение мышления разработчика языка, но не программиста. Все типа ищут решение во вне, а надо искать решение в себе. И для этого надо уметь правильно рассуждать.
По желанию.
698 2234682
Ещё одна безумная идея. Есть какая-нибудь прога, типа Автокада, в которой можно делать проекты-конструкторы из логических элементов? Вроде простенького контроллера или калькулятора.
Может тоже в шапку?
699 2234683
Для самых маленьких)
700 2234697
>>229448
exelab, если он жив еще
701 2234698
>>229276
А что делать-то хочешь? В сущности yasm переписанный nasm под BSD лицензией.
702 2234699
>>228936
При вводе с клавиатуры, отсекай символы, если у тебя посимвольно читаются данные, через int16h:
http://www.techhelpmanual.com/230-int_16h_01h__query_keyboard_status___preview_key.html
703 2234704
>>234682

Конечно есть.
Xilinx Vivado - можешь бесплатно скачать
704 2234716
>>234704
И это круто!
705 2234726
>>234699
Да, короче, я ему сделал джампом, сравнивается аски код если меньше или больше чисел то джамп.
Он мне сказал типа надо чтобы символы оставались а заменялись только числа.
Как можно это сделать когда у меня римское число может хранить 6 байт? '-VIII-' хотел сначала xlatb, но он только для 1байтовых.
То есть fv123 в "fv-I--II--III-"
https://pastebin.com/D6bqXisg
706 2235447
а я короче придумал. сделаю метку output, которая просто выведет этот символ если он не подходит по границе 31-39
707 2236973
>>212947
Предполагаю удалить раздел по ретрокомьютингу - слишком обширная тема для этой шапки. Как думаете?
708 2237152
Великие люди, по их книгам всё изучаю.
Денис Ритчи
Бьёрн Страуструп
Эндрю Таненбаум.
709 2237947
>>079195 (OP)
Посоветуйте книгу, пожалуйста, по ассемблеру(на английском) где разбираются подробно все эти команды регистрцы и т.д.

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

И ещё вопрос а что щас актуальнее учить x86_64 или x86_32 сильно они синатсически отличаются?
image.png607 Кб, 2550x183
710 2238066
https://hex-rays.com/blog/hex-rays-is-moving-to-a-subscription-model/
Ильфак, что ты делаешь, ахаха, прекрати
Хер пойми на сколько подписка и все тот же конский прайс - лавры Адоба спать не дают?
>>237947

>по ассемблеру(на английском)


Кип Ирвин
711 2238069
>>238066

>разбираются подробно все эти команды регистрцы и т.д.


В догонку, справочники от Intel|Amd
712 2238220
>>238066

>subscripiton model


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

Спасибо, за книгу.
713 2238524
В никсовских файловых системах используются не смежная запись данных, в отличии от фат или нтфс. Понятное дело, почему это свойство освобождает первые фс от скорой надобности в дефрагментации. Но я так нигде и не нашёл ответа на вопрос, можно ли выполнять дефраг в общем случае (типа троллейбус из хлеба) ?
Причина вопроса: нужно читать некоторые данные из определенного файла при бутинге, а я не пойму, можно ли смело читать прямо через ай-нод (заранее прописанный в МБР), или желательно полное имя файла, так как ай-нод в ходе других манипуляций с ФС может быть перезаписан?

>>237152
Таненбаум конечно охуенен, если оценивать по охватываемому материалу, но подчас слишком много отступлений. Ну вот зачем студентоте знать, сколько стоил юнит такой-то памяти в конце 70-х.?
714 2238606
>>238524
Лучше Таненбаума книг я ещё не читал, по его книгам больше всего инфы получил. Если ты стремишься в системное программирование то курс Эндрю Таненбаума обязателен ящитаю.
715 2238802
Из книжек про реверсинг рекомендую "Дневник охотника за ошибками"
Она в PDF скачивается, если поискать.
Screenshot325.jpg6 Кб, 175x51
716 2240514
Вчера племяшке сделал домашку на паскале, в одном задании нужна была сумма двузначных чисел кратных 6. И я написал For x:=10 to 99 do
Как называется эта болезнь? Как её лечить? Постоянно проверяю в дебагере эту хуйню.
image.png169 Кб, 552x1035
717 2241317
Байтаны, багтрак уже пару лет как разложился на плесень и липовый мед, где можно мониторить годноту помимо очевидных CVE|MITRE|NVD?
718 2241526
719 2247287
>>079195 (OP)
Где глянуть про гидровский декомпилятор?
Какие архитектуры есть?
гонит в c++?

Сколько ресурсов компа надо чтобы пользоваться гидрой?
Как уберечься от зондов?
720 2268777
>>079195 (OP)

>Randall Hyde: The Art of Assembly Language


Так в ней ведь HLA рассматривается. Это какая то высокоуровневая дичь а не Asm. Как это в RE поможет?

Чем какая нибудь из этих хуже?

https://www.goodreads.com/en/book/show/35608849
https://www.goodreads.com/book/show/23969110-modern-x86-assembly-language-programming
721 2303945
>>268777
Аноны, а реально найти себе репетитора за вменяемые деньги который бы провёл мимо подводных камней?
учусь в местной шараге, вроде бы учат целый семестр всякой лаже типа mov, cmp и проч... но нихуя не понятно(
722 2349309
>>234697
Оригинальный мертв, живу только клон.Ну и за статьями на васм.
723 2349314
>>247287
в исходниках, так все что в комплекте с хорошими комментами.
Тред утонул или удален.
Это копия, сохраненная 1 июня 2022 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски