Тема: Низькорівнева всячина
Буду писати сюди всяку цікаву низькорівневу всячину, з якою я стикаюся під час роботи, для якої окремий тред занадтовеликий, а для вікіпедії - не формат.
Зміст
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Системне програмування → Низькорівнева всячина
Буду писати сюди всяку цікаву низькорівневу всячину, з якою я стикаюся під час роботи, для якої окремий тред занадтовеликий, а для вікіпедії - не формат.
Зміст
Раніше я шував можливість створювати багаторядкові коментарі в FASM`і, а потім натрапив на таку їхню реалізацію засобами макромови FASM:
CS_ fix match +,- {
_CS fix }
Приклад використання:
CS_
На
багато-
рядковий
коментар
не
лається
FASM
_CS
Щодо коментарів, то можна ще так:
macro cmnt [arg] {
local use
macro use arg
}
Використання:
cmnt {
коментар
}
Також, у них на форумі, є фікс PREPROCE.inc, після якого можна юзати СІ'шні коментарі (/*...*/).
Чим саме ви займаєтесь,шо розробляєте?(в системному програмуванні)
Реалізація геш функції різними мовами
макромова FASM
macro szHash name, res {
local ..size, ..result, ..char, ..temp
..temp = 0
..result = 0
virtual at 0
db name, 0x0
..size = $
repeat ..size
load ..char byte from % - 1
..temp = (..temp shr 7) or (..temp shl 25)
..result = ..result xor ..temp
..temp = (..temp and 0xffffff00) or ..char
end repeat
end virtual
res = ..result and 0xffffffff
}
FASM x64
proc getHashSz strz
xor rdx, rdx
xor r8, r8
.calcHash:
ror edx, 7
xor r8d, edx
mov dl, Byte [rcx]
inc rcx
test dl, dl
jnz .calcHash
mov eax, r8d
ret
endp
FASM x86
proc GetHashSz strz
push ecx
push ebx
push DWord [strz]
pop ecx
xor ebx, ebx
push ebx
.CalcHash:
ror ebx, 7
xor [esp], ebx
mov bl, Byte [ecx]
inc ecx
cmp bl, 0x0
jnz .CalcHash
pop eax
pop ebx
pop ecx
ret
endp
JavaScript
function _rotr (value, shift) {
if ((shift &= 31) == 0) return value;
return ((value >>> shift) | (value << (32 - shift)));};
function hash_ror7xor(b){
var r = 0, x = 0;
for (i = 0; i<_.size(b); i++) { x = _rotr(x, 7); r ^= x; x = x & 0xffffff00; x |= b[i]>>>0; };
return( (r^=_rotr(x, 7))>>>0);};
Потрібна ваша допомога в реалізації баш скрипта .
Скриптування Баш не має стосунку до низькорівневого програмування, а глянути я зможу лише з вівіторка, бо зараз у мене завал на роботі. До того ж в баші я мабуть розуміюсь гірше за вас.
Також, у них на форумі, є фікс PREPROCE.inc, після якого можна юзати СІ'шні коментарі (/*...*/).
Модифікувати компілер це занадто, хоча мені теж іноді кортить.
Модифікувати компілер це занадто
Ну, згадуючи твою ВМ аля криптор, модифікація компайлера не здатна викликати труднощі
Ну, згадуючи твою ВМ аля криптор, модифікація компайлера не здатна викликати труднощі
Я не кажу що це складно, проте досить екзотично. Стосовно моєї ВМ, то єдиний суттєвий її недолік є відсутність інфраструктури, а саме - відсутність віртуалізатора, чи як воно там зветься, що перетворює машинні команди на команди віртуальної машини, як це робится в Themida.
Я тепер ходю по буржуйських форумах і кажу - я вам віртуальну машину приніс і до речі, деякі буржуї з гуглоперекладачем сидять на реплейсі, бо я не все переклав Вони навіть про розробника "стороннього" ПЗ для моєї ВМ знають (0х9111А) і читають його джерельний кід.
Треба б їм ще почитати принести
треба робити УКР. ресурс по reverse engineering software
де будуть і криптори, скрипті для IDA pro, OllyDBG, WinDBG, лінкери, шелли і так дальше
треба робити УКР. ресурс по reverse engineering software
А цей ресурс чим вам не догодив?