Viktor
22, опечатка
Viktor
8/4 = 2
88/4 = 22
Viktor
Еще раз всем спасибо :)
KosBeg
пожалуйста(если хоть чем нибудь помог) 🌝
Viktor
помог тем armconverter'ом
Благодаря нему я заметил, что только кратные 4 оффсеты обрабатываются без ошибок для thumb
Олег
Может кому пригодится
Олег
#دانلود_کتاب ؛
برنامه نویسی #ARM با زبان #اسمبلی بهمراه تجربیات سخت افزاری (#LPC1768)
از انتشارات اشپرینگر.
آموزش #معماری_کامپیوتر و تراشه های ARM از جمله LPC1768 و مثال عملی در محیط #keil
@embedded
Олег
#LPC1768
#ARM
#Assembly
#keil
#computer_architecture
#ARM_Architecture
#microcontrollers
@embedded
Sergey
@ENERGY_STAFF
друзья, как на масме слинковать прогу вместе с kernel32?
@ENERGY_STAFF
uselib kernel32?
bilka00
В смысле слинковать вместе?
bilka00
Импорты добавить зачем линковать kernel
@ENERGY_STAFF
пишу uselib kernel32
масм пишет error A2006: undefined symbol : _LoadLibraryAFunc, такой разве нет в kernel32
bilka00
Так хидеры с прототипами подключи
bilka00
Помимо .lib
bilka00
.inc должно быть
@ENERGY_STAFF
include \masm32\include\windows.inc
include \masm32\macros\macros.asm
@ENERGY_STAFF
они?
bilka00
kernel32.inc
bilka00
kernel32.asm
bilka00
Скорей эти
bilka00
Скопируй из любого hello world
bilka00
Хотя там наверное только .inc
bilka00
И блин вообще выброси масм
bilka00
Фасм рулит имхо
Учебник есть по фасм?
bilka00
А вот хз
bilka00
Я скорей форумы да доки смотрел
bilka00
(Доки это громко сказано просто оф форум)
bilka00
Хотя на деле там неплохие доки с примерами
Ну а ежели ничего не знаешь
База то нужна
@ENERGY_STAFF
добавил:
include \masm32\include\kernel32.inc
uselib kernel32, user32
includelib kernel32.lib
все равно пишет error A2006: undefined symbol : _LoadLibraryA
притом что в мсдн черным по белому что LoadLibrary в kernel32
bilka00
Эм ну он там есть
bilka00
Это факт
bilka00
Скинь весь код если не большой
bilka00
Если большой то мне впадлу будет ковыряться(
@ENERGY_STAFF
убрал нижнее подчеоркивание компильнулось, странно почему то в нете пример был с подчеркиванием
Ох уж эти знаки препинания...
Игру StarCraft открыли для машинного обучения.
Теперь Скайнет умеет ещё и в зерграш.
@ENERGY_STAFF
особенно точки с запятой 😡
с точкой запятой все понятно, а вот в каких случаях нужно использовать нижнее подчеркивание с именем функции и букву А (_LoadLibraryA) несовсем понял я
Vitaliy ◀️TriΔng3l▶️
Vitaliy ◀️TriΔng3l▶️
На MSDN указывается, есть ли у функции WinAPI отдельные версии для ASCII и Юникода
Vitaliy ◀️TriΔng3l▶️
Подчёркивание — всегда. Это потому что вдруг у тебя функция называется mov, или eax. К символам его компиляторы C/C++ добавляют.
@ENERGY_STAFF
Vitaliy ◀️TriΔng3l▶️
Vitaliy ◀️TriΔng3l▶️
Сами символы в DLL и в lib с подчёркиваниями
Anonymous
#pragma comment(lib,"ntdll.lib")
Anonymous
для x86 сборки в msvc работает
Anonymous
однако какойто бред происходит в x64
Anonymous
например не могу инжектить 32bit shellcode в 32битный процесс
Anonymous
темже NtCreateThreadEx
Anonymous
метод getprocaddr работает
Anonymous
вот поменял через екстерны и чертовщина
Anonymous
BOOL CodeInject::injNtCreateThreadEx(HANDLE handle, const Shellcode_t& sc)
{
DWORD ret;
LPVOID sc_addr;
HANDLE hRemoteThread;
size_t sc_size = sc.size();
if (!sc_size) return FALSE;
sc_addr = VirtualAllocEx(
handle,
NULL,
sc_size,
MEM_COMMIT,
PAGE_EXECUTE_READWRITE);
if (!sc_addr) return FALSE;
ret = WriteProcessMemory(
handle,
sc_addr,
&sc.front(),
sc_size,
NULL);
if (!ret) return FALSE;
ret = NtCreateThreadEx(
&hRemoteThread,
GENERIC_ALL,
NULL,
handle,
sc_addr,
0,
FALSE,
NULL,
NULL,
NULL,
NULL);
if (NT_ERROR((NTSTATUS) ret)) return FALSE;
return TRUE;
}
Anonymous
EXTERN_C NTSTATUS NTAPI NtCreateThreadEx(PHANDLE, ACCESS_MASK, LPVOID, HANDLE, LPVOID, LPVOID, BOOL, DWORD, DWORD, DWORD, LPVOID);
Anonymous
на сборке под x86 работает прекрасно
Anonymous
на x64 не инжектит 32битный код в 32битный проц
Nikolai
👍
Anonymous
не понял
Anonymous
к чему это?
Anonymous
а теперь в замешательстве, впадлу переписывать обратно к гетпроцадресам
Anonymous
валится на создании потока
Anonymous
👍
ага, также не работает. был не тот метод инжекта прописан(
Anonymous
чет неверно функцию написал
Anonymous
но.. на сборке x86 все шикарно
Justin
Давненько я не заходил в Телеграмм
Justin
Anonymous
собсна я гдето протупил с NtCreateThreadEx, работает под x86 не работает под x64
Anonymous
plz))))))))))))))
Ivan
Anonymous
не, тут все в порядке
я компилю под x64 и выдаетет аксесдинайд 1300 (NtCreateThreadEx)
Anonymous
Другие методы инжекта работают
Anonymous
а причем здесь асм вообще?
функция недокументированная и проверить почему выдана ошибка можно по чужому опыту или отладкой режима ядра(посути это сискол)
Anonymous
похоже придется забить на свой перфекционизм, извините за излишнее колво вопросов.
bilka00
А просто CreateThreadEd?