Dolphin
pop al stosb loop lp2
Dolphin
ну и в основном цикле не DX сохраняешь, а DL
Vyacheslav
Кстати, кто-нибудь знает, как такая защита называется? 0x5000: mov eax, xxxxxxxxh 0x5006: jmp 0x5002 0x5008: mov eax, yyyyyyyyh 0x500d: jmp 0x500a И т. д.
Eugene
Eugene
Зачем такое нагромождение? xor eax, eax ; лишнее mov ax, [len_sm] xor edx, edx ; лишнее mov bx, 100 xor dx, dx div bx К тому же: 1. Введённая строка не преобразуется в число. 2. Зачем делить на 100, если вводится 2-значное число, которое явно не превышает 100? Если забить на проверку ввода, можно вообще схитрить: если нужен остаток, просто берём последние 2 цифры, если нужно частное - все, кроме 2-х последних. Никаких преобразований и делений :) Из строки в число (без проверки корректности): mov ax, [len_sm] sub ax,'00' xchg al,ah aad ; теперь в ax 2-значное число
Eugene
mov [edi], dx зачем в байт записывать слово, почему не просто dl ?
Eugene
Нет. Например, "35". В ah пойдет 5, в al 3. А надо наоборот.
Dolphin
а при загрузке... справедливо
Eugene
Ну раз ah=0, значит в ax. Суть-то та же
Dolphin
Ну раз ah=0, значит в ax. Суть-то та же
Тут еще есть один нюанс: This instruction executes as described in compatibility mode and legacy mode. It is not valid in 64-bit mode.
Dolphin
:)
Eugene
Это 32-битный код, так что всё норм :)
Vyacheslav
Это точно "кстати" ? :)) Разве это защита? Обфускация какая-то просто.
Можно и так назвать. Но такой код местами читать очень сложно ollydbg колбасит и он показывает валидные команды только тогда, когда на них находится.
Rigidus
смотря что реверсить, задавай вопрос
Rigidus
дизасм что показывает?
Rigidus
ты лучше так расскажи
­
Забанил бота
Anonymous
radare норм?
Anonymous
Спс
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
#book Аблязов Руслан fasm x16 x32 x64 OsDev Отличное качество
Anonymous
18 года?)
Dolphin
11 же
Aiwan \ (•◡•) / _bot
18 года?)
Просто все что выше там скан, а это видимо цифровая версия
Eugene
#book Аблязов Руслан fasm x16 x32 x64 OsDev Отличное качество
Там к нему ещё исходники идут в комплексте...
Eugene
Eugene
Написано 2016, но может просто переиздание.
Eugene
У кого-то (Зубкова вроде) такая фигня. Книга года 2004-го, а продается чуть ли не 2018, хотя содержимое то же (по оглавлению ясно, что ничего нового).
Eugene
Конечно неправильно. EBX и пр. регистры имеют размерность 4 байта. Вам надо 1 байт читать, зачем все 4 ? Либо заранее сбрасываем EBX в 0 и используем BL, либо используем movzx ebx,byte [ecx].
Eugene
Теперь второй момент. Никакого нуль-байта там нет. Там может быть только перевод строки (10), но и то только если юзер ввёл меньше EDX значащих символов. Длина строки возвращается в EAX после системного вызова. Документацию читайте внимательно. Причём, размер этот будет включать в себя перевод строки (10), если он есть.
Eugene
При ошибке EAX=-1. Т.е. нужно сравнить EAX с EDX. Если он меньше, то уменьшить EAX на 1, иначе проверить что находиться по адресу [ECX+EAX-1]. Если там 10, то уменьшить EAX.
Eugene
Либо просто использовать EAX как длину строки и заодно проверять (в цикле преобразования сроки в число) — не попалось ли 10.
Eugene
Главное проверить, чтобы длина строки была > 0, иначе получите почти бесконечный цикл.
Eugene
А вообще по-хорошему нужно проверять, является ли символ цифрой и есть ли вообще цифры (иначе пустая строка будет трактоваться как 0).
Anonymous
Подскажите пожалуйста, как слинковать динамическую библиотеку с основной программой не используя gcc? (nasm, ld, *nix 64) Есть два файла, main.asm и lib.asm, делаю так: nasm -f elf64 lib.asm -o lib.o ld -shared lib.o -o lib.so nasm -f elf64 main.asm -o main.o ld lib.so main.o -o main ls -la main -rwxr-xr-x 1 admin admin 2440 ноя 24 13:10 main ./main bash: ./main: Нет такого файла или каталога Понимаю, что неправильно линкую - как статическую библиотеку, но не могу нагуглить нужных примеров как собирать, везде с gcc примеры, хотелось бы без gcc исключительно ld и nasm. Нужно как-то указывать, что библиотека шаред и код в ней должен быть PIC? Растолкуйте пожалуйста
Anonymous
objdump -tf main main: формат файла elf64-x86-64 архитектура: i386:x86-64, флаги 0x00000112: EXEC_P, HAS_SYMS, D_PAGED начальный адрес 0x0000000000400268 SYMBOL TABLE: 0000000000400158 l d .interp 0000000000000000 .interp 0000000000400168 l d .hash 0000000000000000 .hash ...
Anonymous
ldd main linux-vdso.so.1 (0x00007ffe413fc000) /home/asm/lib.so (0x00007f3bacc65000)
Лев
Возможно ld нужен флаг о том где лежит разделяемый файл
Лев
Смысле откуда грузить
Anonymous
Rus Bashirov, [24.11.18 13:49] ELF case, the dynamic linker which is stored in the .interp section of the program is executed) or directly by running: /lib/ld-linux.so.* [OPTIONS] [PROGRAM [ARGUMENTS]] Rus Bashirov, [24.11.18 13:49] вот нашел Rus Bashirov, [24.11.18 13:49] но у меня нет /lib/ld-linux.so* ) Rus Bashirov, [24.11.18 13:49] но как тогда работают динамические библиотеки )) Rus Bashirov, [24.11.18 13:50] ld --dynamic-linker /lib/ld-linux.so.2 -L . -l P a.out -o aaadyn Rus Bashirov, [24.11.18 13:50] вот вроде бы ключ Rus Bashirov, [24.11.18 13:51] тоесть получается --dynamic-linker /lib/ld-linux.so*, но ее нет %)
Anonymous
из флуда
Anonymous
секция .interp как видно и так появляется
Anonymous
заработало:
Anonymous
>$ nasm -f elf64 libP.asm -o libP.o >$ ld -shared libP.o -o libP.so >$ nasm -f elf64 main.asm -o main.o >$ ld --dynamic-linker /lib64/ld-linux-x86-64.so.2 -L . -l P main.o -o main_dynamic >$ file main_dynamic main_dynamic: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, not stripped
Anonymous
но не совсем понятно до конца, почему во первых не сработала опция -L . не находит либу в текущей директории, приходится копировать libP.so в /lib
Anonymous
и второе, не понятно с опцией -l namespec, обязательно ли указывать пространство имен или можно указать как-то конкретный файл шаред либы
Anonymous
подскажите пожалуйста кто разбирается
Aiwan \ (•◡•) / _bot
Вот они, красавиц Ы. 😁
­
Вот они, красавиц Ы. 😁
У неё лицевой тик
­
.....
Aiwan \ (•◡•) / _bot
.....
.....
Aiwan \ (•◡•) / _bot
Читайте закреп
Vyacheslav
Читайте закреп
Лучше б в описание группы эту инфу перенести
­
Лучше б в описание группы эту инфу перенести
Ты думаешь, от этого они бы стали читать?
Aiwan \ (•◡•) / _bot
Лучше б в описание группы эту инфу перенести
Дак вроде есть, правда не совсеи понятно где дрлжен быть контроль
­
Читайте закреп
В личку долбятся?
Aiwan \ (•◡•) / _bot
Нее, просто чувствую их недоумение. Пришли на канал а писать низя
Aiwan \ (•◡•) / _bot
И некрторые уходят
­
Нее, просто чувствую их недоумение. Пришли на канал а писать низя
Дык студиозы перед сессией. Читать не умеют, а думать больно. Вот и ломятся куда угодно, лишь бы им нахаляву "эти тупые задачки" решили. За них. Бесплатно.
­
А самый шик был, когда я тут встретил человека с моего инста, 3 годами ниже. Просил решить за него задание (ввод 2-х чисел, если второе меньше 1-го, то вычесть, иначе сложить, вроде, и вывести в стдоут.) помочь-то помог, но с хитростью -- в середине проги отключались прерывания, в конце перед выходом -- переход в режим ожидания прерывания... Ну и преподу подсказал. ;-)
JeisonWi
Как-то не очень, имхо. Либо помогать, либо нет, но не так
­
Как-то не очень, имхо. Либо помогать, либо нет, но не так
Зато после пересдачи в летнюю сессию у него, сука, ассемблер x386 от зубов отскакивал, в уме проги прогонял. Потом он и сам начал преподу помогать. По идее, летом он выпуститься должен...
kitsu
а после окончания вуза пошел работать продавцом в пятерочку happy end cool story
Ну вот, а потом говорят узкие айти специалисты работу найти не могут
JeisonWi
Ну вот, а потом говорят узкие айти специалисты работу найти не могут
А широким специалистам сложнее одежду выбирать
­
А широким специалистам сложнее одежду выбирать
Настолько толсто, что даже тонко.
Eugene
По поводу закрепа. Совершенно непонятно, что делать. Кому рассказывать? То ли админу в личку, то ли во флуд. И что дальше делать — сидеть и ждать или...?
­
По поводу закрепа. Совершенно непонятно, что делать. Кому рассказывать? То ли админу в личку, то ли во флуд. И что дальше делать — сидеть и ждать или...?
Тебе же русским по белому написано, что обсудить это можно во флуде. Почему-то у большинства проблем с пониманием текста нет.
Eugene
Зачем мне это обсуждать, если я хочу пройти контроль?
­
У большинства есть, судя по тому, что тут участников втрое больше.
Угу, вот только разгребать авгиевы конюшни "удалённых какаунтов" никто не желает.
Eugene
Фразами типа «обсудить эту хуйню» вы привлекаете как раз школоту и прочий контингент низкого уровня развития, от которого всеми усилиями пытаетесь избавиться. Я не предлагаю задавать тон общения уровня 80-летних профессоров, но такие вещи в официальных сообщениях наводят на размышления. Это ИМХО, а там уж решайте сами.
Churchill
Етить какой важный птиц Все вокруг живут неправильно
Eugene
Churchill
Мое мнение- не флудить в профильных чатах