Добрый день. Начал программировать под Win совсем недавно. В Visual Studio 2008 пишу вот такой код. При его компиляции выдаёт ошибку error C2440: '=' : cannot convert from 'char (*)[13]' to 'void (__cdecl *)(void)' Но на мой взгляд всё верно ).... Как исправить проблему??
opcode = (void(__cdecl*)(void))&shellcode; тебя, насколько я понимаю, не устраивает, ога? Код (Text): int __cdecl main(int argc, const char **argv, const char *envp) { dword_40042C = (int (*)(void))dword_400290; dword_40042C(); return printf("helloooo"); } edit: эм.. edit: ой
Comer_ Оказалось что устраивает =) всё откомпилировалось. Но появилась новая проблема. После выполнения, код не доходит до printf . Появляется следующее сообщение. Unhandled exception at 0x0041700c in 5.exe: 0xC0000005: Access violation writing location 0x00000000. shellcode должен быть написан верно. Вот что выводит дебагер
ну во первых слип должен был вызываться по правилам шеллкодирования: от поиска базы до самой функи. а у тебя там захардкодено как то прям .. всё неправильно.
Код (Text): 68 10270000 push 2710 B8 4624807C mov eax,kernel32.Sleep FFD0 call eax С пикодом всё нормально, модуль в студию.
да всем спать пора. официально объявляю: все пропарились и забыли про ret .D всем нам просто пора спать уже)
Ещё раз напишу полностью код. Ошибка Unhandled exception at 0x0041700c in 5.exe: 0xC0000005: Access violation writing location 0x00000000. Появляется до вызова функции printf. Также появляется когда я пробую вызвать shell через асм. наподобии следующего __asm{ push eax mov eax, opcode call eax pop eax }
featurelles Интересно узнать, почему ты не протрассировал этот код, веть продебажить быстрее, чем написать пост ?
ну слыышь .D ты из нас спал вобще меньше всех, видать)) c3, он же ret .) мой код конпелируй! вся фишка в элементе общения ,)
Comer_ Чёрт) точно....чтото глупо получилось) спасибо. Clerk я до вчерашнего дня, ниразу не программировал в VS да и вообще для windows...всё както ново... сейчас даже не понимаю почему opcode = (void(__cdecl*)(void))&shellcode; писать нужно именно так,.... например..что это за (__cdecl*) такой)