узнать алгоритм

Тема в разделе "WASM.ASSEMBLER", создана пользователем Esbolov, 28 фев 2008.

  1. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    вот прекрепл фаил где может быть ошибка можеш подсказать
     
  2. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    а что означает shr и обратное деиствие как будет это впринцепе правельно
     
  3. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Esbolov
    Как же Вы, батенька, не зная Паскаля, пытаетесь реверснуть программу, на нем написанную? Так дело не пойдет, учите матчасть!
     
  4. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    извените как только отлучился мне тут сели какита ученики и отредактировали еще раз извените
     
  5. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    Код (Text):
    1. ; Attributes: bp-based frame
    2.  
    3. sub_2E4     proc near       ; CODE XREF: PROGRAM+4D2p
    4.  
    5. var_202     = word ptr -202h
    6. arg_0       = dword ptr  4
    7. arg_4       = dword ptr  8
    что это озна чет в загаловке помоему используемыие переменыие
     
  6. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    вы можете по-нормальному буквы в словах расставлять?
     
  7. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    censored
    М-да, тут наверное сначала русский язык нужно до конца доучить, а потом уже за Паскаль браться.
     
  8. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    даваите может не будем обсуждать мой русски яз я ведь из Казахстана и конечно слаб с языком ладно что с этим кодом
    Код (Text):
    1. ; Attributes: bp-based frame
    2.  
    3. sub_2E4     proc near       ; CODE XREF: PROGRAM+4D2p
    4.  
    5. var_202     = word ptr -202h
    6. arg_0       = dword ptr  4
    7. arg_4       = dword ptr  8
     
  9. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    подскажите что это может означать
    Код (Text):
    1. add sp, 4
    2.         call    @__IOCheck$qv   ; Exit if error
    3.         mov al, byte ptr [bp+var_202+1]
    4.         xor ah, ah
    5.         xor dx, dx
    6.         mov word_2364, ax
    7.         mov word_2366, dx
    8.         les di, [bp+arg_0]
    9.         push    es
    10.         push    di
    11.         push    word_2392
    12.         push    word_2390
    13.         call    @Seek$qm4File7Longint ; Seek(var f; n: Longint)
     
  10. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    К тому что стоит в комментариях можно добавить только сохранение одного байта из локальных переменных в глобальный DWORD.
     
  11. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    а на языке паскале оно выглядит так
    Код (Text):
    1. Seek(arg_0,Var_202+1)
     
  12. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Esbolov
    Неправильное утверждение.
     
  13. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    а правильно как?
     
  14. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Esbolov
    dword_2364 := Buf[1];
    Seek(arg_0, dword_2390);

    Buf - массив байтов.
     
  15. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    а это как
    Код (Text):
    1.         mov al, byte ptr word_2364
    2.         mov byte ptr [bp+var_202+1], al
    3.         les di, [bp+arg_0]
    4.         push    es
    5.         push    di
    6.         lea di, [bp+var_202+1]
    7.         push    ss
    8.         push    di
    9.         call    @Write$qm4Filem3Any ; Write(var f: File{; buf: PByte})
    10.         add sp, 4
    11.         call    @__IOCheck$qv   ; Exit if error
     
  16. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Esbolov
    Такими темпами ты и за год не прореверсишь. То что ты спрашиваешь очевидно
    до безобразия : Seek подводит указатель в файле к нужному месту,
    а Write записывает(видимо уже распакованные данные). И на это
    затрачено 2 дня. Это все равно что по буквам книгу писать :)
    Или читать "по складам".
    А программу распаковки ты прошляпил..., т.к. там IDA не поставила буковов понятных.
     
  17. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    ну может поможеш я его почти разобрал просто спрашиваю то что было не понятно мне так кажется
     
  18. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    Код (Text):
    1. mov al, byte ptr word_2364
    2.         mov byte ptr [bp+var_202+1], al
    3.         les di, [bp+arg_0]
    4.         push    es
    5.         push    di
    6.         lea di, [bp+var_202+1]
    7.         push    ss
    8.         push    di
    9.         call    @Write$qm4Filem3Any ; Write(var f: File{; buf: PByte})
     
  19. Esbolov

    Esbolov New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    83
    Код (Text):
    1. Var_202[1]:=word_2364;
    2. Write (arg_0,var_202[1]);
    помоему так да
     
  20. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Выкладываю "правленный" sub_0(бывший loc_0).
    Алгоритм вроде небольшой, но пока не могу разбирать.
    Может кто доделает... ?