Как посмотреть код приложения на windows

Я хочу подправить исходный код, ничего серьезного, только вывод нескольких строк. Программа написана скорее всего на С++. Мне использовать отладчик? Или как-то открыть в IDE? Просто я не хочу запус...

Исходный код раскрыть невозможно если для этого постарались обеспечить безопасность (особенно если это фирменная вещь).

Но есть способы полностью или частично раскрыть код.

  • IDA Pro — самый лучший из безплатных взломщиков, некоторые макросы возможно позволяют преобразовать код назад. Но не всегда. Особо хорошо раскрываются borland-продукты.
  • Hiew.Exe бесплатная утилита, очень маленькая, позволяет править код на языке ассемблера. Можно править текстовые и целые константы. Можно ею даже сделать «перевод» программы на другой язык, затереть имя фирмы и т.п.
  • Если есть PDB-файл, или подшита debug-info к файлу то код можно получить в среде разработки (если debug-info полная) редко можно использовать. Исходный код получить нельзя, но можно получить «номера строк и имена исходников», а так же имена/значения всех констант, локальных переменных, избежать «раздроблености функций» а так же получить классы с начинкой класса (почти все структуры кроме текста программы) что значительно упростит понимание работы программы. Для некоторых библиотек (dll) pdb-файлы можно скачать отдельно. Врядли уважающая себя фирма допустит утечку pdb своего стоящего продукта.
  • Debug info, существует DebugInfo-информация встроеная в exe. Если есть такая информация, и соответствующая утилита (Например на Borland Delphi собран, и он есть в наличии), то можно сделать аналогичное предыдущему пункту. Но врядли уважающая себя фирма допустит такую «глупую» ошибку (аналогично pdb).
  • Если файл написан на с# его можно почти полностью просмотреть в кодах с помощью disSharp (такие программы «подключают» в таблице импорта лишь mscorlib и всё). DisSharp плохо дизассемблирует некоторые части программы, но возможно его платная версия или платная версия подобных утилит раскрывает код лучше.
  • Если файл написан на FoхPro, clipper и других подобный байт-кодовых языках — он раскрывается спец-утилитами (Refox например).
  • Утилита exescope.exe ResourceHacker.exe и её-подобные утилиты позволяют смотреть шапку, подключенные библиотеки (по ним можно понять на чём писана программа) и редактировать ресурсы программы (ресурс-формы в.т.ч. delphi, иконки, картинки, таблицы ресурсо-строк).
  • Если извесно чем создан код — думаю есть специальные утилиты способные его раскрыть (они платные и малодоступные).

Опять-же, это при условии что нету паковщика кода (тогда нужно сначала применить депаковщик), шифровальщика/самомодифицирующегося кода. Если не разбит обфускатором так что не распутать. Чем больше код — тем сложнее разобраться.

P.S. Лично моё мнение — раскрывается-взламывается всё, но на это нужно потратить много-много времени. Возможно год и более (зависит от опыта и инструментов, в свободном доступе хороших инструментов нету).

Как посмотреть код программы

Программы делятся на открытые и закрытые. В первом случае для всех пользователей интернета доступно скачивание ее исходного кода с официального сайта и других ресурсов, во втором – код системы закрыт и его просмотр нарушает правила пользования программным обеспечением.

Как посмотреть код программы

Вам понадобится

  • — декомпилятор;
  • — дезассемблер.

Инструкция

Просмотрите исходный код программы при помощи ее исходника. Исходный файл содержит в себе код, написанный программистом при создании программного обеспечения, после этого он компилируется при помощи специальных иснструментов и превращается в файл установки.

Если вами был утерян файл исходного кода, или он недоступен вам по другим причинам, воспользуйтесь специальными программами-декомпиляторами. Также имеются программы-дизассемблеры. Обратите внимание, что просмотр исходного кода зачастую может стать невозможным в случаях, когда вам не известно, какой язык программирования использовался при его разработке.

Если вы хотите найти код свободной программы, выполните поиск в интернете с соответствующим запросом. Также попробуйте скачать данную программу и в ее меню найти пункт «Просмотр исходного кода». Обычно это доступно для бесплатно распространяемых программ.

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

Будьте внимательны при использовании программ-декомпиляторов, поскольку многие разработчики программного обеспечения пользуются специальными программами, которые затрудняют процесс воссоздания исходного кода. Если программа была написана на ассемблере, также принимаются специальные программы.

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

Полезный совет

Не просматривайте код закрытых программ и тем более не вносите в него изменения.

Войти на сайт

или

Забыли пароль?
Еще не зарегистрированы?

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

I’ve got some old Windows executable files. How can I edit them with Visual Studio 2010? What are the ways to see an exe’s source code?

MPelletier's user avatar

MPelletier

16k15 gold badges86 silver badges136 bronze badges

asked Apr 17, 2010 at 18:37

Ali Demirci's user avatar

You can’t get the C++ source from an exe, and you can only get some version of the C# source via reflection.

Community's user avatar

answered Apr 17, 2010 at 18:41

i_am_jorf's user avatar

i_am_jorfi_am_jorf

53.2k15 gold badges128 silver badges220 bronze badges

2

If the program was written in C# you can get the source code in almost its original form using .NET Reflector. You won’t be able to see comments and local variable names, but it is very readable.

If it was written C++ it’s not so easy… even if you could decompile the code into valid C++ it is unlikely that it will resemble the original source because of inlined functions and optimizations which are hard to reverse.

Please note that by reverse engineering and modifying the source code you might breaking the terms of use of the programs unless you wrote them yourself or have permission from the author.

answered Apr 17, 2010 at 18:40

Mark Byers's user avatar

Mark ByersMark Byers

795k188 gold badges1562 silver badges1443 bronze badges

1

If it is native code, you can disassemble it. But you won’t see the original code as written by the programmer. You will see the code produced by the compiler. This code is possibly optimized and although it is semantically equivalent, it can be much harder to read than normal ASM.

If it is bytecode (MSIL or javabytecode), there are decompiler which can product pretty good sourcecode. For .net, this would be reflector.

Man No Name's user avatar

answered Apr 17, 2010 at 18:40

Henri's user avatar

HenriHenri

5,08521 silver badges24 bronze badges

I would (and have) used IDA Pro to decompile executables. It creates semi-complete code, you can decompile to assembly or C.

If you have a copy of the debug symbols around, load those into IDA before decompiling and it will be able to name many of the functions, parameters, etc.

answered Apr 17, 2010 at 18:43

ssube's user avatar

ssubessube

46.3k7 gold badges101 silver badges139 bronze badges

There’s nothing you can do about it i’m afraid as you won’t be able to view it in a readable format, it’s pretty much intentional and it’ll show the interpreted machine code, there would be no formatting or comments as you normally get in .cs/.c files.

It’s pretty much a hit and miss scenario.

Someone has already asked about it on another website

answered Apr 17, 2010 at 18:42

Jamie Keeling's user avatar

Jamie KeelingJamie Keeling

9,69717 gold badges65 silver badges100 bronze badges

7

For Any *.Exe file written in any language .You can view the source code with hiew (otherwise Hackers view). You can download it at www.hiew.ru. It will be the demo version but still can view the code.

After this follow these steps:

  1. Press alt+f2 to navigate to the file.

  2. Press enter to see its assembly / c++ code.

Yogiraj's user avatar

Yogiraj

1,93217 silver badges29 bronze badges

answered May 28, 2014 at 13:14

Aravind's user avatar

I’ve got some old Windows executable files. How can I edit them with Visual Studio 2010? What are the ways to see an exe’s source code?

MPelletier's user avatar

MPelletier

16k15 gold badges86 silver badges136 bronze badges

asked Apr 17, 2010 at 18:37

Ali Demirci's user avatar

You can’t get the C++ source from an exe, and you can only get some version of the C# source via reflection.

Community's user avatar

answered Apr 17, 2010 at 18:41

i_am_jorf's user avatar

i_am_jorfi_am_jorf

53.2k15 gold badges128 silver badges220 bronze badges

2

If the program was written in C# you can get the source code in almost its original form using .NET Reflector. You won’t be able to see comments and local variable names, but it is very readable.

If it was written C++ it’s not so easy… even if you could decompile the code into valid C++ it is unlikely that it will resemble the original source because of inlined functions and optimizations which are hard to reverse.

Please note that by reverse engineering and modifying the source code you might breaking the terms of use of the programs unless you wrote them yourself or have permission from the author.

answered Apr 17, 2010 at 18:40

Mark Byers's user avatar

Mark ByersMark Byers

795k188 gold badges1562 silver badges1443 bronze badges

1

If it is native code, you can disassemble it. But you won’t see the original code as written by the programmer. You will see the code produced by the compiler. This code is possibly optimized and although it is semantically equivalent, it can be much harder to read than normal ASM.

If it is bytecode (MSIL or javabytecode), there are decompiler which can product pretty good sourcecode. For .net, this would be reflector.

Man No Name's user avatar

answered Apr 17, 2010 at 18:40

Henri's user avatar

HenriHenri

5,08521 silver badges24 bronze badges

I would (and have) used IDA Pro to decompile executables. It creates semi-complete code, you can decompile to assembly or C.

If you have a copy of the debug symbols around, load those into IDA before decompiling and it will be able to name many of the functions, parameters, etc.

answered Apr 17, 2010 at 18:43

ssube's user avatar

ssubessube

46.3k7 gold badges101 silver badges139 bronze badges

There’s nothing you can do about it i’m afraid as you won’t be able to view it in a readable format, it’s pretty much intentional and it’ll show the interpreted machine code, there would be no formatting or comments as you normally get in .cs/.c files.

It’s pretty much a hit and miss scenario.

Someone has already asked about it on another website

answered Apr 17, 2010 at 18:42

Jamie Keeling's user avatar

Jamie KeelingJamie Keeling

9,69717 gold badges65 silver badges100 bronze badges

7

For Any *.Exe file written in any language .You can view the source code with hiew (otherwise Hackers view). You can download it at www.hiew.ru. It will be the demo version but still can view the code.

After this follow these steps:

  1. Press alt+f2 to navigate to the file.

  2. Press enter to see its assembly / c++ code.

Yogiraj's user avatar

Yogiraj

1,93217 silver badges29 bronze badges

answered May 28, 2014 at 13:14

Aravind's user avatar

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

Чтобы проект был открытым, разработчик должен сделать его исходный код общедоступным, чтобы любой желающий мог его изучить и извлечь уроки. Важно отметить, что это также показывает, что у разработчика нет злонамеренных намерений, поскольку открытый исходный код позволяет пользователям компилировать свои собственные двоичные файлы, а не использовать предоставленные.

Если вам когда-либо приходилось сталкиваться с двумя программами, и вы не можете определить, какое из них использовать, проверьте, является ли один из них открытым, а другой — нет. Если это так, ваш выбор должен быть ясным.

Однако, если вы хотите учиться или даже добавлять к коду исходного кода программного обеспечения, это также вариант. Для этого вам нужно знать, как просматривать исходный код. В этой статье давайте поговорим о том, как вы можете это сделать.

Как найти исходный код

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

В большинстве случаев исходный код будет размещаться на крупнейшей веб-платформе управления версиями, GitHub,

Что такое GitHub?

GitHub был основан в 2008 году и приобретен Microsoft в 2018 году. Это глобальная платформа для разработки программного обеспечения, которая предлагает все функции управления исходным кодом: Гитнаряду с собственными функциями, которые расширяют возможности совместной работы и функции контроля версий.

Чаще всего разработчики размещают свой открытый исходный код на GitHub. Несколько примеров программного обеспечения, о котором вы, вероятно, слышали, с исходным кодом, доступным на GitHub: LibreOffice, GIMP, а также VLC медиаплеер,

С помощью Функция поиска GitHubвы должны быть в состоянии найти и просмотреть исходный код практически для каждого крупного программного проекта с открытым исходным кодом.

Как просмотреть исходный код

Найдя репозиторий GitHub, в котором находится исходный код программного обеспечения, вы обнаружите, что все организовано в базовом дереве каталогов. Для файлов GitHub делает просмотр кода очень простым.

Как платформа для разработки, GitHub аккуратно форматирует исходный код через веб-интерфейс. Почти все авторитетные проекты будут включать README.md, который представляет собой файл уценки, который отображает полезную информацию о хранилище и его структуре. Когда вы перейдете к хранилищу, прокрутите вниз, и вы увидите содержимое этого файла.

README.md репозитория важно проверить, потому что он часто указывает пользователям направление исходного кода, который их может заинтересовать. Репозиторий может быть заполнен всеми видами кода и другими данными, некоторые из которых совершенно бесполезны для вас. , так что этот файл — ваша дорожная карта.

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

Щелчок по файлу отобразит его с правильной подсветкой синтаксиса.

Для быстрой проверки веб-интерфейс GitHub отлично подходит. Однако для более сложного исходного кода вам может потребоваться просмотреть несколько файлов одновременно или в течение длительного периода времени. В этом случае мы рекомендуем скачать и просмотреть исходный код через Текстовый редактор, например, Sublime Text.

Загрузка исходного кода

Загрузка репозитория с GitHub занимает всего два клика.

В верхней части каждого репозитория, под строкой, отображающей общее количество коммитов, веток, пакетов, выпусков и участников, вы увидите зеленую кнопку с надписью Клонировать или загрузить. Нажмите на нее и выберите Скачать ZIP.

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

Если вы не опытный кодер, GitHub может сначала немного запутать. Если вы просто думаете об этом как об открытом каталоге исходного кода, с readme на верхнем уровне, это не слишком пугающе. Просмотр исходного кода с помощью GitHub прост, как локально, так и через его веб-интерфейс.

0 / 0 / 1

Регистрация: 27.12.2011

Сообщений: 24

1

Как узнать исходный код программы?

23.04.2012, 21:48. Показов 45896. Ответов 18


Есть файл с простой программой, мне надо узнать его исходный код. как это сделать?

main.rar

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Почетный модератор

Эксперт по компьютерным сетямЭксперт Windows

28037 / 15768 / 981

Регистрация: 15.09.2009

Сообщений: 67,753

Записей в блоге: 78

23.04.2012, 21:49

2

никак.



0



0 / 0 / 1

Регистрация: 27.12.2011

Сообщений: 24

24.04.2012, 01:54

 [ТС]

3

Цитата
Сообщение от magirus
Посмотреть сообщение

никак.

очень понятный и развёрнутый ответ.



0



Эксперт С++

8385 / 6147 / 615

Регистрация: 10.12.2010

Сообщений: 28,683

Записей в блоге: 30

24.04.2012, 03:23

4



0



Эксперт С++

7175 / 3234 / 80

Регистрация: 17.06.2009

Сообщений: 14,164

24.04.2012, 07:19

5

очень понятный и развёрнутый ответ

Главное что он правильный

Добавлено через 46 секунд

Потребуется несколько вещей
1) Комната с звукоизоляцией
2) Автор программы
3) Паяльник
4) Утюг
5) Наручники



2



0 / 0 / 1

Регистрация: 27.12.2011

Сообщений: 24

24.04.2012, 09:52

 [ТС]

6

Цитата
Сообщение от odip
Посмотреть сообщение

Потребуется несколько вещей
1) Комната с звукоизоляцией
2) Автор программы
3) Паяльник
4) Утюг
5) Наручники

спасибо, обязательно воспользуюсь этим методои



0



В астрале

Эксперт С++

8048 / 4805 / 655

Регистрация: 24.06.2010

Сообщений: 10,562

24.04.2012, 10:39

7

Jgo Gankster, Была бы прога на .NET узнавалось бы легко.
На С/С++ проще написать самому новую, чем заниматься реверс-инженерией.



0



-=ЮрА=-

Заблокирован

Автор FAQ

24.04.2012, 12:17

8

Jgo Gankster, исходный код, верней его асемблерный вариант можно получить в ходе дизасемблирования. Существует множество программ к примеру OllyDebuger который преобразуют экзешники в асмовские инструкции. Если понимаем асм, то по полученной интерпритации кода можно сообразить где выводим строку, где светим окошко и т.д. Ну а там зная принцип работы алгоритма либо пишем аналог на Си либо осавляем в асме и правим под наши нужды(это называется крэком или варезом).



0



-=ЮрА=-

Заблокирован

Автор FAQ

24.04.2012, 12:40

9

Кстати некоторые вещи можно сказать по программе просто открыв экзешник в блокноте
На первом скрине строковые литералы присутсвующие в приложении (это строки меню и содержимое меседжбоксов), на втором скрине список функций используемых в приложении

Не по теме:

PS:Вспомниаю слова оператора из первой Матрицы .

..- со временем я привык видеть что значит код, к примеру здесь я вижу полицейского, а здесь шикарную блондинку…

Вот так и с дизасмом

Миниатюры

Как узнать исходный код программы?
 

Как узнать исходный код программы?
 



0



Xorazm

1 / 1 / 0

Регистрация: 19.06.2017

Сообщений: 32

23.06.2017, 09:26

10

C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
void main(){
    FILE *fp;
    char c;
    fp = fopen(__FILE__,"r");
    while(1){
         c= getc(fp);
         if(feof(fp)) break;
         putchar(c);
    }
 
    fclose(fp);
}



0



1488 / 1203 / 821

Регистрация: 29.02.2016

Сообщений: 3,592

23.06.2017, 10:24

11

Цитата
Сообщение от odip
Посмотреть сообщение

Потребуется несколько вещей

все гораздо проще:
1) автор программы
2) деньги



0



Software Developer

315 / 229 / 113

Регистрация: 03.05.2017

Сообщений: 1,306

23.06.2017, 10:31

12

Jgo Gankster, воспользуйтесь IDA Pro (для дизасемблирования) + Hex Rays (для преобразования в Си подобный код)



0



Почетный модератор

Эксперт по компьютерным сетямЭксперт Windows

28037 / 15768 / 981

Регистрация: 15.09.2009

Сообщений: 67,753

Записей в блоге: 78

23.06.2017, 11:36

13

decrement, я не думаю, что спустя 5 лет твой совет нужен Jgo Gankster,
хотя тут спасибо надо сказать товарищу Xorazm, который поднял тему из небытия.



0



5225 / 3197 / 362

Регистрация: 12.12.2009

Сообщений: 8,101

Записей в блоге: 2

23.06.2017, 11:49

14

Почему до сих пор не посоветовали рабочий способ? Нужно сменить расширение файла на .cpp (или на другой язык программирования) и открыть в IDE. Умные люди так, например, jpg в gif конвертят и т.д.



0



Software Developer

315 / 229 / 113

Регистрация: 03.05.2017

Сообщений: 1,306

23.06.2017, 12:04

15

Цитата
Сообщение от Kastaneda
Посмотреть сообщение

Почему до сих пор не посоветовали рабочий способ? Нужно сменить расширение файла на .cpp (или на другой язык программирования) и открыть в IDE. Умные люди так, например, jpg в gif конвертят и т.д.

юмор понял

Цитата
Сообщение от magirus
Посмотреть сообщение

я не думаю, что спустя 5 лет твой совет нужен

я на дату и не посмотрел даже)



0



45 / 45 / 23

Регистрация: 14.04.2013

Сообщений: 188

23.06.2017, 23:06

16

ну раз уж на то пошло, спрошу тут, а как сделать наоборот, в программе создаю shh подключение с логином и паролем(простые строки), как их спрятать от дизасемблирования



0



Software Developer

315 / 229 / 113

Регистрация: 03.05.2017

Сообщений: 1,306

23.06.2017, 23:33

17

Цитата
Сообщение от Zazy
Посмотреть сообщение

ну раз уж на то пошло, спрошу тут, а как сделать наоборот, в программе создаю shh подключение с логином и паролем(простые строки), как их спрятать от дизасемблирования

как бы вы не прятали всё равно можна прочесть



0



зомбяк

1564 / 1213 / 345

Регистрация: 14.05.2017

Сообщений: 3,936

23.06.2017, 23:39

18

Zazy, от дизассемблирование ничто не может защитить, ибо это, простите, инструкции, которые процессор делать должен. А значит понимать. А вот от дальнейшего понимания того, что собственно выполняет процессор, есть это — https://ru.wikipedia.org/wiki/… еспечение)



0



290 / 87 / 28

Регистрация: 25.01.2016

Сообщений: 529

Записей в блоге: 1

24.06.2017, 14:33

19

Цитата
Сообщение от odip
Посмотреть сообщение

Потребуется несколько вещей
1) Комната с звукоизоляцией
2) Автор программы
3) Паяльник
4) Утюг
5) Наручники

Бедный автор программы…

Добавлено через 15 секунд

Цитата
Сообщение от odip
Посмотреть сообщение

Потребуется несколько вещей
1) Комната с звукоизоляцией
2) Автор программы
3) Паяльник
4) Утюг
5) Наручники

Бедный автор программы…



0



While going open source might be a good choice, you’ll also need to invest in the right community. GitHub is one of the best places to do this, not only because of the sheer amount of users who visit the site, but also because of the features that GitHub offers. If you find an open source app on GitHub, I’ll show you a few things you can do with it, including viewing, editing, and forking the code.

If you’re looking at developing software, going the open source route is one of the best ways to do it. Not only can people view your open source code and submit their own fixes, but you are also encouraged to look at other people’s code to use as a framework or inspiration.

While going open source might be a good choice, you’ll also need to invest in the right community. GitHub is one of the best places to do this, not only because of the sheer amount of users who visit the site, but also because of the features that GitHub offers. If you find an open source app on GitHub, I’ll show you a few things you can do with it, including viewing, editing, and forking the code.

Create an Account

Before you get started with using GitHub, it’s best to create an account with them. Creating an account is free and will allow you to take advantage of numerous features such as forking. GitHub also has different membership levels besides the free one, but a free account should be more than enough for personal use.

Checking Out a Project

how to view open source code

Once you have an account you can dive straight into an open source application found on GitHub. Here you can see the application’s project page, including folders and files pertaining to the application, a network graph, a list of pull requests, open issues, a wiki, and other graphs. Obviously, if you want to see the code within the files, you should click on them and you’ll be presented with the full source code. As far as interpreting the code goes, you’ll need to have some background in the programming language that the application is written in, whether it be Java, C++, Python, or something else. For those wondering, the screenshot shows Caleb Evan’s jcanvas project.

Forking a Project

view open source

Editing the code requires some additional steps. If you wish to copy the code without officially forking it on GitHub, you’ll need to download the project’s files and then edit them locally on your computer. However, if you’re truly looking at using the currently available source and creating your own project with it and going in your own direction, you’ll want to fork it. Forking can be accomplished with an account, and by clicking on «Fork» on the project’s page as shown in the screenshot. The next few instructions are for Linux users who should install the G

 it 

package for their respective distribution.

view open source

If you wish to retrieve the repository’s files to your computer, you’ll need to run the command

 git clone https://github.com/username/project_name.git 

, replacing username with your GitHub username and project_name with the name of the application project that you just forked. Run this command within a folder that should contain all of your GitHub projects, as each git clone command will create a new folder within the one you’re currently residing. This is another way of downloading a project’s file as it doesn’t require login credentials. Now you can change the files as you please using any text editor or IDE. For Linux users, I’d recommend Eclipse or Geany as they’re great programming editors — Eclipse being more full-featured and Geany being leaner. Windows users can also use the native GitHub client.

Uploading Changes to Your Project

view open source

Once you’re done making changes, you can upload the updated files back to GitHub using the command

 git push origin master 

while inside the application’s folder. This pushes the changes back into the «origin» pointer (your forked project) and the master branch (default location of source code).

Keeping Track of Upstream

If you’d like to keep track of the upstream project (the one that you forked to create your own), then you’ll need to add what’s called an additional remote. This is basically just another keyword you can use while you’re inside your application’s folder. To create the new remote, run the command

 git remote add upstream https://github.com/username/project_name.git 

, where username should be replaced by the username of the original project, and project_name should be replaced by its project name.

Merging Upstream Changes

If you notice that the upstream project has been updated and you’d like to incorporate the changes, you can run

 git pull upstream 

after creating the additional remote, and GitHub will download and merge changes from upstream into your project’s files. If everything works perfectly after running that command, you can immediately run

 git push origin master 

to push the updates to your own project.

Pull Requests

how to view open source code

If you’d like to contribute back to the upstream project, it’s best to push any changes to your own fork of the project (or your own branch of the upstream project, but that’s only after the original author makes special arrangements). Once you’ve pushed those changes to your repository, you can go to GitHub and submit a pull request. This notifies the original author of the upstream project that you’d like him/her to review the changes that you’ve made and have them pull your changes into the upstream project. It’s a common courtesy to at least offer some of your own modifications back to the upstream project for them to pull as a thank you for forking their project. Whether they accept your request is up to them.

Conclusion

GitHub is fantastic tool that a large amount of open source developers already use. While GitHub uses the Git utility which anyone can configure on their own servers, GitHub really incorporates the community aspect of development, something that is a requirement in the open source world. This introduction should help you get started with the basics. If you would like to learn more about actual programming, you can check out this article on top sites to brush up on C++.

Have you used GitHub? What feature do you like the most that people should know about? Let us know in the comments!

While going open source might be a good choice, you’ll also need to invest in the right community. GitHub is one of the best places to do this, not only because of the sheer amount of users who visit the site, but also because of the features that GitHub offers. If you find an open source app on GitHub, I’ll show you a few things you can do with it, including viewing, editing, and forking the code.

If you’re looking at developing software, going the open source route is one of the best ways to do it. Not only can people view your open source code and submit their own fixes, but you are also encouraged to look at other people’s code to use as a framework or inspiration.

While going open source might be a good choice, you’ll also need to invest in the right community. GitHub is one of the best places to do this, not only because of the sheer amount of users who visit the site, but also because of the features that GitHub offers. If you find an open source app on GitHub, I’ll show you a few things you can do with it, including viewing, editing, and forking the code.

Create an Account

Before you get started with using GitHub, it’s best to create an account with them. Creating an account is free and will allow you to take advantage of numerous features such as forking. GitHub also has different membership levels besides the free one, but a free account should be more than enough for personal use.

Checking Out a Project

how to view open source code

Once you have an account you can dive straight into an open source application found on GitHub. Here you can see the application’s project page, including folders and files pertaining to the application, a network graph, a list of pull requests, open issues, a wiki, and other graphs. Obviously, if you want to see the code within the files, you should click on them and you’ll be presented with the full source code. As far as interpreting the code goes, you’ll need to have some background in the programming language that the application is written in, whether it be Java, C++, Python, or something else. For those wondering, the screenshot shows Caleb Evan’s jcanvas project.

Forking a Project

view open source

Editing the code requires some additional steps. If you wish to copy the code without officially forking it on GitHub, you’ll need to download the project’s files and then edit them locally on your computer. However, if you’re truly looking at using the currently available source and creating your own project with it and going in your own direction, you’ll want to fork it. Forking can be accomplished with an account, and by clicking on «Fork» on the project’s page as shown in the screenshot. The next few instructions are for Linux users who should install the G

 it 

package for their respective distribution.

view open source

If you wish to retrieve the repository’s files to your computer, you’ll need to run the command

 git clone https://github.com/username/project_name.git 

, replacing username with your GitHub username and project_name with the name of the application project that you just forked. Run this command within a folder that should contain all of your GitHub projects, as each git clone command will create a new folder within the one you’re currently residing. This is another way of downloading a project’s file as it doesn’t require login credentials. Now you can change the files as you please using any text editor or IDE. For Linux users, I’d recommend Eclipse or Geany as they’re great programming editors — Eclipse being more full-featured and Geany being leaner. Windows users can also use the native GitHub client.

Uploading Changes to Your Project

view open source

Once you’re done making changes, you can upload the updated files back to GitHub using the command

 git push origin master 

while inside the application’s folder. This pushes the changes back into the «origin» pointer (your forked project) and the master branch (default location of source code).

Keeping Track of Upstream

If you’d like to keep track of the upstream project (the one that you forked to create your own), then you’ll need to add what’s called an additional remote. This is basically just another keyword you can use while you’re inside your application’s folder. To create the new remote, run the command

 git remote add upstream https://github.com/username/project_name.git 

, where username should be replaced by the username of the original project, and project_name should be replaced by its project name.

Merging Upstream Changes

If you notice that the upstream project has been updated and you’d like to incorporate the changes, you can run

 git pull upstream 

after creating the additional remote, and GitHub will download and merge changes from upstream into your project’s files. If everything works perfectly after running that command, you can immediately run

 git push origin master 

to push the updates to your own project.

Pull Requests

how to view open source code

If you’d like to contribute back to the upstream project, it’s best to push any changes to your own fork of the project (or your own branch of the upstream project, but that’s only after the original author makes special arrangements). Once you’ve pushed those changes to your repository, you can go to GitHub and submit a pull request. This notifies the original author of the upstream project that you’d like him/her to review the changes that you’ve made and have them pull your changes into the upstream project. It’s a common courtesy to at least offer some of your own modifications back to the upstream project for them to pull as a thank you for forking their project. Whether they accept your request is up to them.

Conclusion

GitHub is fantastic tool that a large amount of open source developers already use. While GitHub uses the Git utility which anyone can configure on their own servers, GitHub really incorporates the community aspect of development, something that is a requirement in the open source world. This introduction should help you get started with the basics. If you would like to learn more about actual programming, you can check out this article on top sites to brush up on C++.

Have you used GitHub? What feature do you like the most that people should know about? Let us know in the comments!

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

С — это язык программирования, который проверен временем. Изначально он задумывался как заменитель Ассемблера, чтобы писать на нем операционные системы. 

С — это высокоуровневый язык, который не зависит от архитектуры устройства, а это значит, что программы, написанные на нем, можно использовать на разных платформах. Таким образом, С стал идеальным языком для операционных систем, драйверов и программ системного значения. 

 

Исходный код программы на С

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

Исходный код программы на С — это программный код, который еще не был скомпилирован и содержится в файлах с расширением данного языка. У этого языка имеется несколько расширений, и делятся они в зависимости от типов файлов:

  • заголовочный файлы используют расширение «.h», поэтому называются h-файлы;

  • файлы реализации используют расширение «.с» для языка С и «.срр», «.схх», «.сс» для языка программирования С++.

Любой проект, реализованный на С, будет иметь файлы обоих типов. Но нужно отметить, что:

  • h-файлы — это файлы, содержащие сведения о программе;

  • файлы реализации — это сам код программы.

Когда вам нужен исходный код программы на С, то больший интерес вам представляют файлы реализации. При этом единую функционирующую программу составляют оба вида файлов.

 

Как получить исходный код программы на С

Исходный код априори принадлежит своему автору. Поэтому если автор кода выставляет его в открытые источники, то пользователи получают программу с открытым исходным кодом. В этой ситуации пользователи могут воспользоваться исходным кодом программы по своему усмотрению, например:

  • помочь доработать программу, вплоть до того, чтобы стать соавтором;

  • использовать код, чтобы создать подобную программу, однако тут есть тонкости: нужно будет указать автора исходного кода или что-то еще;

  • чуть-чуть подправить программу для личного пользования;

  • и др.

Если автор скрывает исходный код программы, то получить его:

  • противозаконно, потому что авторы закрывают код и защищают его лицензиями;

  • очень сложно, а иногда практически невозможно.

Процесс получения исходного кода из закрытой программы — это реверсивная инженерия или обратное программирование. У закрытых программ пользователи не могут видеть исходный код программы, лишь ее исполняемые или скомпилированные файлы, например, файлы «.ехе» для Windows-программ. Если открыть исполняемый или скомпилированный файл, то там не будет ничего общего с языком программирования. Все, что там можно будет увидеть, — это беспорядочный набор цифр и букв или двоичный код из сочетания «1» и «0».

 

Исходный код программы на С: обратное программирование 

Обратное программирование — это длительный и муторный процесс. Чем больше программа, для которой вы хотите получить исходный код, тем сложнее будет этот процесс. В некоторых случаях процесс «реверса» займет несколько лет, например, попробуйте воссоздать исходный код операционной системы Windows.

Реверсное программирование завязано на применении специфического программного обеспечения: декомпиляторы, дешифровщики, деобфускаторы, отладчики, оптимизаторы и т. д. В этом заключается еще одна сложность — достать качественные программы из этой категории в открытом доступе практически нереально. Все, что есть в открытом доступе, может помочь только с небольшими программами. Если вам нужен будет исходный код более серьезной программы на С, то искать специализированное ПО — это та еще затея, но поисковик, анонимные сообщества хакеров и darknet вам в помощь, при том что способы попробовать восстановить исходный код полностью или частично есть.

Способы попробовать восстановить исходный код программы на С:

  • IDA Pro — одна из лучших и бесплатных программ из категории «реверсивная инженерия»;

  • «hiew.exe» утилита, которая не выдаст исходный код программы, но поможет править его на языке ассемблера;

  • нужно внимательно посмотреть имеющийся код программы: если к нему подшиты PDB-файлы (опытные программисты этого не делают, но мало ли что), тогда есть возможность прямо в IDE узнать номера строк исходников, имена переменных, функций, констант и т. д.; при помощи такого подхода добиться исходного кода не получится, но у вас будет вся информация для того, чтобы понять, как он функционирует;

  • необходимо проверить, не встроен ли в программу «debug info»: если встроен, то можно использовать его, как и в предыдущем способе, чтобы узнать информацию об исходном коде;

  • DisSharp — программа, которая способна раскрыть часть кода на С++ и С#;

  • Refox — данная утилита поможет, если программа на С скомпилирована в какой-либо байт-кодовый язык;

  • exe.scope.exe или Resourcehacker.exe — утилиты, которые не раскрывают исходный код, но помогают определить, какие библиотеки используются в программе.

Универсальных средств нет. Нет такого, чтобы вы запустили какое-то программное обеспечение, и оно вам выдало исходный код программы на С. Чтобы добиться исходного кода, нужно будет повозиться и узнавать все частями. Например:

  • при помощи одной утилиты вы узнаете используемые библиотеки;

  • при помощи другой имена классов и функций;

  • третья поможет частично раскрыть код;

  • и т. д., пока у вас не сложится общая картина об исходниках.

Опять же, если код хорошо защищен, то сам процесс становится намного сложнее, потому что тогда нужно будет разбираться с защитой, прежде чем применять какие-то утилиты для обнаружения исходников.

 

Заключение

Если вам нужен исходный код программы на С, а он закрыт, то вам остается только обратное программирование. Прежде чем начать этот процесс, подумайте об ответственности, ведь реверсивная инженерия — это нарушение авторских прав и законодательства многих государств.

Понравилась статья? Поделить с друзьями:
  • Как посмотреть какие драйвера установлены на windows 10 на видеокарту
  • Как посмотреть код ошибки синего экрана в windows 11
  • Как посмотреть какие драйвера установлены на windows 10 материнская плата
  • Как посмотреть код лицензии windows 10 на ноутбуке
  • Как посмотреть какой net framework установлен в windows 10