Сейчас на форуме: Magister Yoda (+5 невидимых)

 eXeL@B —› Основной форум —› Помогите доломать прогу с онлайн-защитой
Посл.ответ Сообщение

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

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

Приветствую.
Копаю прогу roofprofy.ru/KrPrOnLine.rar (~18м)

При запуске просится в инет. Потом инет можно отключить.

Написана на вижуал бейсике 6, код нативный. Нашел места где происходит проверка и получение данных
Там фактически две функции вызываются. Дальше застрял...
Вот место, где идет работа с нетом, там дальше идет считывание данных с сервака

.text:00743DED
.text:00743DED loc_743DED: ; CODE XREF: sub_740000+3DD9j
.text:00743DED mov esi, eax
.text:00743DEF mov ecx, [eax]
.text:00743DF1 push offset dword_43DA00
.text:00743DF6 push offset dword_43DA00
.text:00743DFB push offset dword_43DA00
.text:00743E00 mov edx, dword_7D5078
.text:00743E06 push edx
.text:00743E07 push eax
.text:00743E08 call dword ptr [ecx+1Ch] ; mssoap30.xxx MSSoapInit
.text:00743E08 ; /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MSSoapInit )(
.text:00743E08 ; ISoapClient * This,
.text:00743E08 ; /* [in] */ BSTR par_WSDLFile,
.text:00743E08 ; /* [defaultvalue][in] */ BSTR par_ServiceName,
.text:00743E08 ; /* [defaultvalue][in] */ BSTR par_Port,
.text:00743E08 ; /* [defaultvalue][in] */ BSTR par_WSMLFile);
.text:00743E08 ;
.text:00743E0B fnclex
.text:00743E0D test eax, eax
.text:00743E0F jge short @ok
.text:00743E11 push 1Ch ; Error Dlg
.text:00743E13 push offset unk_440340
.text:00743E18 push esi
.text:00743E19 push eax
.text:00743E1A call ds:__vbaHresultCheckObj
.text:00743E20
.text:00743E20 @ok: ; CODE XREF: sub_740000+3E0Fj
.text:00743E20 mov [ebp+var_134], offset unk_7D507C
.text

Для работы защиты используется MSSOAP.



Ранг: 226.0 (наставник), 67thx
Активность: 0.160
Статус: Участник

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

А куда прога ломиться и что получает смотрел ?
Может просто адрес подменить...



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

Создано: 31 августа 2007 17:28 · Поправил: Rustem
· Личное сообщение · #3

Куда ломится, все известно
Все данные, которые нужны тоже есть. Только подменить не получается-возникает Runtime Error '9'

Host: softbog-ru.1gb.ru
Request URI: /service1.asmx?wsdl

В общем там вся работа в 2-х функциях:
1. MSSoapInit
2. Названия не знаю, но получает строку из нета, а в ней число типа 0.6234234234

Пробовал отрубать вызовы и оставлять строку, возникает ошибка '9' (

Как еще можно??



Ранг: 226.0 (наставник), 67thx
Активность: 0.160
Статус: Участник

Создано: 31 августа 2007 17:36 · Поправил: SergX
· Личное сообщение · #4

Rustem пишет:
2. Названия не знаю, но получает строку из нета, а в ней число типа 0.6234234234


А каким макаром получает строку ?
Можно лоадер написать, и апик или процедуру нужную хукнуть.




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

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

Rustem пишет:
Названия не знаю, но получает строку из нета, а в ней число типа 0.6234234234


А ты это число хочеш заменить?



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

Создано: 31 августа 2007 18:47
· Личное сообщение · #6

Прога общается с Web-сервисом через SOAP, всё общение идёт в виде XML-запросов. Посмотри при помощи HTTP Analyzer с кем общается, что передаёт и что получает. Может это поможет.



Ранг: 106.6 (ветеран), 7thx
Активность: 0.040.02
Статус: Участник

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

Rustem пишет:
Как еще можно??


Содрать HTTP Analyzer-ом все вопросы ответы и запихнуть в программку -= скажем на Delphi + Indy строк 20 получится. Ну и в hosts соответствующую запись типа "оффсайт 127.0.0.1"



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

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

Так, на MSSoapInit внимание можешь не обращать, она к защите имеет косвенное отношение - в ней инициализируются подсистема работы с SOAP.
Тебе нужно смотреть, что происходит с ответом сервера.



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

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

digger70, там то запросов один.

Запрос:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<Get_b1 xmlns="http://tempuri.org/">
<a1 xmlns:SOAPSDK4="http://tempuri.org/">9776515285</a1>
<b1 xmlns:SOAPSDK5="http://tempuri.org/">0,2895625</b1>
<c1 xmlns:SOAPSDK6="http://tempuri.org/">3.3.0.1</c1>
<d1 xmlns:SOAPSDK7="http://tempuri.org/">6426273131</d1>
<e1 xmlns:SOAPSDK8="http://tempuri.org/">4223114314</e1>
<f1 xmlns:SOAPSDK9="http://tempuri.org/">-398953120</f1>
</Get_b1>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Ответ сервера:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<Get_b1Response xmlns="http://tempuri.org/">
<Get_b1Result>0.6812333845797744</Get_b1Result>
</Get_b1Response>
</soap:Body>
</soap:Envelope>


Итого - по шести входным параметрам получается один выходной.



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

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

Спасибо всем за ответы.
Запросы и ответы я смотрел в снифере. Ответ сервера такой же ....
Похоже по формуле вычисляется ответ

Застрял, и не ясно что делать дальше? Что хукать?



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

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

Еще есть идея заменить сам SOAP сервак. Но если подсунуть проге wsdl файл как локальный, MSSoapInit возвращает ошибку...
Сам всдл файл прилагаю

19c2_31.08.2007_CRACKLAB.rU.tgz - kr.rar



Ранг: 106.6 (ветеран), 7thx
Активность: 0.040.02
Статус: Участник

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

Rustem
Ну если ответ не фиксированный - рыть программу на тему извлечения алгоритма. На сам SOAP начхать.



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

Создано: 31 августа 2007 22:32
· Личное сообщение · #13

digger70
Я бы с удовольствием начхал на СОАП, но без него прога не работает...Я убирал вызовы и оставлял только строку с ответом. Прога падает.
Вот место, где идет запрос на сервак параметра:
.text:00743F5B push 6
.text:00743F5D push offset aGet_b1 ; "Get_b1"
.text:00743F62 mov eax, [ebp+objSoap]
.text:00743F65 push eax
.text:00743F66 lea ecx, [ebp+objStr]
.text:00743F6C push ecx
.text:00743F6D call ds:__vbaLateMemCallLd ; POST
.text:00743F73 add esp, 70h
.text:00743F76 push eax ; str object
.text:00743F77 call ds:__vbaStrVarMove
.text:00743F7D mov edx, eax ; edx==eax==NewStr
.text:00743F7F mov ecx, offset dword_7D5094
.text:00743F84 call ds:__vbaStrMove
.text:00743F8A lea ecx, [ebp+objStr]


Сами входные данные я бы мог подменить на те, которые ответ известен...

Все больше склоняюсь к программке-эмулятору сервака....
Как это можно сделать, куда копать?
В дельфи не шарю, мне б на С\С++, асм



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

Создано: 01 сентября 2007 00:01
· Личное сообщение · #14

в сторону подмены www.xxx.com на localhost в самой программе или в hosts и собственно сервера



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

Создано: 01 сентября 2007 02:49
· Личное сообщение · #15

Чёт я не въеду. Ну хочется проге в Нет--и пущай се ходит, шоб не падала И пущай получит се левый ответ--что мешает ПОТОМ заменить его на правильный??



Ранг: 106.6 (ветеран), 7thx
Активность: 0.040.02
Статус: Участник

Создано: 01 сентября 2007 09:46
· Личное сообщение · #16

Rustem
Начхать в том плане, что разберись, что программа с ответом делает.



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

Создано: 01 сентября 2007 21:16
· Личное сообщение · #17

Тогда придётся ещё патчить и переписывать процедуру получения ответа. В любом случае.
Потому что может не быть интернета и сети вообще, тогда если менять данные надо имитировать http 200 и имитировать соединение что много...




Ранг: 155.4 (ветеран)
Активность: 0.140
Статус: Участник
Робо-Алкаш

Создано: 01 сентября 2007 22:32
· Личное сообщение · #18

John Freeman пишет:
Тогда придётся ещё патчить и переписывать процедуру получения ответа.

Нафига переписывать?

-----
Researcher




Ранг: 4.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 27 апреля 2009 22:16
· Личное сообщение · #19

Кароче с этой прогой все просто надо просто вшить ответ в exe и все ... там после всего это есть процедура пихания ответа в массив вот туда его и надо вшить.




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

Создано: 27 апреля 2009 22:19
· Личное сообщение · #20

cyb_fh Ты видел дату создания темы, и ответы? Последний ответ 1 сентября 2007.

-----
minimaL_patсh на руборде




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 27 апреля 2009 22:21
· Личное сообщение · #21

cyb_fh



 eXeL@B —› Основной форум —› Помогите доломать прогу с онлайн-защитой
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати