evilcode1 Ответов: 1

Преобразовать исполняемый файл в base64 и запустить его из memry не получится


я все еще получаю эту ошибку, когда пытаюсь отладить проект, но не знаю почему ...

Цитата:
'WindowsApplication13.vshost.exe' (среда CLR версии 4.0.30319: WindowsApplication13.vshost.exe): загрузил c:\users\evilcode1\documents\visual студия 2013\Projects\WindowsApplication13\WindowsApplication13\bin\Debug\WindowsApplication13.exe'. Символы загружены.
'WindowsApplication13.vshost.exe' (среда CLR версии 4.0.30319: WindowsApplication13.vshost.exe): C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime Загружен '.Удаленное управление\v4.0_4.0.0.0__b77a5c561934e089\System. Runtime.Remoting.dll". Не удается найти или открыть файл PDB.
'WindowsApplication13.vshost.exe' (среда CLR версии 4.0.30319: WindowsApplication13.vshost.exe): загружен 'с помощью MsgBox'. Символы загружены.
Первое случайное исключение типа "система".Отражение.TargetParameterCountException ' произошло в mscorlib.dll
Программа "[5392] WindowsApplication13.vshost.exe: программа Trace ' вышла с кодом 0 (0x0).
Программа "[5392] WindowsApplication13.vshost.exe 'вышел с кодом -1073741819 (0xc0000005) 'нарушение доступа'


Что я уже пробовал:

я пишу этот код и компилирую его в файл. exe :

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    me.ShowInTaskbar = False
    me.Opacity = 0

    MessageBox.Show("test", "test")

    MyBase.Close()


End Sub


затем я конвертирую скомпилированный файл. exe в код base64 и пишу этот код для его запуска :

Public Class Form1

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    MyBase.ShowInTaskbar = False
    MyBase.Opacity = 0





    Dim qassam As String = "8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA"
    Dim lena As Byte() = Convert.FromBase64String(qassam)


    AppDomain.CurrentDomain.Load(lena).EntryPoint.Invoke(Nothing, Nothing)







End Sub


8аалгааааааааааааааааааааааааааааааааааааааааааааа = составлено msgbox.exe с шага 1 (преобразовано в base64)

код не дает мне никакой ошибки просто не работает

Jochen Arndt

Строка длиной менее 40 символов - это кодированное base64 изображение исполняемого файла?
Невозможно.

1 Ответов

Рейтинг:
1

OriginalGriff

Ваша строка не является допустимой строкой Base64: ее длина неверна в 37 байт, и я ни в малейшей степени не верю, что минимальное приложение Winforms будет иметь менее 7,5 K двоичных файлов, поэтому я бы искал строку Base64 размером около 10 КБ.
На первый взгляд, вы копируете и вставляете его плохо-проверьте свой код, который читает exe-файл и преобразует его в базу 64.


evilcode1

Я сократил его это полный вариант :

TVqQAAMAAAAEAAAA // 8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1vZGUuDQ0KJAAAAAAAAABQRQAATAEEACX / 6VgAAAAAAAAAAOAAAgELAQsAADwAAAA4AAAAAAAADloAAAAgAAAAYAAAAABAAAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAADgAAAABAAAAAAAAAIAQIUAABAAABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAALxZAABPAAAAAIAAABgyAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAwAAAAAYAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAAFDoAAAAgAAAAPAAAAAQAAAAAAAAAAAAAAAAAACAAAGAuc2RhdGEAADgBAAAAYAAAAAIAAABAAAAAAAAAAAAAAAAAAABAAADALnJzcmMAAAAYMgAAAIAAAAA0AAAAQgAAAAAAAAAAAAAAAAAAQAAAQC5yZWxvYwAADAAAAADAAAAAAgAAAHYAAAAAAAAAAAAAAAAAAEAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBZAAAAAAAASAAAAAIABQBcMAAAYCkAAAEAAAADAAAGUCAAAHABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAAAAM7K774BAAAAkQAAAGxTeXN0ZW0uUmVzb3VyY2VzLlJlc291cmNlUmVhZGVyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkjU3lzdGVtLlJlc291cmNlcy5SdW50aW1lUmVzb3VyY2VTZXQCAAAAAAAAAAAAAABQQURQQURQtAAAALQAAADOyu ++ AQAAAJEAAABsU3lzdGVtLlJlc291cmNlcy5SZXNvdXJjZVJlYWRlciwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5I1N5c3RlbS5SZXNvdXJjZXMuUnVudGltZVJlc291cmNlU2V0AgAAAAAAAAAAAAAAUEFEUEFEULQAAAAqAAIoTgAACgAAKgAbMAIAQwAAABkAABEAAAJv VwAACgwrEQhvWAAACgsHb1kAAAoK3iYACG9aAAAKDQkt5QDeFAgU / Gew / gENCSwHCG8RAAAKAADcFAorAAYqAAEQAAACAAIAJykAFAAAAAAbMAIAQQAAABoAABEAAAJvVwAACgsrEwdvWAAACgoGA29bAAAKAAArCwAHb1oAAAoMCC3jAN4UBxT + АРБ + AQwILAcHbxEAAAoAANwAKgAAAAEQAAACAAIAKSsAFAAAAAAbMAIASQAAABsAABEAAAJvVwAACgwrFwhvWAAACgsHA29cAAAKKF0AAAoK3iYACG9aAAAKDQkt3wDeFAgU / Gew / gENCSwHCG8RAAAKAADcFAorAAYqAAAAARAAAAIAAgAtLwAUAAAAABswAwBCAAAAHAAAEQAAAm9XAAAKCysUB29YAAAKCgYDBG9eAAAKAAArCwAHb1oAAAoMCC3iAN4UBxT + АРБ + AQwILAcHbxEAAAoAANwAKgAAARAAAAIAAgAqLAAUAAAAABMwAgASAAAAHQAAEQACA29cAAAKKF0AAAoKKwAGKgAAMgACAwRvXgAACgAAKgAAABMwAgAfAAAAHgAAEQADFP4BCwcsBBQKKxAAAgMoDQAACnNfAAAKCisABioAEzACABwAAAAfAAARAAIDb2AAAApzXwAACgoGA29hAAAKAAYLKwAHKhMwBABUAAAAIAAAEQAFFP4BFv4BDQksQQV1CwAAAQsHFP4BFv4BDQksDgIDBAcoKgAABgorKCsgAAV1DwAAAQwIFP4BFv4BDQksDAIDBAgoKQAABgorBwAAAAUKKwAGKhMwBABoAAAAIQAAEQAFFP4BFv4BDAgsVQV1DQAAGwsHFP4BFv4BDAgsHwcCAwRzKwAABiX + BywAAAZzYgAACigFAAArCisrKyMABSgGAAArAgMEcysAAAYl / gctAAAGc2UAAAooBwAAKworBgAABQorAAYqEzACAJgBAAAiAAARAAUU / Gew / gETEBEQOYABAAAF b2YAAAoLOGQBAAAHb2cAAAoMB29oAAAKExAREDlKAQAAB28IAAArDQdvagAACm9rAAAKEwQJFP4BFv4BExAREDklAQAAAiwDAy0DFisBFwATERERLFgCjrcX2hMFFhEFEw4TCCs + AhEImhMHAxEImhMGEQQRB29sAAAKExERESwbCREGKG0AAAoTEBEQLAcHb24AAAoAABQLACsSAAARCBfWEwgRCBEOExIREjG4AAcU / ГРР / gETEREROaoAAAAEFP4BFv4BExARECx / BG9vAAAKF9oTCRYRCRMPEw0rYgQRDW9wAAAKEwoRCm9qAAAKb2sAAAoTDBEKbwgAACsTCxELFP4BFv4BExERESwrEQQRDG9sAAAKExARECwbCRELKG0AAAoTExETLAcHb24AAAoAABQLACsTAAAAEQ0X1hMNEQ0RDxMSERIxlAAHFP4BFv4BExMREywPB29uAAAKAAQHb3EAAAoAAAAAAAgLAAcU / ГРР / gETExETOoz + // 8ABQorAAYqfgACKE4AAAoAAgN9CgAABAIEfQsAAAQCBX0MAAAEACoTMAQAHgAAACMAABEAAnsKAAAEAnsLAAAEAnsMAAAEAygqAAAGCisABioAABMwBAA4AAAAJAAAEQADdQsAAAEKBhT + ARB + ​​AQwILB0CewoAAAQCewsAAAQCewwAAAQGKCoAAAYLKwgrBQADCysBAAcqEzACADsAAAAlAAARAH4PAAAEFChzAAAKDAgsIHLPAABw0AsAAAIoQAAACm90AAAKc3UAAAoLB4APAAAEAH4PAAAECisABioAEzABAAsAAAAmAAARAH4QAAAECisABioAJgACgBAAAAQAKgAAlnM4AAAGKHYAAAp0DAAAAoARAAAEc04AAAooDQAACoATAAAEACoAACYCKHcAAAoAACoAABMwAQAdAAAAJwAAEQAoCQAABm94A

OriginalGriff

И это все еще только 3,5 к-слишком мало.
Посмотрите на свой код для создания базы 64 и на то, что вы делаете с ней после ее создания...

evilcode1

это мой код я закодировал конвертер base64 :

Система Импорта.ИО
Форма Публичного Класса 1

Private Sub Button1_Click(отправитель как система.Объект, как система.EventArgs) Обрабатывает Button1.Щелчок
Дим Диалоговое Окно Openfiledialog Как Новое Диалоговое Окно Openfiledialog
С Помощью Диалогового Окна Openfiledialog
. Title = " выберите EXE-файл"
.Filter = " Exe-файлы (*. exe)|*. exe"
.Метод showdialog()
Конец С
Текстовое поле textbox1.Текст = Диалоговое Окно Openfiledialog.имя файла
Конец Подводной Лодки

Private Sub Button2_Click(отправитель как система.Объект, как система.EventArgs) Обрабатывает Button2. Click
Richtextbox1 отображение.Текст = ConvertFileToBase64(Текстовое Поле Textbox1.Текст)
Конец Подводной Лодки
Публичная функция ConvertFileToBase64(ByVal fileName As String) As String
Возвратный Конверт.ToBase64String(Системы.ИО.Файл.ReadAllBytes(имя файла))
Конечная Функция

Private Sub RichTextBox1_TextChanged (sender As Object, e As EventArgs) обрабатывает RichTextBox1. TextChanged

Конец Подводной Лодки

Private Sub Button5_Click (sender As Object, e As EventArgs) обрабатывает Button5.Щелчок
Буфер обмена.SetDataObject(RichTextBox1. Text)

Конец Подводной Лодки

Частная суб методе form1_load(отправителя как объект, а равно EventArgs) обрабатывает ключевое слово mybase.Загрузить

Конец Подводной Лодки
Конец Класса

OriginalGriff

Итак, что же, по словам отладчика, находится в массиве lena, прежде чем вы попытаетесь загрузить его как сборку? И зачем ты это делаешь?

evilcode1

как я могу знать, что говорит отладчик в массиве Лена ? я запускаю проект в режиме отладки и вот что у меня получилось :

Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): загрузил C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio загружен '.Хостингпроцесс.Утилиты\12.0.0.0_ _ b03f5f7f11d50a3a\Microsoft. VisualStudio.Хостингпроцесс.Utilities.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): загрузил C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Окна.Формы\v4.0_4.0.0.0__b77a5c561934e089\система.Окна.Forms.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): загрузил C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): загрузил C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Рисунок\v4.0_4.0.0.0__b03f5f7f11d50a3a\система.Drawing.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio загружен '.Хостингпроцесс.Коммунальные услуги.Sync\12.0.0.0_ _ b03f5f7f11d50a3a\Microsoft. VisualStudio.Хостингпроцесс.Utilities.Sync.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio загружен '.Отладчик.Runtime\12.0.0.0_ _ b03f5f7f11d50a3a\Microsoft. VisualStudio.Отладчик.Runtime.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): c:\users\evilcode1\documents\visual проекты загружаются студии\2013\урок первый\урок первый\бин\отладки\первый lesson.vshost.exe'. Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): C:\Windows\Microsoft.Net\assembly\GAC_64\System загружен '.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): загрузил C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): загрузил C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Развертывание\v4.0_4.0.0.0__b03f5f7f11d50a3a\система.Deployment.dll". Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): загружается 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): загружается 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll'. Пропущенные символы загрузки. Модуль оптимизирован, и включена опция отладчика "только мой код".
Сначала lesson.vshost.exe' (среда CLR версии 4.0.30319: во-первых lesson.vshost.exe): загрузил C:\Windows\Micro

OriginalGriff

Поставьте точку останова на линии
домен приложений.CurrentDomain.Нагрузки(Лена).Точка входа.Invoke(Ничего, Ничего)
И посмотрите на Лену в отладчике, когда она достигнет точки останова. Полагаю, вы знаете, как устанавливать точки останова?

evilcode1

я поставил точку останова, но не получил ошибки или, может быть, я не понял, можем ли мы решить ее через teamviwer ?

OriginalGriff

Точки останова не имеют ничего общего с ошибками и абсолютно ничего общего с TeamView. Знаете ли вы, что вы делаете, вы просто хватаете слова и догадываетесь?
Потому что если вы не знаете, что делаете, так и скажите - и мы ответим, предполагая более низкий уровень начального знания.

evilcode1

я новичок в vb.net я не знаю, как использовать его как профессионал ... вот почему я здесь

OriginalGriff

Это не случай " про "или" не про " - просто мы не знаем, какой у вас уровень знаний. Если вы полный новичок, то так и скажите - это означает, что мы можем предположить недостаток знаний, а не предполагать, что вы знаете основы!
Мы не возражаем против новичков здесь - мы все должны с чего - то начать, - но если мы предполагаем, что вы знаете, что делаете, то мы реагируем как на кого-то, кто имеет тот же уровень опыта, что и мы!

Итак ... начните так: в Visual Studio наведите курсор на строку, которую я показал выше, и выберите меню "отладка". Выберите в меню пункт "переключить точку останова", и в начале строки появится красная точка - запомните, где она находится.
Нажмите на красную точку, и она исчезнет. нажмите на то же место, и он вернется. Это "переключение точки останова" - и хотя у вас там есть красная точка, когда вы запускаете свой код в отладчике и он пытается выполнить метод, он остановится, когда достигнет точки останова: передача управления вам.
Теперь вы можете посмотреть, что находится в ваших переменных (наведите курсор мыши на имя переменной, и вы увидите, что я имею в виду), выполнить свой код построчно (так называемый "одиночный шаг") или даже внести изменения во время его работы, чтобы увидеть, что произойдет!

Начните с этого и попробуйте-это самый мощный инструмент в любом наборе инструментов разработчиков, и с ним стоит ознакомиться: вы будете использовать его *много*: смейтесь:

Попробуй и расскажи мне, что ты нашел.