61

Re: Низькорівнева всячина

байткод

62

Re: Низькорівнева всячина

Ох блін, а я про jni зовсім не подумав *SCRATCH* Весело..)

Подякували: 0xDADA11C71

63

Re: Низькорівнева всячина

0xDADA11C7 написав:

байткод

А якщо гугл повністю відмовиться від далвіка на користь АРТ?

64

Re: Низькорівнева всячина

Тоді Хром відмовиться від HTML на користь NaCl

65

Re: Низькорівнева всячина

Прихований текст

Мене самого частенько штормить по типу "шефвсёпропало!!1" (ну там вінда впровадила підпис дров, або андроїд робить неможливим зробити якісь речі і т.п. складнощі). Завжди згадую інтерв'ю із Ms-Rem'ом:

Для многих системщиков идеология Vista принесла головную боль, я говорю про политику в отношении драйверов, насколько оправдан такой шаг ?

для меня он не имеет никакого значения,  обойти эту защиту будет делом пяти минут

Ще кажуть, що він самостійно баги патчив на win.. Oo Інтерв'ю старе, але принципи та ідеї залишились, що і вселяє надію.

Складність зростає з шаленою швидкістю, треба багато розуміти, аби робити прості речі. Подібну мандражку бачив на багатьох форумах..

66

Re: Низькорівнева всячина

Прихований текст

Мені здається, що я маю остаточне вирішення цього питання, десь до нового року буде робочий прототип для вузького кола поціновувачів низькорівневої всячини

67

Re: Низькорівнева всячина

Kane написав:

Вірним шляхом крокує Томаш.
Тільки не вистачає найпримітивнішого I/O для повноцінного щастя. Раз він робить ставку на макроси у ядрі і тільки, було б дуже доречно.

Я тут подумав -- а що заважає написати зовнішній обробник типового виводу для перенаправлення виводу в потрібне русло? тобто пишеш щось штибу

display '%% WRITE ,+, 29 AB CD'

, що означатиме записати в кінець файлу kernel.bin 3 байти 29 AB CD. Як варіант можна додати можливість запускати зовнішні файли (себто згенерував потрібний скрипт - запустив, зчитав дані через директиву file). Макромова ФАСМ'а докорінно полегшить такий ввід/вивід.

Подякували: Kane1

68

Re: Низькорівнева всячина

Да хоча б і так. Сьогодні у них на форумі запитаю.

Прихований текст

Сумніваюся, що він на таке піде, бо в нього завжди своя думка на рахунок додавання нових фіч. Он скільки народу про багаторядкові коментарі /* ... */ просило, а він ніяк, типу "це перечить філософії фасму". Ну все одно, пропатчили самостійно)) Гадаю і тут так буде, кому треба)

69

Re: Низькорівнева всячина

revolution пише:

Using file I/O is OS dependant. I wonder if you are confusing fasmg with some sort of HLL.

But anyway, firstly you have to define which CPU you are targeting so that the binary output code can run on the CPU (X86 or ARM etc.). Then you need to define which OS you are targeting so you can interact with the I/O APIs ("int 0x80" or "invoke function" etc.), and to format the output binary accordingly (PE or ELF etc.).

Не файно буде робити подібну підтримку задля декількох ОС та одного проца (що цілком вірно), суперечить це, бо FASM 2 у нас таки "багатонаціональний" у плані підтримки процесорів та систем.
Коротше треба качати скілл та доповнювати самому, або раз така пляска, то й створити щось своє на тому ж C, який буде легше підтримувати та доповнювати подібними плюхами, а там і до якогось "VX-фреймворка" недалеко з такими темпами.

Подякували: 0xDADA11C71

70

Re: Низькорівнева всячина

Ну так багаторядкові коментарі і суперечать філософії, їх легко емулювати макромовою. Се те ж саме, що в геометрію додати зайву аксіому, яка насправді буде просто теоремою. Взагалі, з моддингом FASM`а треба не промахнутися, себто потрібна можливість викликати нейтив код з макромови часу компіляції і звідтіля танцювати вже - хочеш інтерпретатор Lua підключи, а хочеш - тетрис вбудуй  %)

71

Re: Низькорівнева всячина

Реалізація, як саме робити, це вже інше питання, відповідь від їхньої спільноти - "нам недоцільно паяти такі милиці, вам треба - робіть самі".
Те що ви пропонуєте, по логіці, легко зробити - просто стартуємо додатковий модуль з параметрами ('%% WRITE ,+, 29 AB CD'), модуль парсить аргументи cmd і працює. Звичайно хотілося б в рамках однієї "коробки" зробити, але це непросто, тим паче нутрощі fasm'у недокументовані (хоча він і гарно написаний, всеодно, приходять думки, що простіше самому написати компілятора, аніж там розібратися :)).
Поживемо подивимось, хто зна, може і зробиться щось, але так, для "вузького кола".

Подякували: 0xDADA11C71

72

Re: Низькорівнева всячина

Прикрутив ShellExecute.
Залишилось написати парсер вашого виразу ('%% WRITE ,+, 29 AB CD') в io_module.exe та подумати над взаємодією із fasm'ом.
http://i72.сайт-злодій/big/2015/0909/4e/38254cb38a78f82ebbdf487c833e104e.png

Подякували: 0xDADA11C71

73

Re: Низькорівнева всячина

Я маю ще одне питаннячко по FASM`у, я б хотів побачити ще виділення регістрів в ассемблері, бо GCC має інтерхвейс взаємодії вбудованого асемблеру з аллокатором регістів, але я б хотів навпаки  *JOKINGLY* Маєте якісь думки з цього приводу?

74

Re: Низькорівнева всячина

0xDADA11C7 написав:

Я маю ще одне питаннячко по FASM`у, я б хотів побачити ще виділення регістрів в ассемблері, бо GCC має інтерхвейс взаємодії вбудованого асемблеру з аллокатором регістів, але я б хотів навпаки  *JOKINGLY* Маєте якісь думки з цього приводу?

Я навіть не знаю що це.

75

Re: Низькорівнева всячина

Для криптування і не тільки це важлива штукенція, тож просвітіться оцим. В моєму крипторі також є воно, але зроблено через одне місце (тобто виділення регістрів напівавтоматичне)

Подякували: Kane, leofun012

76

Re: Низькорівнева всячина

0xDADA11C7, із LLVM бавились?

Оригінал:

Прихований текст

http://habrastorage.org/getpro/habr/post_images/1cd/191/8df/1cd1918df35fc3a6415ea062a870bf75.png

Обфускація № 1:

Прихований текст

http://habrastorage.org/getpro/habr/post_images/059/514/fbc/059514fbc8ed18c7ed3886bcd7e0f013.png

Обфускація № 2:

Прихований текст

http://habrastorage.org/getpro/habr/post_images/002/f9d/8f7/002f9d8f7663fcabff249b136a7741ab.png

Обфускація № 3:

Прихований текст

http://habrastorage.org/getpro/habr/post_images/9a4/75d/584/9a475d584ddddfa551002f3488f76f9e.png

_http://habrahabr.ru/post/213259/

Звичайно хотілося б елегантніше за допомогою одного fasm, але ККД у порівнянні із вищенаведеним.. Дехто заїкався, що від детекту деякими АВ програми у пам'яті, можна захиститися лишень морфингом сирців, або ж щось по типу McSema писати. Що ви гадаєте про детект у пам'яті?

Подякували: 0xDADA11C71

77

Re: Низькорівнева всячина

З LLVM бавився, але без морхвингу. До речі, першопрохідці в цій справі -- яблучники з їхнім ДРМ'нутим програвачем айТюнес.

Що ви гадаєте про детект у пам'яті?

Гадаю, що спочатку вистачить і морхвингу звичайних користувачьких структур та відмова від зайвих викликів апі. Пізніше докладно розпишу мій план дій.

Подякували: Kane1

78

Re: Низькорівнева всячина

З приводу розподілу регістрів - ви маєте на увазі "віртуальні осередки", які формують якусь нашу мову, і цю мову ми потім розподіляємо на реальні регістри якогось проца?

79

Re: Низькорівнева всячина

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

   var r1 = e.getFreeReg(p.LOCK_REG), r2 = e.getFreeReg(p.LOCK_REG); //виділяє 2 випадкові регістри та блокує їх, щоби уникнути повторного використання
    v.add('.section_flags'); v.add('iResult'); v.add('.vprotect_ret'); // виділяє в стеці 3 слова для змінних 
    e.cmd('load_c32$m32', [0, 'iResult']); // обнулити змінну iResult 
    e.cmd('load_m32$r32', ['pSectionHeader', r1.i]); // завантажити в попередньо виділений (випадковий, не забуваймо) регістр (або іншими словами - регістрову змінну) r1 значення зовнішнього параметру pSectionHeader

80

Re: Низькорівнева всячина

Ги, щось типу LLVM IR, де якось так:

%1 = add i32 2, 4
%2 = mul i32 %1, 12

Тобто усе із % на початку (%1, %2) - локальні змінні, які потім розподіляє LLVM. Ви мали на увазі, зробити подібне у FASM?

Подякували: 0xDADA11C71