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

 eXeL@B —› Вопросы новичков —› Изменение IP адреса в отладчике
Посл.ответ Сообщение

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

Создано: 04 января 2009 15:30
· Личное сообщение · #1

Всем доброго времени суток.
Сразу скажу что имею скудный опыт в реверсинге, но не судите строго.
Задача такова:
Имеется программа-клиент написанная на Delphi7 (без пакеров, криптеров).
Подключается к адресу 192.168.1.177 (не уточнил, но судя по логам это так).
Целью является изменение этого адреса на мой (ну тут я его пожалуй писать не буду? )
Пробовал просматривать прогу через WinHex, нашел там этот IP в текстовом виде.
Но к сожалению разрядность моего ip с исходным не совпадает, поэтому при "инсерте" 2х новых байт - программа просто приходит в негодность (ну это понятное дело).

Взял я ольку, начал исследовать прогу.
Результатов нет...в строках как ASCII так и в юникоде ip не нашел.
Пытался поискать места рядом с wsock'ом и inet_addr...но что-то не получилось (
Запускал отладку, ставил бряки, проглядывал стек - ничего не нашлось.

Задача вроде простая...поменять ip адрес, но мне пока такое видимо не по силам.
Прошу помощи, наводок...где искать, как итд.




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 04 января 2009 15:39
· Личное сообщение · #2

вообще-то это локальный ип...

-----
Do Not Get Mad Get Money! ;)




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

Создано: 04 января 2009 15:45
· Личное сообщение · #3

Ну то, что это локальный IP это я наверное сам знаю ъ
Смысл в его замене...именно замене.
Поэтому варианты со сменой ip, hosts - не катят никак, к сожалению.




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 04 января 2009 15:48
· Личное сообщение · #4

Abby пишет:
Но к сожалению разрядность моего ip с исходным не совпадает, поэтому при "инсерте" 2х новых байт


у тебя ип из 12 цифр что ли? что-то не вериццо...

-----
Do Not Get Mad Get Money! ;)




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

Создано: 04 января 2009 16:09
· Личное сообщение · #5

Мой IP тоже является локальным
Вообщем покопался я еще в ольке...наткнулся на такое вот.
Code:
  1. 0046C369  CALL cf.004043A0
  2. 0046C36E  PUSH EAX                                 ; /pAddr
  3. 0046C36F  CALL <JMP.&wsock32.inet_addr>            ; \inet_addr

Далее, по адресу 004043A0:
Code:
  1. 004043A0  TEST EAX,EAX
  2. 004043A2  JE SHORT cf.004043A6
  3. 004043A4  RETN
  4. 004043A5  DB 00
  5. 004043A6  MOV EAX,cf.004043A5
  6. 004043AB  RETN

Я в правильном направлении веду поиск?
Что-то я не особо понял...где и как идет получение ip адреса.
Да настораживает обращение к DB 00...или может я пока чего-то не понимаю?



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

Создано: 04 января 2009 16:13 · Поправил: _frmn
· Личное сообщение · #6

Пробовал просматривать прогу через WinHex, нашел там этот IP в текстовом виде.
...
Взял я ольку, начал исследовать прогу.
Результатов нет...в строках как ASCII так и в юникоде ip не нашел.

хмхм. в файле есть, а в загруженном образе нет? чтото не сходицо... или там оверлей?

при инсерте 2 байт после них надо бы ещё нолег инсертнуть.. а если там поскаль строки, то первый (нулевой) байт поправить




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 04 января 2009 16:26
· Личное сообщение · #7

Abby пишет:
Мой IP тоже является локальным

и смысл его так тщательно скрывать? ты бы выложил программку - так было бы проще...

-----
Do Not Get Mad Get Money! ;)





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 04 января 2009 16:34 · Поправил: coderess
· Личное сообщение · #8

Локальный IP-адрес получается при вызове подряд:gethostname, gethostbyname, inet_ntoa

Пример:

Code:
  1. invoke gethostname, offset lpbuffer,sizeof lpbuffer
  2. invoke gethostbyname,addr lpbuffer
  3. mov eax,[eax+12]                                        
  4. mov eax,[eax]
  5. mov eax,[eax]
  6. invoke inet_ntoa,eax


В EAX, твой локальный IP, можешь занопить вызовы и поместить свой IP-адрес
P.S. поставь бряки на эти Winsock API и будешь у цели
P.P.S. порт преобразовывается htons'ом

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




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

Создано: 04 января 2009 17:37 · Поправил: Abby
· Личное сообщение · #9

По поводу программы, не имею к сожалению разрешения на ее публикацию (
Иначе-бы выложил еще в начале темы.

Вместо этого могу выложить испытательную прогу на D7.
В ней одна кнопка и стандартный TTcpClient.
Нажатие кнопки соединяет сокет с ya.ru(213.180.204.8 : 80), и повторное нажатие отсоединяет.
Что самое интересное...я загрузил эту пробную вещь в оллю...и опять не могу найти IP.
Рылся возле inet_addr...там какая-та хрень в EAX'е образовывается =/
Да и код в тех местах выглядит аналогично как и в основной программе с которой я связался.
Быть может кому-нибудь удастся разобраться что к чему и я получу наводку где искать...

Прикрепляю эту прогу как аттач, компилировалось с оптимизацией и с полным набором дебаг-опций.
IP и порт помещен прямо в компонент (dt)

4c0a_04.01.2009_CRACKLAB.rU.tgz - Project1.rar




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

Создано: 04 января 2009 18:23
· Личное сообщение · #10

как ты рылся то? перед вызовом inet_addr в стек кладёца адрес где находица ип.

-----
zzz





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 04 января 2009 18:37
· Личное сообщение · #11

Я про Winsock API говорил, а не компонент TTcpClient

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




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

Создано: 04 января 2009 18:46
· Личное сообщение · #12

Abby
Почитал бы про отладку Delphi приложений - меньше бы вопросов было.
В ресурсах смотри: RCData->TFORM1
....
object TcpClient1: TTcpClient
RemoteHost = '213.180.204.8'
....



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 04 января 2009 18:50
· Личное сообщение · #13

если уж совсем затык то лезешь в добавление нового устройства выбираешь сетевая карта -> Microsoft -> Адаптер замыкания на себя и ставишь у него любой ип какой тебе понравится))



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

Создано: 04 января 2009 21:48
· Личное сообщение · #14

Черт побери...digger70, ну ты спас мну ))
Видите-ли народ...я иногда прогерю на делфе. Но дело до отладки Д приложений никогда не доходило.
Да и самой отладкой я не так часто занимаюсь, только если задача носит ургентный статус.
Конечно-же реверснуть проще приложения написанные на чистом winapi (C++), а не с борландовскими шлакоблоками.
Но все равно, всем помогающим спасибо. Полез я в rcdata :D

p.s Все-таки не ясно, почему я так и не смог найти ip во время дебага
Пожалуй ресурсы не решилиб проблему, если-бы сокет создавался в теле программы.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 04 января 2009 23:19
· Личное сообщение · #15

Не понял, почему в программировании, положил в новички.


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


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