Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Antrix
43 / 43 / 8
Регистрация: 11.04.2010
Сообщений: 139
1

Значение скрытой переменной

06.11.2016, 11:39. Просмотров 224. Ответов 7
Метки нет (Все метки)

Всем доброго! Такая вот проблема появилась. Есть приложение, исходники которого сильно битые (можно сказать, что их нет). Приложение берет с сервера значение для одной переменной. Можно ли как нибудь узнать это значение? Как если бы при работающем приложении инжектировать что-то вроде "MessageBox.Show(ServerValue.ToString())".
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2016, 11:39
Ответы с готовыми решениями:

Как обратится к "скрытой" переменной класса?
Сразу извинюсь за то что мог назвать что то не правильно подскажите как можно инициализировать...

Как присвоить значение переменной, исходя из значения другой переменной?
Всем привет. Нужна помощь. Есть переменная, например "month" которая может принимать значения...

Как при значении переменной 101 и выше установить значение переменной на 100?
Я в C# новичок. Подскажите пожалуйста, как можно сделать чтобы когда значение переменной было 101 и...

Как получить/установить значение переменной по названию (название берется из строковой переменной)
собственно сабж

Как избежать изменения одной переменной ссылочного типа, когда изменяется значение другой переменной
Подскажите, пожалуйста, как избежать изменения одной переменной ссылочного типа, когда изменяется...

7
IamRain
1409 / 1255 / 396
Регистрация: 02.08.2011
Сообщений: 3,727
06.11.2016, 11:45 2
Цитата Сообщение от Antrix Посмотреть сообщение
Есть приложение, исходники которого сильно битые (можно сказать, что их нет)
Это как? В .NET если есть сборка - значит есть исходники.

Добавлено через 2 минуты
Цитата Сообщение от Antrix Посмотреть сообщение
Приложение берет с сервера значение
Есть же WireShark, Fiddler, OmniPeek и т.д.
1
Antrix
43 / 43 / 8
Регистрация: 11.04.2010
Сообщений: 139
06.11.2016, 12:05  [ТС] 3
Там не все так просто. Он получает с сервера не конкретно готовое значение. Оно потом конвертируется в самом приложении до нужной кондиции через пару методов и готово именно перед функцией записи в память (это трейнер). А сама программа была обфусцирована, из-за чего некоторые куски кода пришли почти в полную негодность после восстановления.

Добавлено через 7 минут
Вот кусок кода:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            WebBrowser browser = new WebBrowser();
            browser.Navigate("http://api.blabla.com/MY_API.php?ExtGetInfos&MKat=" + Settings.Default.MYKey + "&GS=" + this.method_1(Convert.ToString(Settings.Default.Base)));
            while (browser.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
            }
            new Regex(":").Split(browser.DocumentText);
            if (browser.DocumentText != "OK")
            {
                if (browser.DocumentText != Convert.ToString(Settings.Default.Base))
                {
                    Settings.Default.Base = Convert.ToInt32(browser.DocumentText);
                    Settings.Default.Save();
                }
0
Usaga
Эксперт .NET
5535 / 3738 / 661
Регистрация: 21.01.2016
Сообщений: 14,897
Завершенные тесты: 2
06.11.2016, 14:25 4
Antrix, сборку написанную на любом из языков .NET можно декомпилировать (если сборка не была защищена обфускатором) и получить на руки проект с читабельным кодом. Погугли на эту тему.
1
Antrix
43 / 43 / 8
Регистрация: 11.04.2010
Сообщений: 139
06.11.2016, 14:27  [ТС] 5
Usaga, копия программы, которая на руках, как раз обфусцирована.
0
Usaga
Эксперт .NET
5535 / 3738 / 661
Регистрация: 21.01.2016
Сообщений: 14,897
Завершенные тесты: 2
06.11.2016, 14:32 6
Antrix, да, точно, невнимательно прочитал.

Ну, если приложение как-то расшифровывает полученные данные, то ничего не остаётся кроме как копаться в декомпилированном коде и мурыжить это дело под отладкой.

Добавлено через 1 минуту
Поскольку приложение (похоже) работает с HTTP -протоколом, то можно использовать Fiddler для перехвата трафика. Может как-то поможет.
1
Antrix
43 / 43 / 8
Регистрация: 11.04.2010
Сообщений: 139
06.11.2016, 14:36  [ТС] 7
А реально ли узнать, в какие адреса памяти программа делает запись? По сути, мне сама программа не нужна... из почти сотни адресов мне нужен только один. Но, что бы его узнать, нужно либо знать вторую половину кода, которая берется с сервера и конвертируется в int, либо узнать напрямую, в какой адрес пишет.

P.S. А как насчет того, что я писал в первом сообщении по поводу "инжекта" строчки кода в готовое приложение, типа MessageBox.Show(ServerValue.ToString())? Это реально или я еще после операции не пришел в себя?
0
Usaga
Эксперт .NET
5535 / 3738 / 661
Регистрация: 21.01.2016
Сообщений: 14,897
Завершенные тесты: 2
06.11.2016, 14:40 8
Цитата Сообщение от Antrix Посмотреть сообщение
А реально ли узнать, в какие адреса памяти программа делает запись?
Нет, не реально. Сборщик мусора имеет право (и пользуется им) перемещать объекты в памяти. Поэтому ни у чего в .NET нет постоянного адреса в памяти.

Цитата Сообщение от Antrix Посмотреть сообщение
P.S. А как насчет того, что я писал в первом сообщении по поводу "инжекта" строчки кода в готовое приложение?
Если ты будешь знать куда инжектировать и в какую переменную смотреть, то ты уже всё сделал. Скомпилируй код, поставь брекпоинт в нужном месте и посмотри.
1
06.11.2016, 14:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2016, 14:40

Присвоить переменной случайное значение другой переменной
В c# нужно создать переменную, которая присваивала себе случайное значение другой переменной...

Логической переменной P присвоить значение TRUE, если N простое число, иначе значение FALSE
Логической переменной P присвоить значение TRUE, если целое N (N>1) - простое число, и значение...

Ввести значение переменной n и посчитать значение выражения
Ребята помогите! Написать программу, которая введет значение переменной n и посчитает значение...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru