Сейчас на форуме: vsv1, _MBK_ (+3 невидимых)

 eXeL@B —› Вопросы новичков —› win2000, crackme и VirtualAlloc
Посл.ответ Сообщение


Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 14 августа 2007 08:05
· Личное сообщение · #1

У меня windows2000
Есть кракми http://www.stnc.ru/ftpdrmist/other/crackme0.exe . Но он не запускается.
Пишет
"crackme0.exe has generated errors and will be closed by Windows.........."
Открыл в Олли.
Наверное, какие-то проблемы с функцией VirtualAlloc
Вот какие параметры возвращает

100014C0 >/$ 6A 40 PUSH 40 ; /Protect = PAGE_EXECUTE_READWRITE
100014C2 |. 68 00300000 PUSH 3000 ; |AllocationType = MEM_COMMIT|MEM_RESERVE
100014C7 |. 68 00400000 PUSH 4000 ; |Size = 4000 (16384.)
100014CC |. 68 00004000 PUSH 400000 ; |Address = 00400000
100014D1 |. E8 88000000 CALL <JMP.&kernel32.VirtualAlloc>; \VirtualAlloc

Можно ли как-то исправить это кракми, чтобы он работал под вин2000?



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 14 августа 2007 10:23 · Поправил: sniperZ
· Личное сообщение · #2

хз, у мну все рооботаед (XP_SP2)...
что фун-ка у тебя в eax возвращаед?



Ранг: 10.6 (новичок)
Активность: 0.010
Статус: Участник

Создано: 14 августа 2007 10:30
· Личное сообщение · #3

У меня тоже работает. И почему ты грешишь на VirtualAlloc?



Ранг: 117.1 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 14 августа 2007 12:23
· Личное сообщение · #4

Под отладкой в win2000 все работает.
А так ошибка на 2000 sp4.

sniperZ пишет:
хз, у мну все рооботаед (XP_SP2)...


а ты читал первый пост то?

Mavlyudov пишет:

Можно ли как-то исправить это кракми, чтобы он работал под вин2000?


-----
Security through obscurity is just an illusion





Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 14 августа 2007 14:14
· Личное сообщение · #5

sniperZ
0012FFB0 100014D6 /CALL to VirtualAlloc from crackme0.100014D1

Стек:
$ ==> > 100014D6 /CALL to VirtualAlloc from crackme0.100014D1
$+4 > 00400000 |Address = 00400000
$+8 > 00004000 |Size = 4000 (16384.)
$+C > 00003000 |AllocationType = MEM_COMMIT|MEM_RESERVE
$+10 > 00000040 \Protect = PAGE_EXECUTE_READWRITE
$+14 > 7C581AF6 RETURN to kernel32.7C581AF6
$+18 > 0012CF6C

А по адресу ПРЫГ 100014D1 стоит
100014D1 |. E8 88000000 CALL <JMP.&kernel32.VirtualAlloc> ; \VirtualAlloc

В EAX возвращает 00000000 после бряка bp VirtualAlloc

asmonavt
потому как память не выделяется...
В свойствах по кракми и выбери эмуляцию под винд2000, посмотри сам



Ранг: 117.1 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 14 августа 2007 16:52
· Личное сообщение · #6

ZwAllocateVirtualMemory в которую идет VirtualAlloc->VirtualAllocEx возвращает 0xC0000018 STATUS_CONFLICTING_ADDRESSES.

-----
Security through obscurity is just an illusion





Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 19 августа 2007 00:12
· Личное сообщение · #7

pushick
т.е что нужно делать?



Ранг: 81.5 (постоянный), 5thx
Активность: 0.080
Статус: Участник

Создано: 19 августа 2007 00:32
· Личное сообщение · #8

Может не в тему......
А вы не думали, что может для работы этого крякми нужен какой-нибудь .Net Framework или что-то типа этого??? У вас в системе устанолвлена эта дрянь?
Просто такие выводы у меня, что недавно тоже парился с одним крякми, а оказалось, что ему для работы нужен был .Net Framework 1.1.



Ранг: 117.1 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 19 августа 2007 19:12
· Личное сообщение · #9

Никакой нах нет не нужен. Элементарно глючит.

-----
Security through obscurity is just an illusion




Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 19 августа 2007 19:52
· Личное сообщение · #10

аллоч по другому адресу и не еби моск...;)



Ранг: 81.5 (постоянный), 5thx
Активность: 0.080
Статус: Участник

Создано: 19 августа 2007 21:08 · Поправил: deepred
· Личное сообщение · #11

sniperZ
Я только высказал мнение.



Ранг: 62.3 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 20 августа 2007 08:38
· Личное сообщение · #12

Mavlyudov
Параметр Address Поставь NULL , тогда память выделится в вадресе на усмотрения системы. Глюк может быть из-за того что в данный момент память с адреса 00400000 по 00404000 кем то занята.




Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 20 августа 2007 10:53 · Поправил: Mavlyudov
· Личное сообщение · #13

Faza
А как поставить?? что-то я не понимаю(((

Ты про это???
100014CC |. 68 00004000 PUSH NULL ; |Address = 00400000




Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 20 августа 2007 11:02
· Личное сообщение · #14

The unstruction at "0x1000157c" referenced memory at "0x00400000". The memory could not be "written"



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 20 августа 2007 11:47
· Личное сообщение · #15

Mavlyudov
push 0 сделай...=)



Ранг: 117.1 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 20 августа 2007 12:42
· Личное сообщение · #16

Наверное, там этот адрес не просто так ;)

-----
Security through obscurity is just an illusion





Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 20 августа 2007 22:11
· Личное сообщение · #17

sniperZ
Это и было push 0



Ранг: 59.9 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 21 августа 2007 01:07
· Личное сообщение · #18

https://forum.antichat.ru/thread45865.html
Случаем не это ломаем?




Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 21 августа 2007 06:15
· Личное сообщение · #19

El_Diablo
Ну да. его. Видишь, даже ссылки совпадают)))



Ранг: 35.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 21 августа 2007 17:18 · Поправил: Amok
· Личное сообщение · #20

Mavlyudov
Если посмотреть в крякми дальше процедуры VirtualAlloc, то дальше начинается распаковка в выделенную память. Обращения в выделенную память идут по абсолютным адресам типа 00 40 ХХ ХХ. Если сделать, как тебе советовали.
100014CC |. 68 00 PUSH 0 ;
100014D1 |. E8 88000000 CALL <JMP.&kernel32.VirtualAlloc>;
После VirtualAlloc у меня в ЕАХ лежит 00 8D 00 00. Нужно менять все адреса в проге вида 00 40 ХХ ХХ на 00 8D ХХ ХХ. Крякми успешно распаковывается в выделенную память по адресу 00 8D 00 00. Но и там код оперирует абсолютными адресами 00 40 ХХ ХХ.
008D124E C705 A0304000 23>MOV DWORD PTR DS:[4030A0],401023
008D1258 C705 C0304000 00>MOV DWORD PTR DS:[4030C0],403000
008D1262 C705 9C304000 03>MOV DWORD PTR DS:[40309C],3
----------------------------------------------------------------
008D137A FF25 14204000 JMP DWORD PTR DS:[402014] <--кусок иат
008D1380 FF25 08204000 JMP DWORD PTR DS:[402008]
008D1386 FF25 0C204000 JMP DWORD PTR DS:[40200C]
008D138C FF25 10204000 JMP DWORD PTR DS:[402010]

Получается что и в распакованном коде надо править адреса. Ты на это больше времени потратишь, чем на ломание крякми.

Вообщем у меня на одной из систем под ХР тоже кряк не запустился, аутпост занимает заветный адрес 00 40 00 00 своей wl_hook.dll. Грузи кряк в олю, смотри в карту памяти (альт+М), кто занял адрес. Дальше по обстоятельствам удалять/закрывать прогу мешающую тебе ломать кряк.


 eXeL@B —› Вопросы новичков —› win2000, crackme и VirtualAlloc
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати