я думаю всем похуй
­
Я думаю они могут лососнуть тунцов.
́🇷🇺
Жестоко однако. Зачем студенту нести свет в мир, которому похуй на тебя.
­
А вот и спамеры пришли.
Aiwan \ (•◡•) / _bot
чет они скучные
Aiwan \ (•◡•) / _bot
include 'win32ax.inc' ; you can simply switch between win32ax, win32wx, win64ax and win64wx here .data buf db '#define IDD_DLG1 1000 ',0 len_buf dd $-buf _define db '#define',0 len_define dd $-_define .code start: stdcall scanmem,buf,[len_buf],_define,[len_define] ; invoke MessageBox,HWND_DESKTOP,_define,'Результат',MB_OK invoke ExitProcess,0 ;================================================================== proc scanmem uses esi edi, SRCdata,SRCsize,PTRdata,PTRsize ;local pointerSRC:DWORD ;сюда сохраняем начало исходного слова для проверки mov esi,[SRCdata] ;инициализируется 1 раз для прохода по каждому символу cld @@: mov edi,[PTRdata] mov ecx,[PTRsize] ;счетчик патерна repz cmpsb ;2а условия выхода:1-счетчик ecx=0; 2-проверяемые символы не равны друг другу ;mov eax,esi ;sub eax,[SRCdata] ;в eax кол-во проверенных символов .if ecx=0 ;& esi=' '; неправильно, в esi адрес а не значение ;??????? как правильно записать проверку, что следущий символ, адрес которого в esi, равен ' ' (020h) invoke MessageBox,HWND_DESKTOP,"найден #define",'Результат',MB_OK .else invoke MessageBox,HWND_DESKTOP,"НЕ найден #define",'Результат',MB_OK mov eax,esi sub eax,[SRCdata] ;в eax кол-во проверенных символов .if eax=[SRCsize] ;проверяем а не конец ли проверяемой строки? jmp @f .endif jmp @b .endif @@: ret endp .end start как правильно записать проверку, что следущий символ, адрес которого в esi, равен ' ' (020h)
Сергей
Парни как искать кошелек wallet.dat в памяти и на поверхности диска?
Сергей
Не потерял)) чесно
­
И тут не поощряется вирусня.
bilka00
Таки да мисье прав)
Сергей
Так я про способы поиска
bilka00
В памяти ты особо его не поищешь
bilka00
На диске через винапи функции так то если вэнда
Сергей
Ну есть же ФС частично хранящие файло в памяти
Alexander
Всем привет. Интересует такой вопрос: есть какая-то программа на Си с функцией foo(). Можно ли как-то с помощью сторонней программы повлиять на эту функцию (добавить что-то / удалить)?
Aiwan \ (•◡•) / _bot
hiew
­
hiew
Как по русски прочитать её? :-)
Alexander
Не, это же редактор. Я имею в виду написание отдельной проги, как дополнение к предыдущей.
Aiwan \ (•◡•) / _bot
хз. я хив говорю, как человек изучавший немецкий
bilka00
bilka00
Прям вот точь в точь функция называеться как там
Aiwan \ (•◡•) / _bot
Не, это же редактор. Я имею в виду написание отдельной проги, как дополнение к предыдущей.
прогугли 'написание плагинов к программам'. типа такого
Alexander
у меня такое ощущение что это прям вопрос из мануала по боф
Нет никаких мануалов, не знаю, что такое боф. Задумался о том, как работают врапперы для DirectX, но не знаю, как правильно это нагуглить.
bilka00
ааа
bilka00
Тогда гугли api hook
bilka00
Суть в том что обычно инжектят длл и перехватывают функцию (обычно исправляют ее начало или табличку импортов софта) прыгают к себе делают все что нужно и возвращают управление
Aiwan \ (•◡•) / _bot
include 'win32ax.inc' ; you can simply switch between win32ax, win32wx, win64ax and win64wx here .data buf db '#define IDD_DLG1 1000 ',0 len_buf dd $-buf _define db '#define',0 len_define dd $-_define .code start: stdcall scanmem,buf,[len_buf],_define,[len_define] ; invoke MessageBox,HWND_DESKTOP,_define,'Результат',MB_OK invoke ExitProcess,0 ;================================================================== proc scanmem uses esi edi, SRCdata,SRCsize,PTRdata,PTRsize ;local pointerSRC:DWORD ;сюда сохраняем начало исходного слова для проверки mov esi,[SRCdata] ;инициализируется 1 раз для прохода по каждому символу cld @@: mov edi,[PTRdata] mov ecx,[PTRsize] ;счетчик патерна repz cmpsb ;2а условия выхода:1-счетчик ecx=0; 2-проверяемые символы не равны друг другу ;mov eax,esi ;sub eax,[SRCdata] ;в eax кол-во проверенных символов .if ecx=0 ;& esi=' '; неправильно, в esi адрес а не значение ;??????? как правильно записать проверку, что следущий символ, адрес которого в esi, равен ' ' (020h) invoke MessageBox,HWND_DESKTOP,"найден #define",'Результат',MB_OK .else invoke MessageBox,HWND_DESKTOP,"НЕ найден #define",'Результат',MB_OK mov eax,esi sub eax,[SRCdata] ;в eax кол-во проверенных символов .if eax=[SRCsize] ;проверяем а не конец ли проверяемой строки? jmp @f .endif jmp @b .endif @@: ret endp .end start как правильно записать проверку, что следущий символ, адрес которого в esi, равен ' ' (020h)
bilka00
yes
Aiwan \ (•◡•) / _bot
кто нить подскажет по моему вопросу?
Aiwan \ (•◡•) / _bot
[SRCdata+eax]=' ' не проходит
Aiwan \ (•◡•) / _bot
тогда попробую другой метод
s54820
include 'win32ax.inc' ; you can simply switch between win32ax, win32wx, win64ax and win64wx here .data buf db '#define IDD_DLG1 1000 ',0 len_buf dd $-buf _define db '#define',0 len_define dd $-_define .code start: stdcall scanmem,buf,[len_buf],_define,[len_define] ; invoke MessageBox,HWND_DESKTOP,_define,'Результат',MB_OK invoke ExitProcess,0 ;================================================================== proc scanmem uses esi edi, SRCdata,SRCsize,PTRdata,PTRsize ;local pointerSRC:DWORD ;сюда сохраняем начало исходного слова для проверки mov esi,[SRCdata] ;инициализируется 1 раз для прохода по каждому символу cld @@: mov edi,[PTRdata] mov ecx,[PTRsize] ;счетчик патерна repz cmpsb ;2а условия выхода:1-счетчик ecx=0; 2-проверяемые символы не равны друг другу ;mov eax,esi ;sub eax,[SRCdata] ;в eax кол-во проверенных символов .if ecx=0 ;& esi=' '; неправильно, в esi адрес а не значение ;??????? как правильно записать проверку, что следущий символ, адрес которого в esi, равен ' ' (020h) invoke MessageBox,HWND_DESKTOP,"найден #define",'Результат',MB_OK .else invoke MessageBox,HWND_DESKTOP,"НЕ найден #define",'Результат',MB_OK mov eax,esi sub eax,[SRCdata] ;в eax кол-во проверенных символов .if eax=[SRCsize] ;проверяем а не конец ли проверяемой строки? jmp @f .endif jmp @b .endif @@: ret endp .end start как правильно записать проверку, что следущий символ, адрес которого в esi, равен ' ' (020h)
Хочешь сравнить байт по адресу из esi, так и пиши: .if byte[esi]=' '.
Alexander
речь была про влияние на код, LD_PRELOAD сует библиотеки
Alexander
уже понял, что это api hooks
bilka00
Не всегда api hooks
bilka00
Но понятие перехвата hooks
bilka00
Просто по запросу api hooks проше инфу рыть
Aiwan \ (•◡•) / _bot
Хочешь сравнить байт по адресу из esi, так и пиши: .if byte[esi]=' '.
спс, получилоська, только там еще esi-1 надо было
s54820
@Aiwan, может быть, стоит туда .while воткнуть, раз уж все равно на макросах пишешь? Смесь макросов с jmp плохо читается.
Aiwan \ (•◡•) / _bot
там проверка на проверке, условий много. while не конец строки?
s54820
Ну да.
Aiwan \ (•◡•) / _bot
или как лучше оптимизировать для лучшей читабельности?
Aiwan \ (•◡•) / _bot
мыслить на асме надо немного привыкать, пока так пойдет, со временем мож и перепишу
Aiwan \ (•◡•) / _bot
опыта нет
Aiwan \ (•◡•) / _bot
а макросы для менясейчас это для нгалядности. по сути это теже cmp->jmp
Aiwan \ (•◡•) / _bot
правда говонокод получается, но если работает почему и нет. мне за это зачеты не ставят
Aiwan \ (•◡•) / _bot
s54820
а акак же тогда break на асме реализовывается? развне не через jmp?
Я думал, что в фасме .break есть. А его нет. Странно даже.
Aiwan \ (•◡•) / _bot
нет
Aiwan \ (•◡•) / _bot
нету
k0rs4r
Зачем вообще нужен асм, если большая часть кода заменяется макро ?) Не проще ли взять чето более высокоуровневое, но компилящееся в натив ?
k0rs4r
нее, вы неверно поняли посыл. Для чего нужен асм я прекрасно знаю (как и сам асм). Имею ввиду для чего он нужен человеку который хочет почти все конструкции макро аналогами заменять
oles
не нужен
Aiwan \ (•◡•) / _bot
а зачем мне вообще нужен асм и другие Яву если я вообще не программист и компьютерного образования не имею и деньги на этом не зарабатываю.
k0rs4r
а, да я хз, увидел вопрос про jCC и ответил. Ну образование не обязательно, может быть в качестве хобби
Aiwan \ (•◡•) / _bot
в 🍎
Aiwan \ (•◡•) / _bot
за помощь спс
k0rs4r
Ну если есть конкретный вопрос и подойдет вариант без макро то могу помочь )
Aiwan \ (•◡•) / _bot
эти макро .if думаю легко исправить
k0rs4r
а какая задача в общих чертах ? Просто на асме чтоб эффективно писать нет смысла повторять конструкции из ЯВУ. К примеру для задач типа копирования блоков памяти спец. инструкции есть
k0rs4r
ресурсы это чисто виндовая штука.. к асму имеет такое себе отношение. Если память не изменяет в книге Петцольда по WinAPI (95 года, но ничего вроде не менялось ) неплохо описано
Aiwan \ (•◡•) / _bot
ганеева иногда просматриваю. проектирование интерфейса на winapi
k0rs4r
На самом деле в этом уже маловато смысла, разве что для общего ознакомления или патча существующих программ. ) В реальной разработке никто давно не применяет ресурсы для графики, всё делается на C#(WinForms/WPF), C++ (Qt) и тому подобных фрейморках. Во многих из них даже элементы управления - не настоящие окна из WinAPI, а рисованные, с кастомной обработкой сообщений
Aiwan \ (•◡•) / _bot
рисованные тоже интересная тема, это как в ZBrush
k0rs4r
а, ну может.. я вообще про всё что связано с графикой не особо знаю (и не интересуюсь), писал на асме всякое системное
­
Ох уж этот запах сессии в воздухе...
Anatoly
тут еще студенты есть чтоль?)
bilka00
Судя по количеству тех кто зашел в чатик да )
Anatoly
неужели еще преподают асм в вузах