Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi

Модерирует : ShIvADeSt

ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Larry



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В своей программе я редактирую файл определенного драйвера (.sys). Проблема в том, что после внесения изменений в код драйвера, для корректной его работы, нужно править checksum. Возможно ли (и как) поправить контрольную сумму драйвера программно?
 
Заранее благодарен за ответ...

----------
Never put off till tomorrow what can be put off till day after tomorrow just as well

Всего записей: 3148 | Зарегистр. 20-07-2005 | Отправлено: 12:28 02-10-2005
FAngel



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Larry
Алгоритм вычисления контрольной суммы найти не сложно, сама сумма прописывается в заголовок драйвера. А проверка осуществляется самим драйвером или виндой ?

Всего записей: 799 | Зарегистр. 04-12-2003 | Отправлено: 07:51 03-10-2005
All Zh

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Из своей программы мне надо 1)открыть 2)изменить 3)сохранить екзешник  
притом изменённый файл больше по размеру исходного.
Дело в том, что я хочу зашифровать определённую функцию в своей программе.
 
Пожалуйста подскажите (желательно простенький пример) как это сделать.
 
Проблема ещё в том, что в зашифрованном виде она больше размером, как сделать, чтоб при записи она не перекрыла(перезаписала) другие функции?
 
Как найти в бинарном файле нужное место(по меткам)?
 
 
Заранее спасибо!

Всего записей: 1 | Зарегистр. 03-10-2005 | Отправлено: 09:52 03-10-2005
Larry



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FAngel, проверка, по идее, должна виндой проходить. Когда правишь вручную файл с помощью программы HIEW, там же можно поправить контрольную сумму. А как программно - я не знаю. Навскидку, я не нашел, где в файле прописывается контрольная сумма.


----------
Never put off till tomorrow what can be put off till day after tomorrow just as well

Всего записей: 3148 | Зарегистр. 20-07-2005 | Отправлено: 06:09 04-10-2005
FAngel



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Larry
Вылезает ошибка защиты виндов ? Контрольная сумма хранится в PE заголовке, читаешь доки по структуре заголовка, найти контрольную сумму в нем - не проблема. Часть PE заголовка ...

Всего записей: 799 | Зарегистр. 04-12-2003 | Отправлено: 07:55 04-10-2005
gryzchik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте.
 
Подскажите,как можно при нажатии на кнопку сохранить данные 1 и 2 формы в виде экселя или ворда.На формах у меня edit'ы, label'ы и checbоx'ы.
 
Заранее спасибо!

Всего записей: 3 | Зарегистр. 01-09-2005 | Отправлено: 08:07 04-10-2005
Larry



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
FAngel, спасибо, буду пробовать.


----------
Never put off till tomorrow what can be put off till day after tomorrow just as well

Всего записей: 3148 | Зарегистр. 20-07-2005 | Отправлено: 09:49 04-10-2005
imonah



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
gryzchik
 
Вот тебе кусок кода, который открывает Excel и занносит в него данные из СтрингГрида. Передалай по аналогии, все необходимые функции тут есть.

Код:
 
procedure TReleaseF.ExcelBtClick(Sender: TObject);
var
    Workbook,Range,Cell1,Cell2,ArrayData:Variant;
//    TemplateFile : String;
    i,j:integer;
    RowCount,ColCount:integer;
begin
  // Координаты левого верхнего угла области,
  //в которую будем выводить данные
if (ex<1) then  begin BeginCol := 1;   BeginRow := 1; end;
  // Размеры выводимого массива данных
  RowCount := SG_obl.RowCount;
  ColCount := SG_obl.ColCount;
  // Создание Excel
if (ex<1) then  ExcelApp := CreateOleObject('Excel.Application');
  // Отключаем реакцию Excel на события,
  //чтобы ускорить вывод информации
     ExcelApp.Application.EnableEvents := false;
  //  Создаем Книгу (Workbook)
  // Если заполняем шаблон, то
  // Workbook := ExcelApp.WorkBooks.Add('C:\MyTemplate.xls');
if (ex<1) then  Workbook := ExcelApp.WorkBooks.Add
else Workbook:=ExcelApp.WorkBooks[1];
  // Создаем Вариантный Массив,
  //который заполним выходными данными
  ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant);
  // Заполняем массив
  for i:=1 to SG_obl.RowCount do
    for j:=1 to SG_obl.ColCount do
      ArrayData[i,j] := SG_obl.Cells[j-1,i-1];
  // Левая верхняя ячейка области,
  //в которую будем выводить данные
  Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow, BeginCol];
  // Правая нижняя ячейка области,
  //в которую будем выводить данные
  Cell2 := WorkBook.WorkSheets[1].Cells[BeginRow  + RowCount - 1,
           BeginCol + ColCount - 1];
  // Область, в которую будем выводить данные
  Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];
  // А вот и сам вывод данных
  // Намного быстрее поячеечного присвоения
  Range.Value := ArrayData;
  // Делаем Excel видимым
  ExcelApp.Visible := true;
  ex:=ex+1;
  BeginRow:=BeginRow+RowCount+1;
//  ExcelBt.Enabled:=false;
end;
 


----------
Не относитесь к жизни слишком серьезно, вам все равно не уйти из нее живым :)

Всего записей: 1376 | Зарегистр. 07-02-2003 | Отправлено: 15:11 04-10-2005 | Исправлено: imonah, 15:13 04-10-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FAngel
А не подскажешь как можно определить размер SFX-части архива. Интересует можно-ли вычислить эту инфу по данным из PE части? И можно ли это сделать вообще? А то от прочтения этих хакерских сайтов, и описалок на них, в голове  каша конкретная.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 17:07 04-10-2005
gryzchik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, попробую.

Всего записей: 3 | Зарегистр. 01-09-2005 | Отправлено: 19:05 04-10-2005
SergeBS



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DUMAND

Цитата:
 
 Буду весьма признателен. Я уже думал о создании какой-нибудь простейшей базы. А какое программное обеспечение мне потребуется?
 

Извини за задержку - я наконец в отпуск ушел. Для начала немного побездельничал.
Но теперь примерно еженедельно проявляться буду .
Какое ПО - например Delphi .  Как у Форда:"Покупайте авто любой марки - если это Форд, любого цвета - если цвет серый" .
В зависимости от версии (3-7) что-то (из связки) будет удобнее остального. Для D7 например вообще может ничего не надо, кроме самого его.
Можно и на чем-то другом, конечно. Просто я привык небольшие проекты (впрочем большие тоже) на Delphi в связке с чем-либо делать. Тут проект небоьшой - навскидку порядка 3-8 табличек. Т.е. анкетные данные - справочник заболеваний - накопительный файл истории лечения. Справочников возможно надо не 1 - или историю лечения разбить по нескольким направлениям, это сразу не скажу. Практика покажет.  
Короче, на чем боьше хочется, на том можно и начать. Delphi 3,5,6,7, FoxPro 6,7 (но Фокса я недолюбливаю - больно жирные программы получаются, с минимумом функционала).
Сходу имеет смысл подумать - насколько красивые бумажки захочется печатать. Тут в зависимости от вкусов тоже масса вариантов. От ДОСявого принтера до кросстаба со всеми виндовыми наворотами, или Word/Excel типа.
Короче предложение - 14-15 октября отпиши на чем привык, 17-18 (2 вечера) я уже смогу закинуть начальный вариант. Дальше - наращивать функционал (пока не надоест и это не превратится в самоцель). Да, я упомянул только с чем чаще связывался. так что личные пристрастия тоже имеют право на жизнь.

Всего записей: 272 | Зарегистр. 19-04-2005 | Отправлено: 15:27 06-10-2005
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeBS
Сначала я не понял со временем. Посмотрел профиль. Одних земель. У меня мама родилась в Киржаче. Да и я там практически вырос. Маленькая Земля....
Привычки к форматам вывода у меня вообще нет. Сам в свое время слепил по Визарду Аксесса базу, так ей и пользуюсь. Есть мысли сделать Он-лайн сервис в Инете. Вот, пожалуй, единственное пожелание. Не столько выводить на принтер, сколько оперативно обслуживать. Да! И какой-никакой интерфейс для изменений. Например, добавить или удалить или изменить какой-то параметр. Статистику с графикой не мешало бы. Если не очень я обнаглен, потом еще чего-нибудь захочется.    
Да! Дельфи у меня 7.

Всего записей: 337 | Зарегистр. 12-06-2001 | Отправлено: 20:31 06-10-2005 | Исправлено: DUMAND, 21:00 06-10-2005
FAngel



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vserd
А зачем такие сложности ? Принцип создания SFX архива крайне прост - берется исполняемый модуль и к нему просто дописывается архив. Т.е. найти архив в нем можно просто по поиску сигнатуры архива в файле (Например : Rar! - для RAR архива и т.д. и т.п.). Как найдешь начала архива, все что до него - SFX вот и искомый размер. Но можно пойти более сложным путем - рытся в заголовке и считать размер секций, только стоит ли хотя и вполне реально ?

Всего записей: 799 | Зарегистр. 04-12-2003 | Отправлено: 06:22 07-10-2005 | Исправлено: FAngel, 06:26 07-10-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FAngel

Цитата:
Т.е. найти архив в нем можно просто по поиску сигнатуры архива в файл

Да оно то так. Пока так и реализовано. Просто мне нужно написать код, который пропускает SFX и извлекает архив. Архивы разных типов, правда сигнатуру я знаю. Пока это правило соблюдается,но, я боюсь, что в каком нибудь SFX-модуле встретится эта сигнатура. Вот и хочу сделать проверку что найденая сигнатура находится в не SFX(EXE)-части файла, и если таки в  SFX то продолжить поиск. Задача не горит пока, но хочется сделать по уму и больше к этому не возвращаться.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 12:35 07-10-2005
FAngel



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vserd
Ок. В таком случае получаем из заголовка Number of Sections и Size of headers, далее читаем из SECTION TABLE   Number of Sections раз инфу по секциям, нас интерессует так называемый raw data size секции. Итого : размер ЕХЕ=Size of headers+сумма raw data size секции.

Всего записей: 799 | Зарегистр. 04-12-2003 | Отправлено: 14:14 07-10-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FAngel
Спасибо, поробую.  

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 15:36 07-10-2005
SergeBS



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DUMAND
Ну на 7 и будем работать.  

Цитата:
 
Есть мысли сделать Он-лайн сервис в Инете.
 

Типа страничка - кто хочет заходит и после пароля видит свою историю болезни или вводит данные о себе?  
ОК. Только тогда получаем многопользовательскую систему. Т.е. у твоего провайдера понадобится поставить какой-либо легкий сервачок типа FireBird. Или заводить гостевую книгу (или типа форума) с шаблоном ввода и просмотра. Тогда - жить на сервере провайдера. Навскидку других решений пока не вижу. Но еще подумаю. Для меня это нечто новое, так что даже интересно поиграть будет в такие сервисы.

Всего записей: 272 | Зарегистр. 19-04-2005 | Отправлено: 17:54 12-10-2005
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeBS
Немного другое. Чтобы программа и все остальное стояло на сервере. И запускалась из Инета. И, само собой, база, обработка...  И промежуточный вариант . Программа на компе, а хранение данных на сервере. Чтобы в течении тренинга не висеть в Инете.

Всего записей: 337 | Зарегистр. 12-06-2001 | Отправлено: 23:40 12-10-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DUMAND

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

Только не забывай что во всем мире мед инфа считается конфиденциальной, а так со временем, ты можешь накопить некую базу которая взлом сервера на которм она размещена будет проплачен. Так что лучше пускай тебе присылают результаты, а ты их будешь добавлять в свою базу на локальном компе. Для провайдеров наиболее типичным является MySQL, который не поддерживает транзакций. Для получения инфы от сервера это подходит, но для добавления или изменения нет.
 
Ты должен определиться чего ты хочешь, в противном случае, ты будешь бегать от варианта к варианту, а прога будет напоминать винигрет.
Если очень серьезная заявка в конце, попробуй определить этапы, которые можно будет выполнять в рамках общей цели. И самое главное определись что ты хочешь получать в отчетах. Потому что иногда отчеты очень существенно меняют первоначальную базу, а ее перекрой очень болезненое и довольно дорогое "удовольствие".
общее правило таково: внесение изменений после выполения 20-30%  проекта стоит на порядок дороже чем в начале, а после 50% еще больше.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 12:58 13-10-2005
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vserd

Цитата:
Только не забывай что во всем мире мед инфа считается конфиденциальной, а так со временем, ты можешь накопить некую базу которая взлом сервера на которм она размещена будет проплачен. Так что лучше пускай тебе присылают результаты, а ты их будешь добавлять в свою базу на локальном компе. Для провайдеров наиболее типичным является MySQL, который не поддерживает транзакций. Для получения инфы от сервера это подходит, но для добавления или изменения нет.

 
У провайдера есть еще PostgreSQL. Может это лучше и функциональнее?
А вообще совет понял и уже согласен.  
 

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

Если можно, поясните. Пример какой-нибудь.
 

Цитата:
И самое главное определись что ты хочешь получать в отчетах. Потому что иногда отчеты очень существенно меняют первоначальную базу, а ее перекрой очень болезненое и довольно дорогое "удовольствие".

Отчет это что? Не приходилось видеть. Можно пример. Тогда легче разобраться.
 
Спасибо за серьезное отношение к моим проблемам.
 

Всего записей: 337 | Зарегистр. 12-06-2001 | Отправлено: 21:48 13-10-2005
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi
ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru