информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Сетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Phrack #70/0x46 
 Возможно, Facebook наступил на... 
 50 лет электронной почте 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / beginners
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Во-первых, молодец – что снял дамп. 14.07.08 22:34  Число просмотров: 1611
Автор: Neznaika <Alex> Статус: Member
<"чистая" ссылка> <обсуждение закрыто>
Во-первых, молодец – что снял дамп.
Это главное.

Во-вторых, на wasm.ru – была утилита, которая перегоняет MAP в SYM:
(http://wasm.ru/toollist.php?list=20), но она тебе и не нужна.

Как правильно сказал Сергей, “map файл - это и есть символы”.

Тебе надо просто взять *.map, для которого у тебя есть дамп и найти в нем последнюю функцию, которая далее вызывает EnumFontFamiliesEx. Для того дампа, который ты выложил – вызов идет с адреса “buh+0x60cdbe”. Т.е. в файле *.map надо найти самое близкое значение, меньшее чем 60cdbe. Это и будет функция, в которой все падает.

В-третьих. Сдается мне, что здесь - даже и без *.map файла - все понятно.
Ваша программа вызывает системную функцию EnumFontFamiliesEx. Одним из параметов EnumFontFamiliesEx является callback-функция (функция обратного вызова; т.е, программист сам эту функцию не вызывает, она вызывается системой Windows). И эта callback-функция у вас написана с ошибкой. Возможно, в ней не проверяются входные параметры. Или она не обьявлена как экпортируемая. Или она обьявлена как fastcall. Или она пишет в область памяти, которая не проинициализирована. Или еще что-нибудь.

Что надо сделать:
1) На всякий случай, я бы собрал еще несколько дампов, чтобы убедиться –
что падает именно здесь.
2) Далее, надо сказать разработчикам – что программа падает при вызове EnumFontFamiliesEx. Обычно мест, где эта функция вызывается немного, максимум два-три. Пусть самым тщательным образом проверят все эти вызовы.

Как это можно исправить:
a) Можно заменить EnumFontFamiliesEx на более простой аналог EnumFontFamilies;
b) Можно попробовать заменить callback-функцию на “пустышку”, которая ничего реально не делает;
c) В крайнем случае – можно выкинуть все вызовы к EnumFontFamiliesEx, я думаю – что в бухгалтерской программе без этой функции вполне можно обойтись.

Удачи!
<beginners> Поиск 








Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2021 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach