Обход проверки даты

Тема в разделе "WASM.BEGINNERS", создана пользователем arre, 12 авг 2008.

  1. arre

    arre New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2008
    Сообщения:
    7
    Понимаю, вопрос очень нубский и сотню раз обсуждался, но.
    Есть программа на Дельфях, она проверяет дату при запуске и, если она за какой-то границей (граничной даты нет точной), то почти никакие функции программы не работают, если же откатить сис. дату - не работают только пара вещей, и те вылетают с ошибкой (программа работает с базой, видимо ошибка из-за несовпадения текущей даты и даты последних изменений в базе)
    вопрос - как обойти проверку при запуске? может, можно как-то подменить сисколл? читал статьи, читал мсдн на эту тему - не разобрался =(
    обидно бросать прогу, потому что многое уже обошел (проверка на имя машины, ключ в реестре, настройки окружения некоторые...)
    прогу саму могу выложить, если надо.
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Давай прогу, на мэйл.
     
  3. Swat2k

    Swat2k Дима

    Публикаций:
    0
    Регистрация:
    14 май 2007
    Сообщения:
    64
    Выложи , но думаю мало кому захочется копаться в дельфофском гуане...
     
  4. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    В самом наипростейшем случае, нужно пошерстить код на предмет обращения к АПИшкам типа GetLocalDate. И если где-то в окрестностях этого вызова будет код "для отключения всех функций" - то тупо заменить вызов на, скажем, присвоение результату некоего заведомо устраивающего значения (скажем, даты рождества Христова там, итп %-D).
     
  5. arre

    arre New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2008
    Сообщения:
    7
    Swat2k там действительно гуано, как это не прискорбно =(
    Clerk у тебя мыло в профиле закрыто, в любом случае на обменник лить... минут через 10-15 линк выложу
     
  6. arre

    arre New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2008
    Сообщения:
    7
    DEEP к сожалению, асм - не мой конек =( статьи по Олли читал, но не разобрался до такой степени.
    Прошерстить код на обращение к АПИ - чем? СофтАйс? В олли смотрел - не нашел, но плохо смотрел, наверное)
     
  7. Swat2k

    Swat2k Дима

    Публикаций:
    0
    Регистрация:
    14 май 2007
    Сообщения:
    64
    Давай выкладывай на какой нить файлообменник, посмотрим что и как )
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Обычно берётся из разделяемой памяти, использовать DR.
     
  9. arre

    arre New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2008
    Сообщения:
    7
    http://omploader.org/vbzJu
    md5: c5525ad95dab3090c6ecbf5612a341b0 SPlus.rar
    в архиве - полный комплект, вот прям так она и работала =) помимо этого есть базы на сервере. В них, кстати, был найден левый файл, который программа дергала, в нем ключи какие-то. Дергала она не каждый запуск (хотя запускали из архива без модификаций инишек и прочего и с разных машин)
    Да, в ИНИ есть дата текущая и ран-каунтер. Их тоже меняли, по отдельности - не спасает, с системной датой - привет глюки.
    Да, то, что екзешник сжатый - знаю, перед ковырянием расжимал
    ...
    Заранее спасибо =)
     
  10. Swat2k

    Swat2k Дима

    Публикаций:
    0
    Регистрация:
    14 май 2007
    Сообщения:
    64
    Повеселила string по адресу 004D7DDC ) , а так прога у меня не запускается
    Помоему прога чекает не только дату , но и время. Проверка начинается в 0040EA44 ?
     
  11. arre

    arre New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2008
    Сообщения:
    7
    Swat2k
    ей надо БДЕ и ещё тонна всего.
    А что за стринг там? Дома линукс, глянуть нечем =)
     
  12. Swat2k

    Swat2k Дима

    Публикаций:
    0
    Регистрация:
    14 май 2007
    Сообщения:
    64
    004D7E7C=splus.004D7E7C (ASCII "WARNING!
    This program was compiled with an unregistered version of LMD-Tools and will only run in the Delphi-IDE. For further informations please contact

    LMD Innovative
    Auf den Huetten 18,
    57076 Siegen, Germany
    Internet:)
     
  13. arre

    arre New Member

    Публикаций:
    0
    Регистрация:
    12 авг 2008
    Сообщения:
    7
    а, да, деде показала кучку классов и ещё что-то с префиксом лмд...
     
  14. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Я скачать не могу, бряки ставь на все апи/нтапи получения даты. Аппаратную точку останова на чтение UsSharedData.SystemTime.
     
  15. Swat2k

    Swat2k Дима

    Публикаций:
    0
    Регистрация:
    14 май 2007
    Сообщения:
    64
    У меня даже до проверки даты не доходит , так что bp немогу поставить . В основном орентируюсь на дизасам , но он мало что даст...
     
  16. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    arre
    Кинь на мыло упакованный экзешник. И в личку загляни...
     
  17. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    arre
    В процедуре открытия главной формы Main нет ничего за исключением упоминания одного из флажков ZZZ2 (адрес = 0x5A78A4), который потом будет проверяться во многих местах (есть и еще один флажок ZZZ1 (адрес = 0x5A7A09)).
    Код (Text):
    1. Main.Create
    2. {
    3.   Self.MarketUnCheckExecute;
    4.   ExeName := ExtractFilePath(Application.ExeName);
    5.   Self.Visible := false;
    6.   try
    7.   {
    8.     Self.MainSession.PrivateDir := 'C:\Windows\Temp\';
    9.     try
    10.     {
    11.       if Self.MainSession.Active
    12.       {
    13.         Self.MainSession.Close;
    14.         Self.MainSession.Open;
    15.       }
    16.     }
    17.     except
    18.     {
    19.       Self.Close;
    20.     }
    21.     Self.MainSession.Active := true;
    22.     AliasNames := TStringList.Create;
    23.     Self.MainSession.AliasNames(AliasNames);
    24.     SolarisPath = '';
    25.     AliasParams := TStringList.Create;
    26.     if AliasNames.IndexOf('solaris') <> -1
    27.     {
    28.       Self.MainSession.AliasParams('Solaris', AliasParams);
    29.       SolarisPath := AliasParams.Values['path'];
    30.       Self.MainSession.Close;
    31.       Self.MainSession.NetFileDir := SolarisPath;
    32.       NetFileDir := SolarisPath;
    33.       Str := sub_445758(NetFileDir, 1);
    34.       if Str <> '\'
    35.       {
    36.         NetFileDir += '\';
    37.       }
    38.       Self.MainSession.Open;
    39.     }
    40.     AliasParams.Destroy;
    41.     Self.MainTable.DatabaseName := ExeName;
    42.     Self.MainTable2.DatabaseName := ExeName;
    43.   }
    44.   except
    45.   {
    46.     ZZZ2 := 0;
    47.     Self.Close;
    48.   }
    49.   Self.Visible := true;
    50. }
    Похоже собака зарыта в процедуре открытия формы Settings (адрес = 0x582F24). В частности, по адресу 583BF0 стоит вызов динамического метода Main.VeryfyRegExecute (Чувствуется, специально исказили название, хочется написать VerifyReg). Этот метод находится по адресу 59b360, и там собственно выставляется значение флажка ZZZ1.
    ЗЫ
    О результатах скажу позднее.
     
  18. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Продолжение.
    Упомянутая Main.VeryfyRegExecute вызывает Main.LMDSysInfo1 (тип TLMDSysInfo, о котором косвенно речь шла в первых топиках). Вызовы TLMDSysInfo@GetCurrentUser(cmd: Integer) возвращают различную информацию, в частности, время и текущего пользователя. Время сравнивается со значением, которое вернула функция Date и в зависимости от результатов проверки флажок ZZZ1 обнуляется (а должен быть 1).
    ЗЫ
    Меня, правда, смутила строка (топики 10 и 12), но попробовать подпачить можно. И, кстати, естественно нужно править уже корректно распакованный файл.
     
  19. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Похоже, что ZZZ2 - внутренний флажок и к проверке регистрации отношения не имеет.
     
  20. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Скачал, нифига не запускается, пишет мол обьект не найден. Вообще прога полный гуан.