Size: a a a

Ассемблер

2020 December 16

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Den
да просто для общего развития, наверняка там целые простыни каких-то синхронизаций по шинам данных чего то такое, просто посмотреть как все сложно :)
достаточно разобрать как устроена простая функция messagebox изнутри.
источник

D

Den in Ассемблер
Dima Richev
Работу процессора, или конкретно работу потоков в ОС?
Да работу процессора,
источник

D

Den in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
достаточно разобрать как устроена простая функция messagebox изнутри.
а можно ли например делать отдельные операции с регистрами ядер в потоках т.е я допустим пушу регистры текущего ядра в стек и это другой стек чем в соседнем потоке у соседнего ядра? И регистры других ядер живут своей жизнью в своих потоках и ими можно управлять и есть какой то общий стек где они могут обмениваться информацией, я вот глянул исходник по linux там вроде для каждого потока как минимум свой стек создается
источник

DR

Dima Richev in Ассемблер
Den
а можно ли например делать отдельные операции с регистрами ядер в потоках т.е я допустим пушу регистры текущего ядра в стек и это другой стек чем в соседнем потоке у соседнего ядра? И регистры других ядер живут своей жизнью в своих потоках и ими можно управлять и есть какой то общий стек где они могут обмениваться информацией, я вот глянул исходник по linux там вроде для каждого потока как минимум свой стек создается
Насколько я понял: можно ли управлять регистрами в чужом потоке

Да, можно. В Windows, например, открываешь поток (OpenThread), получаешь контекст потока через его handle - GetThreadContext, и результат получаешь в структуру. Можешь по указателю их изменять.

Так, к примеру, можно инжектить шеллкод - изменяя EIP потока на адрес шеллкода.

P.S: Не забывай замораживать поток (SuspendThread, ResumeThread)
источник

D

Den in Ассемблер
Dima Richev
Насколько я понял: можно ли управлять регистрами в чужом потоке

Да, можно. В Windows, например, открываешь поток (OpenThread), получаешь контекст потока через его handle - GetThreadContext, и результат получаешь в структуру. Можешь по указателю их изменять.

Так, к примеру, можно инжектить шеллкод - изменяя EIP потока на адрес шеллкода.

P.S: Не забывай замораживать поток (SuspendThread, ResumeThread)
инжектить шеллкод - это пока непонятно вообще я буду с потоками в линуксе пока работать там немного по другому выглядит, вроде даже попроще
источник

D

Den in Ассемблер
Вот в конце процедура создания стэка которая вызывается в thread create:
источник

ST

Saenro T in Ассемблер
Den
Нашел библиотеку семплов целую в т.ч для it tracker там 16 бит сэмплы, вот могу выложить если надо а то я уже обнаглел наверное тут офтопить :)
Ты не отвлекайся на всякие там Thread, лучше сэмплы кидай)
источник

D

Den in Ассемблер
Saenro T
Ты не отвлекайся на всякие там Thread, лучше сэмплы кидай)
:)) кидаю
источник

D

Den in Ассемблер
Saenro T
Ты не отвлекайся на всякие там Thread, лучше сэмплы кидай)
источник

D

Den in Ассемблер
Saenro T
Ты не отвлекайся на всякие там Thread, лучше сэмплы кидай)
источник

D

Den in Ассемблер
Вот еще робокопа подправил, теперь наверное лучше в impulse tracker слушать а то там барабаны стучали как сумасшедшие и бас в тон не попадал :)
источник

ST

Saenro T in Ассемблер
Den
Вот еще робокопа подправил, теперь наверное лучше в impulse tracker слушать а то там барабаны стучали как сумасшедшие и бас в тон не попадал :)
начало как в 3-й части игрушки на Z80
источник

D

Den in Ассемблер
Это я вот отсюда скачал, https://modarchive.org/ но он немного корявый был
источник

D

Den in Ассемблер
Saenro T
Вот во что превратился invoke
pushad не берём во внимание
А все понял, надо параметры invoke в стеке снизу вверх читать, теперь все совпадает, и нули-параметры, вот она неопытность вроде читал и забыл. А кладуться они значит слева на право, а в С параметры считаются справа налево или это только стэка касается?
источник

RC

Roman CuteCat in Ассемблер
Добрый вечер, столкнулся с небольшой проблемой при перемножении массивов по модулю, не очень понимаю как записать синтаксически. Берем указатель на первый массив, и на второй, а вот как достать из этого адреса число не очень доходит, в гугле не нашел ничего похожего, буду благодарен за наводку или помощь))
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Roman CuteCat
Добрый вечер, столкнулся с небольшой проблемой при перемножении массивов по модулю, не очень понимаю как записать синтаксически. Берем указатель на первый массив, и на второй, а вот как достать из этого адреса число не очень доходит, в гугле не нашел ничего похожего, буду благодарен за наводку или помощь))
какой размер элемента массива?
источник

RC

Roman CuteCat in Ассемблер
3
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
не количество элементов, а размер 1 элемента (1,2,4 байт)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
покажи секцию данных лучше
источник

RC

Roman CuteCat in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
не количество элементов, а размер 1 элемента (1,2,4 байт)
4 байта, интеджер
источник