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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ BitArray. Целочисленная реализация. http://www.cyberforum.ru/cpp-beginners/thread381734.html
Везде нахожу примеры как битовый массив хранится в строке. А мне нужно хранение в инте. Вопщем, код: class BitArray { private: unsigned SizeBits; unsigned SizeIntCount; unsigned *Data;
C++ Мне нужно решить задачу на прологе.. хn,уn. Выяснить, найдуться ли среди точек с координатами (х1,у1)...( Мне нужно решить задачу на прологе: Даны целые числа х1,у1, х2,у2, ... хn,уn. Выяснить, найдуться ли среди точек с координатами (х1,у1)...(хn,уn) четыре таких которые являются вершинами квадрата. Помогите!! Пожалуйста!!! http://www.cyberforum.ru/cpp-beginners/thread381717.html
C++ Реализовать функцию, которая переписывает элементы входного массива в обратном порядке
Реализовать функцию, которая переписывает элементы входного массива в обратном порядке. на вход функция получает указатель на первый элемент массива, а также его размерность. Задан действительный размерности 3n, который делится на три пидмасивы. используя функцию для каждого из пидмасивив превратить входной массив.
C++ ввести целое двузначное число. вывести числа кратные 3
ввести целое двузначное число. вывести числа кратные 3
C++ Русские буквы в консоли на Microsoft Visual C++ 6.0 http://www.cyberforum.ru/cpp-beginners/thread381676.html
Как по проше можно вывисти русские буквы в консоли на Microsoft Visual C++ 6.0. такой способ не срабатывает #include <locale.h> using namespace std; int main() { setlocale(LC_ALL, "Rus"); }
C++ Вычислить и вывести на экран значения выражения Вычислить и вывести на экран значения выражения для данного натурального числа N: 4+8+12+ … +4∙N. подробнее

Показать сообщение отдельно
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.11.2011, 15:27     Можно ли посмотреть, что внутри программы ?
Если не использовать комменты то это невозможно будет разобрать.
Пример простой программы 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
Это ж каждую функцию расписывать на пуши попы мувы коллы джампы
 
Текущее время: 09:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru