ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > Реверсинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 07.09.2008, 16:12
neprovad
Постоянный
Регистрация: 19.10.2007
Сообщений: 794
Провел на форуме:
1013791

Репутация: 711


По умолчанию

Код:
.text:00418EA4 mov     edi, 0ADF89ED0h ; init
.text:00418EA9 mov     eax, 0F158FDEAh
.text:00418EAE mov     edx, 589485FCh
.text:00418EB3 mov     ecx, 15898FCEh
.text:00418EB8 mov     [esi+0DCh], edi
.text:00418EBE mov     [esi+0ECh], edi
.text:00418EC4 mov     [esi+0FCh], edi
.text:00418ECA mov     [esi+0E8h], eax
.text:00418ED0 mov     [esi+0F8h], eax
.text:00418ED6 mov     [esi+108h], eax
.text:00418EDC pop     edi
.text:00418EDD mov     [esi+0E0h], edx
.text:00418EE3 mov     [esi+0E4h], ecx
.text:00418EE9 mov     [esi+0F0h], edx
.text:00418EEF mov     [esi+0F4h], ecx
.text:00418EF5 mov     [esi+100h], edx
.text:00418EFB mov     [esi+104h], ecx
.text:00418F01 mov     dword ptr [esi+10Ch], 0F53h
.text:00418F0B mov     dword ptr [esi+110h], 0F52h
==================================================
.text:004188C6 mov     dword ptr [esi], 0FC148ABh ; init
.text:004188CC mov     dword ptr [edi], 1C1F87B0h ; init
==================================================
.text:0041CD4C mov     edx, [eax+0E8h] ; edx=0A889F8A5h
.text:0041CD52 cmp     edx, [eax+0E0h] ; [eax+0E0h]=0A889F8A5h
.text:0041CD58 jz      short loc_41CD84
==================================================
.text:0040BA4A mov     ecx, [eax+104h] ; ecx=1AEA103Bh
.text:0040BA50 cmp     ecx, [eax+0FCh] ; [eax+0FCh]=1AEA103Bh
.text:0040BA56 jz      short loc_40BA65
==================================================
.text:00406255 mov     edx, [eax+0ECh] ; edx=162063EFh
.text:0040625B mov     ecx, [eax+0F4h] ; ecx=162063EFh
.text:00406261 cmp     ecx, edx
.text:00406263 setz    dl
==================================================
.text:00405094 mov     ecx, [eax+0F4h] ; ecx=162063EFh
.text:0040509A cmp     ecx, [eax+0ECh] ; [eax+0ECh]=162063EFh
.text:004050A0 jz      short loc_4050A4
==================================================
.text:00406305 mov     edx, [eax+0E0h] ; edx=0A889F8A5h
.text:0040630B mov     ecx, [eax+0E8h] ; ecx=0A889F8A5h
.text:00406311 cmp     ecx, edx
.text:00406313 setz    dl
Беглого осмотра достаточно чтобы понять что команды читающие значения crc - одинаковые. Поэтому можно их все найти поиском с помощью Olly.
Код:
.text:0041EB10 ; [0000000A BYTES: COLLAPSED FUNCTION SetCRCFlag01. PRESS KEYPAD "+" TO EXPAND]
.text:0041EB1A                 align 10h
.text:0041EB20 ; [0000000A BYTES: COLLAPSED FUNCTION SetCRCFlag04. PRESS KEYPAD "+" TO EXPAND]
.text:0041EB2A                 align 10h
.text:0041EB30 ; [0000000A BYTES: COLLAPSED FUNCTION SetCRCFlag03. PRESS KEYPAD "+" TO EXPAND]
Ну а тут все функции переименованы для наглядности. Каждая ставит флаг Bool: IsCrcValid; Далее флаги проверяются там сям при работе.
Ну вот как-то так.
 
Ответить с цитированием

  #12  
Старый 07.09.2008, 18:18
cryptX
Познающий
Регистрация: 02.09.2008
Сообщений: 38
Провел на форуме:
88361

Репутация: 0
По умолчанию

2 fromRIDDER and 2 Everybody
в 3й остановке бряка написано
00419821 |> \FF15 CC424400 CALL DWORD PTR DS:[<&KERNEL32.CreateFile>; \CreateFileA
00419827 |. 8946 04 MOV DWORD PTR DS:[ESI+4],EAX
0041982A |. 8B4E 04 MOV ECX,DWORD PTR DS:[ESI+4]
0041982D |. 33C0 XOR EAX,EAX

-------------Stack Window------------------
0012F8DC 0012F914 щ. |FileName = "D:\Program Files\pro\regkey.dat"
0012F8E0 80000000 ...Ђ |Access = GENERIC_READ
0012F8E4 00000001 ... |ShareMode = FILE_SHARE_READ
0012F8E8 00000000 .... |pSecurity = NULL
0012F8EC 00000003 ... |Mode = OPEN_EXISTING
0012F8F0 00000020 ... |Attributes = ARCHIVE
0012F8F4 00000000 .... \hTemplateFile = NULL
-------------------------------------------------
потом я ставил мемори бряк на 00419827и 0041982A
и нечего не происходит,ставил бряк на еси+4 и тоже нечего,как попасть в функцию проверки? где именно ставить мемори бряк?
 
Ответить с цитированием

  #13  
Старый 07.09.2008, 19:20
fromRIDDER
Новичок
Регистрация: 02.08.2008
Сообщений: 8
Провел на форуме:
8620

Репутация: 12
По умолчанию

Почему брикпоинт на CreateFileA.
Функций открытия файла на так уж много, и все они в конечном счёте вызывают CreateFileW. Но если поставить бряк на него, то будет слишком много ложных остановок: функция используется не только для работы с файловой системой. Я всегда ставлю бряк на CreateFileA, а после остановки жму Alt+F9 (OllyDbg), какая бы функция не использовалась, почти всегда попадешь в пользовательский код.

На что ставить memory breakpoint.
После нужной остановки на бряке CreateFileA, ставишь бряк на ReadFile (или трейсишь до её использования). Когда остановишься: проверяешь по дескриптору из какого объекта происходит чтение; смотришь в аргументах указатель буфера, в который будет чтение; по какому смещению в объекте. Редко когда обработка прочитанных данных идёт сразу вслед за чтением, поэтому, чтобы не тратить время, ставим memory breakpoint на кусок памяти, куда прочитали. После срабатывания бряка анализируем ситуацию.
 
Ответить с цитированием

  #14  
Старый 07.09.2008, 19:29
fromRIDDER
Новичок
Регистрация: 02.08.2008
Сообщений: 8
Провел на форуме:
8620

Репутация: 12
По умолчанию

to neprovad

Всё не так сложно: сразу же после запуска программы, она создаёт crc файла на жёстком диске, сравнивает с оригинальным, дописанным в конец файла. Всё, больше проверок целостности экзешника нет.
 
Ответить с цитированием

  #15  
Старый 08.09.2008, 20:21
cryptX
Познающий
Регистрация: 02.09.2008
Сообщений: 38
Провел на форуме:
88361

Репутация: 0
Smile

2 fromRIDDER
Извены я новичок в этом деле,не могу понять как ставить бряк на мемори в олли,вот это место например где вызевается ReadFile

004198E5 |. FF15 C4424400 CALL DWORD PTR DS:[<&KERNEL32.ReadFile>] ; \ReadFile
004198EB |. 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
004198EF \. C2 0800 RETN 8

0012F8E8 00000128 (.. |hFile = 00000128 (window)
0012F8EC 01DF2A9A љ*Я |Buffer = 01DF2A9A
0012F8F0 0000000C .... |BytesToRead = C (12.)
0012F8F4 0012F904 щ. |pBytesRead = 0012F904
0012F8F8 00000000 .... \pOverlapped = NULL
0012F8FC 00418798 ?‡A. RETURN to HistoryK.00418798 from HistoryK.004198D0

как ставить бряк на буффер ?
что писать чтоб ставить бряк на мемори ?
если можно по подробнее,я только учусь
 
Ответить с цитированием

  #16  
Старый 08.09.2008, 20:30
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Цитата:
Сообщение от ProTeuS  
0x0c0de неправа
А по-моему, как раз таки ответ на поставленный вопрос должен быть именно таким)
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #17  
Старый 08.09.2008, 21:14
0x0c0de
Постоянный
Регистрация: 25.05.2007
Сообщений: 448
Провел на форуме:
4226446

Репутация: 1564
Отправить сообщение для 0x0c0de с помощью ICQ
По умолчанию

Цитата:
Сообщение от cryptX  
2 fromRIDDER
Извены я новичок в этом деле,не могу понять как ставить бряк на мемори в олли,вот это место например где вызевается ReadFile

004198E5 |. FF15 C4424400 CALL DWORD PTR DS:[<&KERNEL32.ReadFile>] ; \ReadFile
004198EB |. 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8]
004198EF \. C2 0800 RETN 8

0012F8E8 00000128 (.. |hFile = 00000128 (window)
0012F8EC 01DF2A9A љ*Я |Buffer = 01DF2A9A
0012F8F0 0000000C .... |BytesToRead = C (12.)
0012F8F4 0012F904 щ. |pBytesRead = 0012F904
0012F8F8 00000000 .... \pOverlapped = NULL
0012F8FC 00418798 ?‡A. RETURN to HistoryK.00418798 from HistoryK.004198D0

как ставить бряк на буффер ?
что писать чтоб ставить бряк на мемори ?
если можно по подробнее,я только учусь
Folow in dump, адрес, где расположен буфер, а потом уже в окне дампа Breakpoint->Memory on access/write
 
Ответить с цитированием

  #18  
Старый 09.09.2008, 06:03
fromRIDDER
Новичок
Регистрация: 02.08.2008
Сообщений: 8
Провел на форуме:
8620

Репутация: 12
По умолчанию

 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите узнать пароль админа Моргенштерн АнтиАдмин 27 21.07.2008 01:35
Помогите написать программу на С++, генератор массива neon17 С/С++, C#, Delphi, .NET, Asm 3 20.01.2008 23:05
Помогите с вышкой. PomaH9991 Болталка 27 16.12.2007 23:13
Народ!!! Помогите НАМ!!! Помогите покончить с беспределом!!! Monah Чаты 7 24.08.2005 07:06



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ