Посл.ответ |
Сообщение |
Ранг: 74.1 (постоянный), 34thx Активность: 0.03↘0 Статус: Участник
|
Создано: 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.16↘0 Статус: Участник
|
Создано: 31 августа 2007 14:53 · Личное сообщение · #2
А куда прога ломиться и что получает смотрел ?
Может просто адрес подменить...
| Сообщение посчитали полезным: |
Ранг: 74.1 (постоянный), 34thx Активность: 0.03↘0 Статус: Участник
|
Создано: 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.16↘0 Статус: Участник
|
Создано: 31 августа 2007 17:36 · Поправил: SergX · Личное сообщение · #4
Rustem пишет:
2. Названия не знаю, но получает строку из нета, а в ней число типа 0.6234234234
А каким макаром получает строку ?
Можно лоадер написать, и апик или процедуру нужную хукнуть.
| Сообщение посчитали полезным: |
 Ранг: 500.6 (!), 7thx Активность: 0.26↘0 Статус: Участник
|
Создано: 31 августа 2007 18:17 · Личное сообщение · #5
Rustem пишет:
Названия не знаю, но получает строку из нета, а в ней число типа 0.6234234234
А ты это число хочеш заменить?
| Сообщение посчитали полезным: |
Ранг: 49.7 (посетитель) Активность: 0.02↘0 Статус: Участник
|
Создано: 31 августа 2007 18:47 · Личное сообщение · #6
Прога общается с Web-сервисом через SOAP, всё общение идёт в виде XML-запросов. Посмотри при помощи HTTP Analyzer с кем общается, что передаёт и что получает. Может это поможет.
| Сообщение посчитали полезным: |
Ранг: 106.6 (ветеран), 7thx Активность: 0.04↘0.02 Статус: Участник
|
Создано: 31 августа 2007 19:01 · Личное сообщение · #7
Rustem пишет:
Как еще можно??
Содрать HTTP Analyzer-ом все вопросы ответы и запихнуть в программку -= скажем на Delphi + Indy строк 20 получится. Ну и в hosts соответствующую запись типа "оффсайт 127.0.0.1"
| Сообщение посчитали полезным: |
Ранг: 49.7 (посетитель) Активность: 0.02↘0 Статус: Участник
|
Создано: 31 августа 2007 19:04 · Личное сообщение · #8
Так, на MSSoapInit внимание можешь не обращать, она к защите имеет косвенное отношение - в ней инициализируются подсистема работы с SOAP.
Тебе нужно смотреть, что происходит с ответом сервера.
| Сообщение посчитали полезным: |
Ранг: 49.7 (посетитель) Активность: 0.02↘0 Статус: Участник
|
Создано: 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.03↘0 Статус: Участник
|
Создано: 31 августа 2007 19:28 · Личное сообщение · #10
Спасибо всем за ответы.
Запросы и ответы я смотрел в снифере. Ответ сервера такой же ....
Похоже по формуле вычисляется ответ
Застрял, и не ясно что делать дальше? Что хукать?
| Сообщение посчитали полезным: |
Ранг: 74.1 (постоянный), 34thx Активность: 0.03↘0 Статус: Участник
|
Создано: 31 августа 2007 19:33 · Личное сообщение · #11
Еще есть идея заменить сам SOAP сервак. Но если подсунуть проге wsdl файл как локальный, MSSoapInit возвращает ошибку...
Сам всдл файл прилагаю 19c2_31.08.2007_CRACKLAB.rU.tgz - kr.rar
| Сообщение посчитали полезным: |
Ранг: 106.6 (ветеран), 7thx Активность: 0.04↘0.02 Статус: Участник
|
Создано: 31 августа 2007 19:37 · Личное сообщение · #12
Rustem
Ну если ответ не фиксированный - рыть программу на тему извлечения алгоритма. На сам SOAP начхать.
| Сообщение посчитали полезным: |
Ранг: 74.1 (постоянный), 34thx Активность: 0.03↘0 Статус: Участник
|
Создано: 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.01↘0 Статус: Участник
|
Создано: 01 сентября 2007 00:01 · Личное сообщение · #14
в сторону подмены www.xxx.com на localhost в самой программе или в hosts и собственно сервера
| Сообщение посчитали полезным: |
Ранг: 218.5 (наставник), 2thx Активность: 0.09↘0 Статус: Участник
|
Создано: 01 сентября 2007 02:49 · Личное сообщение · #15
Чёт я не въеду. Ну хочется проге в Нет--и пущай се ходит, шоб не падала  И пущай получит се левый ответ--что мешает ПОТОМ заменить его на правильный??
| Сообщение посчитали полезным: |
Ранг: 106.6 (ветеран), 7thx Активность: 0.04↘0.02 Статус: Участник
|
Создано: 01 сентября 2007 09:46 · Личное сообщение · #16
Rustem
Начхать в том плане, что разберись, что программа с ответом делает.
| Сообщение посчитали полезным: |
Ранг: 16.7 (новичок) Активность: 0.01↘0 Статус: Участник
|
Создано: 01 сентября 2007 21:16 · Личное сообщение · #17
Тогда придётся ещё патчить и переписывать процедуру получения ответа. В любом случае.
Потому что может не быть интернета и сети вообще, тогда если менять данные надо имитировать http 200 и имитировать соединение что много...
| Сообщение посчитали полезным: |
 Ранг: 155.4 (ветеран) Активность: 0.14↘0 Статус: Участник Робо-Алкаш
|
Создано: 01 сентября 2007 22:32 · Личное сообщение · #18
John Freeman пишет:
Тогда придётся ещё патчить и переписывать процедуру получения ответа.
Нафига переписывать?
----- Researcher | Сообщение посчитали полезным: |
Ранг: 4.1 (гость) Активность: 0=0 Статус: Участник
|
Создано: 27 апреля 2009 22:16 · Личное сообщение · #19
Кароче с этой прогой все просто надо просто вшить ответ в exe и все ... там после всего это есть процедура пихания ответа в массив вот туда его и надо вшить.
| Сообщение посчитали полезным: |
 Ранг: 114.1 (ветеран) Активность: 0.09↘0 Статус: Участник
|
Создано: 27 апреля 2009 22:19 · Личное сообщение · #20
cyb_fh Ты видел дату создания темы, и ответы? Последний ответ 1 сентября 2007.
----- minimaL_patсh на руборде | Сообщение посчитали полезным: |
Ранг: 101.0 (ветеран), 344thx Активность: 1.15↘0 Статус: Участник
|
Создано: 27 апреля 2009 22:21 · Личное сообщение · #21
cyb_fh
| Сообщение посчитали полезным: |