Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.64
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
#1

Можно ли посмотреть, что внутри программы ? - C++

11.11.2011, 13:55. Просмотров 3287. Ответов 36
Метки нет (Все метки)

Скачал я программу типа тетрис через winrar. Распаковал в папку, а там только read me и иконка программы. Кликаешь на иконку, программа запускается. Как можно залезть в саму программу, чтобы посмотреть, что у ней внутри?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2011, 13:55     Можно ли посмотреть, что внутри программы ?
Посмотрите здесь:
Можно ли посмотреть что в exe файле??? C++
Подскажите где можно посмотреть исходники C++
Пустой терминал (в котором можно писать, что угодно) при выполнении программы C++
Где можно посмотреть коды шаблонов STL? C++
Где можно посмотреть функции подключаемых директив? C++
C++ Как посмотреть результат выполненной программы
C++ ГУИ как посмотреть исполнение программы?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
11.11.2011, 16:10  [ТС]     Можно ли посмотреть, что внутри программы ? #21
У него наверное космическая тетрис-программа управления полетом МКС, с высокоточными расчетами и со сверхнадежными алгоритмами.

Точно.
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
12.11.2011, 10:10     Можно ли посмотреть, что внутри программы ? #22
Цитата Сообщение от sergey.shuvalov
Скачал я программу типа тетрис через winrar. Распаковал в папку, а там только read me и иконка программы. Кликаешь на иконку, программа запускается. Как можно залезть в саму программу, чтобы посмотреть, что у ней внутри?
чтобы понять, что у неё внутри, нужны знания
попробуй взять материнскую плату и понять, что у неё внутри
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
12.11.2011, 13:00  [ТС]     Можно ли посмотреть, что внутри программы ? #23
Цитата Сообщение от accept Посмотреть сообщение
чтобы понять, что у неё внутри, нужны знания
попробуй взять материнскую плату и понять, что у неё внутри
Не понять, а посмотреть. Взял пилу, распилил мат. плату и посмотрел, что внутри. Я ищу такую "пилу", чтобы распилить программу и посмотреть, что внутри. Вот один добрый человек посоветовал в качестве "пилы" - дизассемблер.
Deviaphan
12.11.2011, 13:11
  #24

Не по теме:

Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Вот один добрый человек посоветовал в качестве "пилы" - дизассемблер.
"Условные Блондинки" так машины чинят.) Откроют капот и смотрят на содержимое.)))

sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
12.11.2011, 13:34  [ТС]     Можно ли посмотреть, что внутри программы ? #25
Так у меня же цель ПОСМОТРЕТЬ, а не починить. Если починить, то да, все вы правы. Речь о разных целях. Я хочу посмотреть, чтобы сравнить. Хотя процесс мышления(как я думаю) , это и есть процесс сравнения.( между истина и ложь, с коэффициентом субъективизма от нуля до бесконечности)
talis
12.11.2011, 13:36
  #26

Не по теме:

sergey.shuvalov, скажите честно: вы издеваетесь?

accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
12.11.2011, 15:08     Можно ли посмотреть, что внутри программы ? #27
Цитата Сообщение от sergey.shuvalov
Не понять, а посмотреть. Взял пилу, распилил мат. плату и посмотрел, что внутри.
Цитата Сообщение от sergey.shuvalov
Вот один добрый человек посоветовал в качестве "пилы" - дизассемблер.
Цитата Сообщение от sergey.shuvalov
Ассемблер лет 25 назад изучал в институте по специальности АСУ. Надо вспомнить.
любой листинг на ассемблере посмотри
поймёшь - значит стоит, не поймёшь - лишняя трата времени (рано ещё)
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
12.11.2011, 15:17  [ТС]     Можно ли посмотреть, что внутри программы ? #28
Цитата Сообщение от accept Посмотреть сообщение
любой листинг на ассемблере посмотри
поймёшь - значит стоит, не поймёшь - лишняя трата времени (рано ещё)
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
include '%fasminc%/win32ax.inc'
 
.data
Caption db 'Моя первая программа.',0
Text db 'Всем привет!',0
 
.code
start:
invoke MessageBox,0,Text,Caption,MB_OK
invoke ExitProcess,0
 
.end start
А что ? Код как код.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
12.11.2011, 15:20     Можно ли посмотреть, что внутри программы ? #29
sergey.shuvalov, удачи. она тебе понадобится
programina
1914 / 599 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2011, 15:27     Можно ли посмотреть, что внутри программы ? #30
Если не использовать комменты то это невозможно будет разобрать.
Пример простой программы Windows с WinApiшным интерфейсом для MASM
Assembler
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
.386P
.MODEL FLAT, STDCALL
WM_DESTROY  equ 2
WM_CREATE   equ 1
WM_LBUTTONDOWN equ 201h
WM_RBUTTONDOWN equ 204h
CS_VREDRAW  equ 1h
CS_HREDRAW  equ 2h
CS_GLOBALCLASS equ 4000h
WS_OVERLAPPEDWINDOW  equ 000CF0000H
style equ CS_HREDRAW+CS_VREDRAW+CS_GLOBALCLASS
IDI_APPLICATION     equ 32512
IDC_CROSS   equ 32515
SW_SHOWNORMAL   equ  1
 
EXTERN    MessageBoxA@16:NEAR
EXTERN    CreateWindowExA@48: NEAR
EXTERN    DefWindowProcA@16:NEAR
EXTERN    DispatchMessageA@4:NEAR
EXTERN    ExitProcess@4:NEAR
EXTERN    GetMessageA@16:NEAR
EXTERN    GetModuleHandleA@4:NEAR
EXTERN    LoadCursorA@8:NEAR
EXTERN    LoadIconA@8:NEAR
EXTERN    PostQuitMessage@4:NEAR
EXTERN    RegisterClassA@4:NEAR
EXTERN    ShowWindow@8:NEAR
EXTERN    TranslateMessage@4:NEAR
EXTERN    UpdateWindow@4:NEAR
 
includelib e:\masm32\lib\user32.lib
includelib e:\masm32\lib\kernel32.lib
 
MSGSTRUCT  STRUC    
           MSHWND     DD ? 
           MSMESSAGE  DD ? 
           MSWPARAM   DD ? 
           MSLPARAM   DD ? 
           MSTIME     DD ? 
           MSPT       DD ?
MSGSTRUCT ENDS  
 
WNDCLASS  STRUC 
           CLSSTYLE     DD ? 
           CLWNDPROC    DD ?
           CLSCEXTRA    DD ?
           CLWNDEXTRA   DD ? 
           CLSHINSTANCE DD ? 
           CLSHICON     DD ? 
           CLSHCURSOR   DD ? 
           CLBKGROUND   DD ? 
           CLMENUNAME   DD ? 
           CLNAME       DD ?
WNDCLASS  ENDS 
_DATA SEGMENT DWORD PUBLIC USE32 'DATA'
     NEWHWND    DD 0
     MSG        MSGSTRUCT <?>
     WC         WNDCLASS <?>
     HINST       DD 0
     TITLENAME   DB 'Простой пример 32-битного приложения',0
     CLASSNAME   DB 'CLASS32',0
     CAP         DB 'Сообщение',0
     MES1        DB 'Вы нажали левую кнопку мыши',0
     MES2        DB 'Выход из программы!',0
_DATA ENDS 
_TEXT SEGMENT DWORD PUBLIC USE32 'CODE' 
START:
     PUSH  0
     CALL  GetModuleHandleA@4
     MOV   [HINST], EAX
REG_CLASS:
     MOV [WC.CLSSTYLE], style 
     MOV   [WC.CLWNDPROC], OFFSET WNDPROC
     MOV   [WC.CLSCEXTRA], 0
     MOV   [WC.CLWNDEXTRA], 0
     MOV   EAX, [HINST]
     MOV   [WC.CLSHINSTANCE], EAX
    PUSH    IDI_APPLICATION
    PUSH    0
    CALL    LoadIconA@8
    MOV    [WC.CLSHICON], EAX
    PUSH   IDC_CROSS
    PUSH   0
    CALL   LoadCursorA@8
    MOV    [WC.CLSHCURSOR], EAX
    MOV    [WC.CLBKGROUND], 17
    MOV    DWORD PTR [WC.CLMENUNAME],0
    MOV    DWORD PTR [WC.CLNAME], OFFSET  CLASSNAME
    PUSH   OFFSET WC
    CALL   RegisterClassA@4
    PUSH   0
    PUSH   [HINST]
    PUSH   0
    PUSH   0
    PUSH   400 
    PUSH   400
    PUSH   100
    PUSH   100 
    PUSH   WS_OVERLAPPEDWINDOW
    PUSH      OFFSET TITLENAME 
    PUSH      OFFSET CLASSNAME  
    PUSH   0
    CALL    CreateWindowExA@48
    CMP        EAX,0
    JZ    _ERR
    MOV   [NEWHWND], EAX 
;------------------------------------
    PUSH  SW_SHOWNORMAL
    PUSH  [NEWHWND]
    CALL  ShowWindow@8  
;------------------------------------
    PUSH  [NEWHWND]
    CALL UpdateWindow@4
MSG_LOOP:
    PUSH 0
    PUSH 0
    PUSH 0
    PUSH OFFSET MSG
    CALL GetMessageA@16
    CMP  EAX, 0
    JE   END_LOOP
    PUSH  OFFSET MSG
    CALL TranslateMessage@4
    PUSH OFFSET MSG
    CALL DispatchMessageA@4
    JMP  MSG_LOOP 
END_LOOP: 
    PUSH  [MSG.MSWPARAM]
    CALL ExitProcess@4 
_ERR:
    JMP  END_LOOP
;-----------------------------------------
WNDPROC PROC
        PUSH EBP
        MOV  EBP, ESP
        PUSH  EBX
        PUSH ESI
        PUSH EDI
        CMP  DWORD PTR [EBP+0CH], WM_DESTROY
        JE   WMDESTROY
        CMP  DWORD PTR [EBP+0CH], WM_CREATE
        JE   WMCREATE
        CMP  DWORD PTR   [EBP+0CH],WM_LBUTTONDOWN  
        JE   LBUTTON
        CMP  DWORD PTR   [EBP+0CH],WM_RBUTTONDOWN 
        JE   RBUTTON
        JMP  DEFWNDPROC
RBUTTON:
        JMP  WMDESTROY 
 
LBUTTON: 
        PUSH 0 ;МВ_ОК
        PUSH OFFSET CAP
        PUSH OFFSET MES1
        PUSH DWORD PTR [EBP+08H]
        CALL MessageBoxA@16
        MOV  EAX,0
        JMP  FINISH
WMCREATE:   
        MOV  EAX,0
        JMP  FINISH
DEFWNDPROC: 
        PUSH DWORD PTR [EBP+14H]
        PUSH DWORD PTR [EBP+10H]
        PUSH DWORD PTR [EBP+0CH]
        PUSH DWORD PTR [EBP+08H]
        CALL DefWindowProcA@16
        JMP  FINISH
WMDESTROY:  
        PUSH 0  ;MB_OK
        PUSH OFFSET CAP
        PUSH OFFSET MES2
        PUSH DWORD PTR [EBP+08H] 
        CALL MessageBoxA@16
        PUSH 0
        CALL PostQuitMessage@4 
        MOV  EAX, 0
FINISH: 
        POP  EDI
        POP  ESI
        POP  EBX
        POP  EBP
        RET  16
WNDPROC ENDP
_TEXT   ENDS    
        END START
Это ж каждую функцию расписывать на пуши попы мувы коллы джампы
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
12.11.2011, 15:32  [ТС]     Можно ли посмотреть, что внутри программы ? #31
"Василий Иванович ты полком командовать можешь"? "Могу Петька". "А дивизией?" "Могу Петька." "А армией?" "Могу Петька, вот только подучиться надо." )
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
12.11.2011, 15:39     Можно ли посмотреть, что внутри программы ? #32
sergey.shuvalov, имейте ввиду, что в дизассемблированном коде все эти удобные имена меток вроде MSG_LOOP, END_LOOP и FINISH, превратятся в нечто вроде seg001_1032 и seg001_1128, всяких "CS_VREDRAW equ 1h" не будет, и везде, где тут вы видете CS_VREDRAW, реально будет 1h. А если вспомнить про оптимизирующие копмиляторы, то это вообще мрак, кошмар и тихий ужас. Так что, как сказал OstapBender, удачи.
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
12.11.2011, 16:18  [ТС]     Можно ли посмотреть, что внутри программы ? #33
Спасибо. Я сейчас доделал всё, что мне надо было по алгоритму, дописал в программу, откомпилировал, запустил. Всё летает. МКС будет жить. Распиловка EXE , пока отменяется. Всем спасибо за соучастие
~enGiNe.O`
6 / 6 / 1
Регистрация: 06.08.2011
Сообщений: 45
12.11.2011, 22:23     Можно ли посмотреть, что внутри программы ? #34
Как было написано в книге Фелемонова "Компьютер глазами хакера." что бы залезть в программу типа .exe, нужна программа "Restorator". А книгу прочитать советую
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
13.11.2011, 07:28     Можно ли посмотреть, что внутри программы ? #35
Цитата Сообщение от ~enGiNe.O` Посмотреть сообщение
нужна программа "Restorator"
Restorator позволяет увидеть/заменить ресурсы. Не боле того. К Хакерству вообще никакого отношения она не имеет (Конечно, если подмену нескольких строк не считать хакерством).
~enGiNe.O`
6 / 6 / 1
Регистрация: 06.08.2011
Сообщений: 45
13.11.2011, 11:39     Можно ли посмотреть, что внутри программы ? #36
Цитата Сообщение от Deviaphan Посмотреть сообщение
К Хакерству вообще никакого отношения она не имеет (Конечно, если подмену нескольких строк не считать хакерством).
Это книга так называется ("Компьютер глазами хакера.") Ты книгу прочитай и вообще узнай кто такие хакеры, а то я думаю, что меня не правильно поняли.

Добавлено через 4 минуты
Ха́кер (от англ. hack — разрубать) — чрезвычайно квалифицированный ИТ-специалист, человек, который понимает самые основы работы компьютерных систем. Изначально хакерами называли программистов, которые исправляли ошибки в программном обеспечении каким-либо быстрым и далеко не всегда элегантным (в контексте используемых в программе стиля программирования и ее общей структуры, дизайна интерфейсов) или профессиональным способом; такие правки ассоциировались с «топорной работой» из-за их грубости, отсюда и произошло название «хакер»[источник не указан 364 дня]. Сейчас хакеров очень часто путают с компьютерными взломщиками — крэкерами (от англ. crack — ломающий); такое употребление слова «хакер» неверно.
Взято с http://ru.wikipedia.org/
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2011, 12:04     Можно ли посмотреть, что внутри программы ?
Еще ссылки по теме:
strtok_s где можно посмотреть сам принцип функции C++
Можно ли Хорошо посмотреть информацию о графическом файле в разных библиотеках? C++
C++ Можно ли посмотреть в нормальном виде описание STL методов и функций?
Какой прогой можно по быстрому посмотреть таблицу, создаваемую SQL файлом? C++
C++ Вылетает программа, не успеваю даже посмотреть что написано

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

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
13.11.2011, 12:04     Можно ли посмотреть, что внутри программы ? #37

Не по теме:

Цитата Сообщение от ~enGiNe.O` Посмотреть сообщение
а то я думаю, что меня не правильно поняли
Вот и я о том же. Ресторатор никаким боком не может отнесён к хакерству. Достаточно знаний на уровне неопытного пользователя.)
А вообще подобные книги меня разочаровали. Либо банальная тупизна, а для других я тупой. А вот Мышъ'а поинтереснее было почитать.



Добавлено через 4 минуты

Не по теме:

Цитата Сообщение от ~enGiNe.O` Посмотреть сообщение
Ты книгу прочитай
Я как-то читал книгу моего любимого писателя Станислава Горнакова по программированию и отладке шейдеров в OpenGL и DirectX. Так вот он написал там аж о двух программах про программированию. И как установить написал. И, даже, как новый файл создать написал. Про программирование забыл, но кому это нужно... О чём это я... Многие книги о "хакерстве" остаются на уровне описания программ типа ресторатора, артмани и подобных. В некоторых даже о дизассемблерах упоминают. Зато вот манифест хакеров и много красивых и громких слов в начале книги всегда пихают.
Но и хорошие книги тоже есть, разумеется, не спорю.

Yandex
Объявления
13.11.2011, 12:04     Можно ли посмотреть, что внутри программы ?
Ответ Создать тему
Опции темы

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