dukeBarman
ты всех так встерчаешь?
Aiwan \ (•◡•) / _bot
за что?
Aiwan \ (•◡•) / _bot
тогда странно что забанили
Dan
Забанили за флуд в группе про флуд. Тебе надо идти работать в интел
Aiwan \ (•◡•) / _bot
в думу
Aiwan \ (•◡•) / _bot
в одной группе под названием FLOOD я запостил ~1000 стикеров с гитлером
Aiwan \ (•◡•) / _bot
видимо когда ты стикеры постил, его сделали админом
Dan
С основания.
kitsu
JeisonWi
Anonymous
товарищ майор, хватит бейтить всех подряд
dukeBarman
тем более когда это метрополитен!
dukeBarman
:D
Dan
У меня есть хорошее успокоительное, если что
JeisonWi
Aiwan \ (•◡•) / _bot
ку
Anonymous
вcем привет.
Какие есть библиотеки чтобы можно было переименовывать экспортируемые функции в PE32?
Надо чтобы как можно проще делалось. и желательно на C/C++.
Спасибо.
Anonymous
Распарсить экспорт не так сложно.. вот ток если имя новое больше чем старое, наверное надо секцию расширять..
Anonymous
новые всегда короче старых.
Anonymous
их там около 600.
Anonymous
руками можно сделать тогда
Anonymous
ща
Anonymous
http://www.rohitab.com/discuss/topic/40594-parsing-pe-export-table/
Anonymous
вот в этот адрес новое имя пихнуть осталось
Anonymous
спасибо.
JeisonWi
JeisonWi
https://lief.quarkslab.com/
Anonymous
прив
Anonymous
А что за контроль тупости?
Aiwan \ (•◡•) / _bot
ку
Anonymous
аа
Anonymous
поэтому тут 10 постеров, а остальные молчат
Anonymous
Хитрая система
Ask
ктонить симулятор trace32 юзает?
Aiwan \ (•◡•) / _bot
смотрите кто пришел
Viktor
Тортик?
Anonymous
😄😄😄😀😀
dukeBarman
The Cake is a Lie!
dukeBarman
©
Nope.avi
Aiwan \ (•◡•) / _bot
просто тортик
Anonymous
у как как пятница проходит?
🦥Alex Fails
ковырял немного отладку ядра венды
Aiwan \ (•◡•) / _bot
ку
tanjmaxalb
Подскажите, как лучше реализовать функцию сравнения двух больших чисел.
Написал следующий код, однако проблема, что при нулевых значениях в старшей части, устанавливает ZF. При это если игнориваровать его и делать переходы только по переполнению, ломается логика с равными значениями.
bn_cmp: xchg rcx, rdx
.cycle: mov rax, [rdi + rcx * 8 - 8]
cmp rax, [rsi + rcx * 8 - 8]
loopnz .cycle
mov rcx, rdx
ret
tanjmaxalb
*Порядок аргументов в регистрах стандартный для линукса
tanjmaxalb
В итоге, для нормальной отработки функции, нужно чтобы вся память была заполненной, хотя бы в одном из чисел.
Конечно же, можно выполнять вычисление реального размера числа, однако функция вызывается овердохуя раз
k0rs4r
Старшей части чего ?
tanjmaxalb
Числа, то есть на конце участка памяти
k0rs4r
Как число представлено в памяти ?
tanjmaxalb
литлиндиан
k0rs4r
Этот код цикла - полный ?
Или тут для сокращения че-то упущено ?
tanjmaxalb
Нет, полностью функция
k0rs4r
так а за счет чего должен проход по памяти быть ?
Там кроме rcx ничего не модифицируется
tanjmaxalb
Опечатка, прощу прощение, С вместо D
k0rs4r
чето влом догадываться где C нужно вставить, потому
Если надо просто 2 участка памяти сравнить - предлагаю сделать так:
- взять размер массива, округлить до кратности 8 байт
- сравнить этот кусок через repe cmps
- сравнить оставшуюся часть отдельно
Viktor
tanjmaxalb
Я уже исправил.
Размер массива всегда кратен 8. Проблема в том, что если на концах (в стороне старшей части) будут нулевые QWORD у обоих чисел, то функция сразу возвращает ZF.
Однако, спасибо за предложение, сейчас попробую
Viktor
Результат, кстати, не в rax должен быть разве?
tanjmaxalb
Нет, результатом функции являются выставленные флаги :)
tanjmaxalb
По которым далее делаются переходы
Viktor
0_0
Viktor
Просто "Порядок аргументов в регистрах стандартный для линукса" немного смутило
Viktor
А вообще вроде действительно идеально подходит для cmps
tanjmaxalb
Написал для ясности, что в регистрах находится
tanjmaxalb
Только вопрос почему REPE, а не REPNE? ZF должен быть всегда 0?
Viktor
Ну, то что в rdi и rsi числа, а в rdx размер не так ясно было, честно говоря :)
Viktor
REPE -- повторять пока E
Viktor
как станет NE, остановиться
Viktor
тебе же надо найти несовпадение вроде
Viktor
А лучше -1/0/1, функция сравнения как никак
tanjmaxalb
Ок, спасибо:D
Да уж...
Viktor