Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги хакеры / Защита_от_взлома_сокеты,_эксплойты,_shell_код_Фостер_Дж_

.pdf
Скачиваний:
14
Добавлен:
19.04.2024
Размер:
3.68 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

Содержание

11

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

Клиенты и серверы для протокола UDP

266

df

-x cha

 

e

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

Компиляция ..............................................................................................

271

 

 

 

 

 

 

 

 

Пример выполнения.................................................................................

271

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

272

 

 

 

 

 

 

 

 

Резюме ................................................................................................................

275

Обзор изложенного материала .....................................................................

276

Часто задаваемые вопросы ............................................................................

277

Глава 6. Написание переносимых программ ....................................

279

Введение .............................................................................................................

280

Рекомендации по переносу программ между платформами UNIX

 

è Microsoft Windows .........................................................................................

280

Директивы препроцессора .............................................................................

281

Использование директив #ifdef .....................................................................

281

Определение операционной системы ...........................................................

283

Пример исполнения .................................................................................

284

Анализ .......................................................................................................

284

Порядок байтов .............................................................................................

285

Пример исполнения .................................................................................

286

Анализ .......................................................................................................

286

Создание и завершение процессов...............................................................

287

Системный вызов exec ....................................................................................

287

Пример исполнения .................................................................................

288

Анализ .......................................................................................................

288

Пример исполнения .................................................................................

289

Анализ .......................................................................................................

289

Пример исполнения .................................................................................

292

Анализ .......................................................................................................

292

Системный вызов fork ...................................................................................

293

Системный вызов exit ....................................................................................

293

Многопоточность ..........................................................................................

293

Создание потока.............................................................................................

294

Пример исполнения .................................................................................

295

Анализ .......................................................................................................

295

Пример исполнения .................................................................................

296

Анализ .......................................................................................................

296

Синхронизация потоков ................................................................................

297

Пример исполнения .................................................................................

299

Анализ .......................................................................................................

299

Пример исполнения .................................................................................

301

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

12 Защита от взлома: сокеты, эксплойты и shell#код

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

-xcha

 

 

 

Анализ

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

301-x cha

 

e

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сигналы ..........................................................................................................

 

302

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

303

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

304

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Работа с файлами............................................................................................

 

304

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

305

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

307

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Работа с каталогами ........................................................................................

 

307

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

308

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

309

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

311

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Библиотеки .....................................................................................................

 

311

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Динамическая загрузка библиотек ...............................................................

 

313

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

315

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

316

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программирование демонов и Win32-сервисов ..........................................

 

317

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример исполнения .................................................................................

 

319

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

319

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

323

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Управление памятью .....................................................................................

 

324

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

325

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обработка аргументов, заданных в командной строке ................................

 

325

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

326

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

328

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример исполнения .................................................................................

 

329

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

329

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Целочисленные типы данных .......................................................................

 

330

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

331

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Резюме ................................................................................................................

 

332

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обзор изложенного материала .....................................................................

 

332

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Часто задаваемые вопросы ............................................................................

 

332

 

 

 

 

 

 

Глава 7. Написание переносимых сетевых программ .....................

335

Введение .............................................................................................................

336

BSD-сокеты и Winsock .....................................................................................

336

Требования спецификации Winsock .............................................................

337

Анализ .......................................................................................................

338

Подлежащие переносу компоненты .............................................................

338

Возвращаемые значения ...............................................................................

338

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

Содержание

13

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

 

m

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

g

.c

 

Анализ

 

 

p

 

-x cha

 

 

 

339

df

 

e

 

 

 

 

 

 

 

n

 

 

 

 

Анализ .......................................................................................................

340

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

341

 

 

 

 

 

 

 

 

 

Расширенная информация об ошибках .......................................................

341

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

342

 

 

 

 

 

 

 

 

 

API...................................................................................................................

343

 

 

 

 

 

 

 

 

 

Расширения, определенные в Winsock 2.0 ....................................................

343

 

 

 

 

 

 

 

 

 

Функции read() и write() ................................................................................

343

 

 

 

 

 

 

 

 

 

Функция socket() ............................................................................................

343

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

345

 

 

 

 

 

 

 

 

 

Функция connect() ..........................................................................................

346

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

348

 

 

 

 

 

 

 

 

 

Функция bind() ...............................................................................................

348

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

351

 

 

 

 

 

 

 

 

 

Функция listen() .............................................................................................

351

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

354

 

 

 

 

 

 

 

 

 

Функция accept() ............................................................................................

354

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

357

 

 

 

 

 

 

 

 

 

Функция select() ..............................................................................................

358

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

362

 

 

 

 

 

 

 

 

 

Функции send() и sendto() ..............................................................................

363

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

366

 

 

 

 

 

 

 

 

 

Функции recv() и recvfrom()...........................................................................

366

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

370

 

 

 

 

 

 

 

 

 

Функции close() и closesocket() ......................................................................

370

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

372

 

 

 

 

 

 

 

 

 

Функция setsockopt() ......................................................................................

372

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

375

 

 

 

 

 

 

 

 

 

Функции ioctl() и ioctlsocket() ........................................................................

375

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

377

 

 

 

 

 

 

 

 

 

Простые сокеты .............................................................................................

378

 

 

 

 

 

 

 

 

 

Обзор API .......................................................................................................

378

 

 

 

 

 

 

 

 

 

Заголовочные файлы.....................................................................................

379

 

 

 

 

 

 

 

 

 

Заголовок IPv4 .........................................................................................

379

 

 

 

 

 

 

 

 

 

Заголовок ICMP ........................................................................................

381

 

 

 

 

 

 

 

 

 

Заголовок UDP ..........................................................................................

381

 

 

 

 

 

 

 

 

 

Заголовок TCP ...........................................................................................

382

 

 

 

 

 

 

 

 

 

Определение локального IP-адреса ..............................................................

383

 

 

 

 

 

 

 

 

 

Запрос у пользователя ....................................................................................

383

 

 

 

 

 

 

 

 

 

14 Защита от взлома: сокеты, эксплойты и shell#код

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

g

.c

 

Перечисление интерфейсов

 

 

p

 

 

 

 

 

 

 

......................................................................

384-x cha

 

e

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

 

 

 

Пример исполнения .................................................................................

 

388

 

 

 

 

 

 

Анализ .......................................................................................................

 

388

 

 

 

 

 

 

Библиотеки pcap и WinPcap ........................................................................

389

Пример исполнения .................................................................................

394

Анализ .......................................................................................................

394

Резюме ................................................................................................................

396

Обзор изложенного материала .....................................................................

397

Часто задаваемые вопросы ............................................................................

397

Глава 8. Написание shell#кода I ...........................................................

399

Введение .............................................................................................................

400

Что такое shell-код? .........................................................................................

400

Инструменты ............................................................................................

401

Язык ассемблера .......................................................................................

402

Анализ ..................................................................................................

403

Анализ ..................................................................................................

403

Анализ ..................................................................................................

404

Ассемблер в Windows и UNIX ..................................................................

406

Проблема адресации ......................................................................................

406

Применение команд call и jmp ...............................................................

407

Анализ ..................................................................................................

407

Анализ ..................................................................................................

408

Заталкивание аргументов в стек .............................................................

408

Проблема нулевого байта ...............................................................................

409

Реализация системных вызовов.....................................................................

410

Номера системных вызовов ...........................................................................

410

Аргументы системных вызовов ...............................................................

411

Анализ ..................................................................................................

411

Анализ ..................................................................................................

412

Анализ ..................................................................................................

412

Значение, возвращаемое системным вызовом .......................................

413

Внедрение shell-кода в удаленную программу ............................................

413

Shell-êîä для привязки к порту .....................................................................

413

Анализ ..................................................................................................

415

Shell-код для использования существующего дескриптора сокета ..............

415

Анализ ..................................................................................................

416

Внедрение shell-кода в локальную программу ............................................

417

Shell-êîä, выполняющий execve.....................................................................

417

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

 

o

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

Содержание

15

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

w Click

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

df

-xcha

 

e

 

 

Shell-код, выполняющий setuid

419

df

-x cha

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Shell-êîä, выполняющий chroot ....................................................................

420

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Написание shell-êîäà äëÿ Windows................................................................

425

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Резюме ................................................................................................................

431

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обзор изложенного материала .....................................................................

431

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ссылки на сайты................................................................................................

433

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Списки рассылки ..............................................................................................

434

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Часто задаваемые вопросы ............................................................................

434

 

 

 

 

 

 

 

 

 

Глава 9. Написание shell#кода II..........................................................

437

Введение .............................................................................................................

438

Примеры shell-кодов ........................................................................................

438

Системный вызов write ..................................................................................

441

Анализ .......................................................................................................

442

Анализ .......................................................................................................

444

Системный вызов execve ................................................................................

446

Анализ .......................................................................................................

446

Анализ .......................................................................................................

447

Анализ .......................................................................................................

449

Анализ .......................................................................................................

451

Анализ .......................................................................................................

453

Анализ .......................................................................................................

454

Shell-êîä для привязки к порту .....................................................................

455

Анализ .......................................................................................................

456

Системный вызов socket ................................................................................

458

Анализ .......................................................................................................

458

Системный вызов bind ...................................................................................

459

Анализ .......................................................................................................

459

Системный вызов listen .................................................................................

460

Анализ .......................................................................................................

460

Системный вызов accept ................................................................................

460

Анализ .......................................................................................................

461

Системный вызов dup2 .................................................................................

461

Анализ .......................................................................................................

462

Системный вызов execve ................................................................................

462

Анализ .......................................................................................................

462

Анализ .......................................................................................................

466

Shell-êîä для обратного соединения .............................................................

468

Анализ .......................................................................................................

470

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

16 Защита от взлома: сокеты, эксплойты и shell#код

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

df

-xcha

 

e

 

Shell-код для повторного использования сокета

 

471-x cha

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

473

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Повторное использование файловых дескрипторов ..................................

 

474

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

474

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

476

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

477

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

478

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

479

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

480

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

480

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кодирование shell-êîäà ..................................................................................

 

481

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

482

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

485

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

486

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Повторное использование переменных программы ................................

 

488

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программы с открытыми исходными текстами .....................................

 

488

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

489

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программы с недоступными исходными текстами ................................

 

490

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

491

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

492

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Shell-код, работающий в разных ОС .............................................................

 

492

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

493

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Как разобраться в работе готового shell-кода?..........................................

 

493

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

496

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Резюме ................................................................................................................

 

499

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обзор изложенного материала .....................................................................

 

499

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ссылка на сайты.................................................................................................

 

500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Списки рассылки ..............................................................................................

 

500

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Часто задаваемые вопросы ............................................................................

 

501

 

 

 

 

 

 

Глава 10. Написание эксплойтов I.......................................................

503

Введение .............................................................................................................

504

Обнаружение уязвимостей .............................................................................

504

Эксплойты для атаки на локальные и удаленные программы.................

505

Анализ .......................................................................................................

507

Атаки на форматную строку ...........................................................................

507

Форматные строки ........................................................................................

507

Анализ .......................................................................................................

508

Анализ .......................................................................................................

509

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Исправление ошибки из-за некорректного использования

Содержание

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

17

 

to

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

форматной строки ....................................................................................

510

Пример: уязвимость xlockmore вследствие задания пользователем

 

форматной строки (CVE-2000-0763) .............................................................

510

Детали уязвимости....................................................................................

510

Детали эксплойта.......................................................................................

511

Анализ .......................................................................................................

513

Уязвимости TCP/IP...........................................................................................

513

Гонки ...................................................................................................................

514

Гонки, связанные с файлами .........................................................................

515

Гонки, связанные с сигналами ......................................................................

516

Пример: ошибка в программе man при контроле входных данных ......

517

Детали уязвимости....................................................................................

517

Резюме ................................................................................................................

520

Обзор изложенного материала .....................................................................

521

Ссылки на сайты................................................................................................

523

Часто задаваемые вопросы ............................................................................

523

Глава 11. Написание эксплойтов II .....................................................

525

Введение .............................................................................................................

526

Программирование сокетов и привязки к порту в эксплойтах..............

527

Программирование клиентских сокетов ......................................................

527

Анализ .......................................................................................................

528

Анализ .......................................................................................................

529

Программирование серверных сокетов .......................................................

529

Анализ .......................................................................................................

530

Эксплойты для переполнения стека ..............................................................

531

Организация памяти ......................................................................................

531

Переполнение стека .........................................................................................

532

Поиск поддающихся эксплуатации переполнений стека в программах

 

с открытыми исходными текстами ..........................................................

537

Пример: переполнение XLOCALEDIR в X11R6 4.2 ....................................

538

Описание уязвимости ..............................................................................

538

Эксплойт ...................................................................................................

541

Вывод ........................................................................................................

543

Поиск переполнений стека в программах с недоступными исходными

 

текстами ....................................................................................................

543

Эксплойты для затирания кучи......................................................................

544

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

18 Защита от взлома: сокеты, эксплойты и shell#код

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

df

-xcha

 

e

 

Реализация Дуга Леа

 

545-x cha

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

547

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример: уязвимость, связанная с переполнением буфера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

из-за неправильно сформированного клиентского ключа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

â OpenSSL SSLv2, CAN-2002-0656 ..................................................................

 

549

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Описание уязвимости ..............................................................................

 

550

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Описание эксплойта .................................................................................

 

550

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Трудности..................................................................................................

 

552

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Усовершенствование эксплойта...............................................................

 

553

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод ........................................................................................................

 

553

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код эксплойта для переполнения буфера из-за неправильно

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сформированного клиентского ключа в OpenSSL SSLv2.................

 

554

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реализация malloc в ОС System V ............................................................

 

560

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

562

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

563

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эксплойты для ошибок при работе с целыми числами...........................

 

564

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Переполнение целого числа ..........................................................................

 

564

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

565

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

567

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обход проверки размера ................................................................................

 

567

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

568

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

569

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Другие ошибки, связанные с целыми числами ...........................................

 

569

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример: уязвимость OpenSSH из-за переполнения целого в процедуре

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

оклика/отзыва CVE-2002-0639 ........................................................................

 

570

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Детали уязвимости .........................................................................................

 

570

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Детали эксплойта.......................................................................................

 

571

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример: уязвимость в UW POP2, связанная с переполнением буфера,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CVE-1999-0920 ...................................................................................................

 

574

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Детали уязвимости .........................................................................................

 

574

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Резюме ................................................................................................................

 

584

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обзор изложенного материала .....................................................................

 

584

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ссылки на сайты................................................................................................

 

585

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Часто задаваемые вопросы ............................................................................

 

586

 

 

 

 

 

 

Глава 12. Написание эксплойтов III ....................................................

587

Введение .............................................................................................................

588

Использование каркаса Metasploit Framework.............................................

588

Разработка эксплойтов с помощью каркаса Metasploit ..............................

595

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

 

o

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

Содержание

19

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

w Click

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

df

-xcha

 

e

 

 

Определение вектора атаки

596

df

-x cha

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Нахождение смещения ..................................................................................

597

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выбор вектора управления ............................................................................

602

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычисление адреса возврата ..........................................................................

607

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Использование адреса возврата .....................................................................

612

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определение недопустимых символов .........................................................

614

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определение ограничений на размер............................................................

615

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Дорожка из NOP-команд ...............................................................................

617

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выбор полезной нагрузки и кодировщика ....................................................

619

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интегрирование эксплойта в каркас .............................................................

629

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Внутреннее устройство каркаса ....................................................................

629

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ существующего модуля эксплойта ...................................................

631

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Переопределение методов .............................................................................

637

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Резюме ................................................................................................................

638

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Обзор изложенного материала .....................................................................

639

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ссылки на сайты................................................................................................

640

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Часто задаваемые вопросы ............................................................................

641

 

 

 

 

 

 

 

 

 

Глава 13. Написание компонентов для задач, связанных

 

с безопасностью .....................................................................................

643

Введение .............................................................................................................

644

Модель COM......................................................................................................

644

COM-объекты ................................................................................................

645

COM-интерфейсы ..........................................................................................

645

Интерфейс IUnknown ...............................................................................

645

Соглашение о вызове..............................................................................

645

Среда исполнения COM .................................................................................

646

Реализация COM-объекта ..............................................................................

647

Регистрация COM-объекта .......................................................................

647

Êëþ÷ HKEY_CLASSES_ROOT\CLSID .......................................................

649

Êëþ÷ HKEY_CLASSES_ROOT\CLSID\

 

{xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx} .................................................

649

Êëþ÷ InprocServer32.................................................................................

649

Êëþ÷ LocalServer32 ...................................................................................

649

Реализация внутрипроцессного сервера .......................................................

649

Функция DllGetClassObject .......................................................................

650

Функция DllCanUnloadNow......................................................................

650

Функция DllRegisterServer..........................................................................

650

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

20 Защита от взлома: сокеты, эксплойты и shell#код

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

w Click

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

df

-xcha

 

e

 

Функция DllUnregisterServer

 

651-x cha

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Библиотека ATL .................................................................................................

 

651

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Шаблоны в языке C++...................................................................................

 

652

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Технология реализации клиента с помощью ATL ........................................

 

652

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интеллектуальные указатели ...................................................................

 

653

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поддержка типов данных .........................................................................

 

653

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тип данных BSTR .....................................................................................

 

653

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тип данных VARIANT ..............................................................................

 

654

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Технология реализации сервера с помощью ATL ........................................

 

656

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Композиция классов .................................................................................

 

656

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Язык определения интерфейсов .............................................................

 

659

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Регистрация класса ....................................................................................

 

663

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реализация внутрипроцессного COM-сервера .......................................

 

666

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Глобальная переменная _AtlModule .........................................................

 

666

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Функции, экспортируемые из DLL..........................................................

 

667

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Точка входа в модуль.................................................................................

 

669

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Реализация внепроцессного COM-сервера .............................................

 

669

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Глобальная переменная _AtlModule ...................................................

 

669

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Точка входа в модуль.................................................................................

 

669

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Атрибуты ATL ................................................................................................

 

670

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Атрибут module .........................................................................................

 

672

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Атрибут interface .......................................................................................

 

673

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Атрибут coclass ..........................................................................................

 

674

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Компиляция COM-сервера ..................................................................

 

675

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Добавление COM-расширений в программу RPCDUMP .........................

 

675

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

678

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поток управления .........................................................................................

 

680

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

681

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Процедуры интеграции с приложением .......................................................

 

682

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

683

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Определение интерфейсов COM-объектов ..................................................

 

685

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интерфейс IRpcEnum ..............................................................................

 

686

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интерфейс IEndPointCollection ................................................................

 

686

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интерфейс IEndPoint ................................................................................

 

688

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Классы компонентов ......................................................................................

 

688

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

689

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

690

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

693

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интеграция с приложением: файл COMSupport.h ........................................

 

695

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Анализ .......................................................................................................

 

695