Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 1
Регистрация: 10.06.2016
Сообщений: 31

Не получается скомпилировать С# исходник, чтобы заработало

01.07.2016, 19:54. Показов 2728. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Начало темы здесь Запуск определённой программы от имени локального администратора штатными средствами Windows 7 x64
Пробовал из .NET 2,3 и 4 csc исходника из http://procod.blogspot.ru/2011/07/runas.html с введёнными моими параметрами в 11-ой строке. В итоге, каждый раз получался exe-шник, но при попытке его запустить мигает чёрное окошко и ничего не происходит.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.07.2016, 19:54
Ответы с готовыми решениями:

Скомпилировать С++ исходник
Привет ! Нужно скомпилировать входящий С++ исходник, и в случае ошибки послать автора сообщить ошибку которая возникла Делаю так ...

Как сделать, чтобы заработало?
onload=\"$(this).val('').focus().val(' ')\" <textarea name=\"comment\" placeholder=\"Сообщение\" type=\"textarea\"...

Как подключить и чтобы заработало?
купил АОТ137А1, а в описании немогу сообразить как надо подключить... Да и принцип действия если есть возможность

22
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
01.07.2016, 20:21
VictorLS, Запустите вашу программу из консоли, там будут указания, что надо сделать.
0
0 / 0 / 1
Регистрация: 10.06.2016
Сообщений: 31
01.07.2016, 21:38  [ТС]
slashvlz, спасибо, но я в С# абсолютный новичок, поэтому задам, возможно, ламерский вопрос: как запустить мою программу из консоли?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
01.07.2016, 21:44
Цитата Сообщение от VictorLS Посмотреть сообщение
как запустить мою программу из консоли?
Win+R, cmd.
0
0 / 0 / 1
Регистрация: 10.06.2016
Сообщений: 31
01.07.2016, 22:32  [ТС]
Command line syntax:
runasuser [-u user] [-p password] [-d domain] someprogram.exe [params]
т.е. стопорится на 37-ой строке. Имхо надо немного переписАть исходник, но как я не знаю (
0
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
01.07.2016, 22:49
VictorLS, ничего там не стопорится, так и должно быть, если вы не понимаете что там написано, то лучше не используйте эту программу. C# тут не причём.
0
0 / 0 / 1
Регистрация: 10.06.2016
Сообщений: 31
02.07.2016, 08:33  [ТС]
С удовольствием прочитаю ответы от других продвинутых программистов С#, т.к. к сожалению нет времени разбираться.
Имхо надо помимо прописи данных админской учётки в 11-ой строке надо выкинуть строки с 12 по 40 и разобраться с { и }, чтобы не было ошибки синтаксиса.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
02.07.2016, 08:36
А можно вообще не трогать код и просто передать программе все аргументы через командную строку как это задумывалось автором.
Синтаксис командной строки:
runasuser [-u пользователь] [-p пароль] [-d домен] someprogram.exe [параметры программы]
ну или удалить строки с 13 по 40 и захардкодить все параметры если вам так уж хочется это сделать.
1
0 / 0 / 1
Регистрация: 10.06.2016
Сообщений: 31
03.07.2016, 11:16  [ТС]
Someone007, так идея как раз в том, чтобы пользователь не узнал пароль локального Администратора. Кстати, можно ли дизассемблированием exe-шника достать этот пароль?

Добавлено через 21 час 28 минут
Найдя несколько свободных минут попробовал дома скомпилировать
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;  
using System.Diagnostics;  
using System.Security;  
  
namespace RunAsUser  
{  
    class Program  
    {  
        static int Main(string[] args)  
        {  
            string username = "7", password = "777", domain = "", apppath = "ui6.exe", arguments = "";  
         }  
        static int RunAs(string apppath, string arguments, string domain, string username, string password)  
        {  
            Process userProcess;  
            try  
            {  
                userProcess = Process.Start( apppath, arguments, username, GetSecure(password), domain);  
                while (!userProcess.HasExited) ;  
                return userProcess.ExitCode;  
            }  
            catch (Exception e)  
            {  
                Console.WriteLine(e.Message);  
            }  
            return -1;  
        }  
  
        static SecureString GetSecure(string str)  
        {  
            SecureString SecureStr = new SecureString();  
            foreach (char c in str)  
            {  
                SecureStr.AppendChar(c);  
            }  
  
            return SecureStr;  
        }  
    }  
}
в NET2 и, как и ожидал, получил сообщения об ошибках, но не exe-шник:
Версия компилятора Microsoft (R) Visual C# 20058.00.50727.7057
для Microsoft (R) Windows (R) 2005 Framework версии2.0.50727
Авторские права (C) Microsoft Corporation 2001-2005. Все права защищены.

runasui6.c(11,20): warning CS0219: Переменной "username" присвоено значение, но оно ни разу не использовано
runasui6.c(11,36): warning CS0219: Переменной "password" присвоено значение, но оно ни разу не использовано
runasui6.c(11,54): warning CS0219: Переменной "domain" присвоено значение, но оно ни разу не использовано
runasui6.c(11,67): warning CS0219: Переменной "apppath" присвоено значение, но оно ни разу не использовано
runasui6.c(11,88): warning CS0219: Переменной "arguments" присвоено значение, но оно ни разу не использовано
runasui6.c(9,20): error CS0161: "RunAsUser.Program.Main(string[])": не все ветви кода возвращают значение
Профессионалы программирования в С#, помогите, пожалуйста. Уверен, что исправить код так, чтобы заработало у вас займёт несколько минут и столько же, чтобы ответить в этой теме )
0
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
03.07.2016, 13:48
VictorLS, после 11-й строки добавьте return RunAs(apppath, arguments, domain, username, password);
1
0 / 0 / 1
Регистрация: 10.06.2016
Сообщений: 31
03.07.2016, 20:27  [ТС]
slashvlz, СПАСИБО огромное, с этой строчкой сразу заработало.
Но осталось решить две проблемы, без которых использование скомпилированного исходника на работе затруднительно:
1. как в 11-ой строке прописАть полный путь к exe типа apppath = "C:/Program Files (x86)/UI 6/ui6.exe", чтобы компиляция прошла успешно и получившийся exe-шник сохранил работоспособность? PS. В Path прописАть не вариант, т.к. без прав локального Администратора это имхо невозможно.
2. косметическая: как после выполнения этого скомпилированного exe-шника убрать окно консоли?
PS. Попробовал дизасемблировать PE Explorer'ом - ни исходника, ни, тем более пароля, не увидел. А чем потенциально можно увидеть пароль?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
03.07.2016, 21:03
1 - так и прописывайте
2 - удалите строку с циклом while
1
0 / 0 / 1
Регистрация: 10.06.2016
Сообщений: 31
03.07.2016, 22:58  [ТС]
1. Пробовал apppath = ""C:\Program Files (x86)\UI 6\ui6.exe"" и забыл убрать двойные кавычки в начале и в конце, после того как backslash \ поменял на slash /,поэтому не получалось скомпилировать.
2. СПАСИБО, теперь окно консоли пропадает после того как запускает программу от имени локального Администратора.
0
0 / 0 / 1
Регистрация: 10.06.2016
Сообщений: 31
03.07.2016, 23:24  [ТС]
PS. Вытащить пароль из exe-шник (4 096 байт) у меня не получилось. Если у кого-нибудь получится вытащить из вложения скажите как.
Вложения
Тип файла: 7z runasui6.7z (1.4 Кб, 7 просмотров)
0
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
03.07.2016, 23:42
VictorLS, пароль у вас там указан "777"
0
0 / 0 / 1
Регистрация: 10.06.2016
Сообщений: 31
04.07.2016, 08:18  [ТС]
slashvlz, вопрос в том как Вы это узнали, если не из Не получается скомпилировать С# исходник, чтобы заработало?
0
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
04.07.2016, 08:35
VictorLS, достаточно обычного просмотрщика из TC:
Миниатюры
Не получается скомпилировать С# исходник, чтобы заработало  
1
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
04.07.2016, 08:42
Хардкодить пароль очень плохая практика, ну хотя бы ксором прошлись, чтобы уж не совсем в явном виде...Хотя у вас программка настолько маленькая, что скрыть тут что-либо очень сложно.
0
0 / 0 / 1
Регистрация: 10.06.2016
Сообщений: 31
04.07.2016, 22:54  [ТС]
Цитата Сообщение от slashvlz Посмотреть сообщение
достаточно обычного просмотрщика из TC
опять моя невнимательность меня подвела - смотрел в FAR и до Вашего скриншота в упор не видел )
Цитата Сообщение от slashvlz Посмотреть сообщение
хотя бы ксором прошлись, чтобы уж не совсем в явном виде
научите, пожалуйста, если не сложно, имхо XOR будет достаточно.
Теоретический PS. Может есть программа типа ExeScript, которая шифровала бы код С# (например, алгоритмом AES 1024 бит - шутка)?
С другой стороны, может не сложно написАть эту программу сразу на VBS или хотя бы имплементировать RUNASUSER в VBS и прогнать его ExeScript, чтобы получить один зашифрованный exe-шник (размер желательно до 1МБ)?
0
 Аватар для Lexeq
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
05.07.2016, 01:35
Цитата Сообщение от VictorLS Посмотреть сообщение
Попробовал дизасемблировать PE Explorer'ом - ни исходника, ни, тем более пароля, не увидел
Это потому что вы неправильный инструмент, все равно что гвоздь ввинчивать ложкой. А если взять, что нибудь подходящие, то и пароль и исходник как на ладони.
Кликните здесь для просмотра всего текста

Цитата Сообщение от VictorLS Посмотреть сообщение
имхо XOR будет достаточно
Алгоритм шифрования и дешифорвания строковых данных методом XOR с ключом.
В программе будете хранить пароль в зашифрованном виде и ключ. Но так как ключ будет в исходнике прекрасно видно, то эта защита не спасет от того, кто хоть немного понимает в программировании.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.07.2016, 01:35
Помогаю со студенческими работами здесь

Как скомпилировать исходник Gromacs на Windows
Приветствую участников форума! :) Я здесь новичек, поэтому прошу строго не судить. Суть моей проблемы заключается в том что я не...

Не могу скомпилировать исходник в exe (gentee)
не могу из файл.g скомпилировать ехе. что в дос писать? кто может помогите пожалуйста. заранее спасибо.

Как скомпилировать единственный .cpp исходник ?
Надо скомплилировать пример из книги. Исходник открывается, но кнопочка для компиляции отсутствует. Как скомпилировать единственный .cpp...

Изменить код, чтобы всё заработало
Здравствуйте! Т.к ветки чистого js нету придется писать здесь)) Изучаю js, и на глаза попалась задачка которую не могу решить не могли бы...

как скомпилировать исходник на Python компилятором gcc?
Друзья! Знает кто-нибудь? А то в инете нет ничё, какие-то скрипты, интерпретаторы... Просто я в книге по GCC прочёл: "...друrие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru