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

 eXeL@B —› Вопросы новичков —› помогите с cleaner by kab
Посл.ответ Сообщение

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

Создано: 06 февраля 2011 13:08
· Личное сообщение · #1

Скачал сырки, понял что у меня нет SDK и где взять не знаю, так что собрать не получилось
1) Где можно взять SDK ?

Нашлись добрые люди подогнали скомпилированный плагин.
И вот... пишу Я тестовый патерн:
<!--
.text:00401195 53 push ebx
.text:00401196 E8 00 00 00 00 call $+5
.text:0040119B 5B pop ebx
.text:0040119C 83 C3 0B add ebx, 0Bh
.text:0040119F 87 1C 24 xchg ebx, [esp]
.text:004011A2 C3 retn
-->

<pattern name="usr-0">
<search>
53
E8 00 00 00 00
-m[var]
5B
83 C3 [var2:1]
87 -- 24
-s[var+var2]
C3
</search>
<replace>E9[var+var2]</replace>
</pattern>

и нифига не работает
помогите где, Я ошибаюсь?



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 06 февраля 2011 13:55 · Поправил: sendersu
· Личное сообщение · #2

nen777w пишет:
собрать не получилось

ето самый простой шаг, как ето не получилось, VS чтоли нету?

2) главное окно в IDA при запуске плагина - видно?
3) что плагин пишет в консоль вывода IDA?




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

Создано: 06 февраля 2011 14:17
· Личное сообщение · #3

Прекрасно СДК гуглится на строки типа Hex.Rays.IDA.Pro.Advanced.SDK.v5.7-CORE.rar, гуглом пользоваться научись.

| Сообщение посчитали полезным: nen777w

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

Создано: 06 февраля 2011 15:59
· Личное сообщение · #4

sendersu пишет:
ето самый простой шаг, как ето не получилось, VS чтоли нету?

VS - есть SDK для IDA нету, но говорят гуглицо прекрасно.

2) главное окно в IDA при запуске плагина - видно?
не понял вопроса?
Да если нажать Alt+Z на который забинден cleaner - да окно плагина появляется

3) что плагин пишет в консоль вывода IDA?
Cleaning code
Parsing configuration file
Result=4011A6 at Address=4011A2
Pattern usr-0 found at 401195



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

Создано: 06 февраля 2011 16:36
· Личное сообщение · #5

Скачал SDK. Собрал Cleaner....
Теперь другая фигя... Во первых он не детектит диапазон адреса в селектированной области.
Вместо Starting address и Ending address стоит Ending address (в том собраном что мне дали с этим было всё ок)

Теперь замена... она работает только получается фигня:
Например:

<pattern name="usr-0">
<search>
53
E8 00 00 00 00
-m[var]
5B
83 C3 [var2:1]
87 -- 24
-s[var+var2]
C3
</search>
<replace>E9[var+var2]</replace>
</pattern>

применяю на:
Code:
  1. .text:00401251 53                        push    ebx
  2. .text:00401252 E8 00 00 00 00    call    $+5
  3. .text:00401257 5B                        pop     ebx
  4. .text:00401258 83 C3 0A             add     ebx, 0Ah
  5. .text:0040125B 87 1C 24             xchg    ebx, [esp]
  6. .text:0040125E C3                       retn


получаю:
Code:
  1. .text:00401251 E9                        jmp     near ptr 8024B7h ; а должно было стать jmp 00401261
  2. .text:00401252 61 12 40 00 00    popa
  3. .text:00401257 5B                        pop     ebx
  4. .text:00401258 83 C3 0A              add     ebx, 0Ah
  5. .text:0040125B 87 1C 24              xchg    ebx, [esp]
  6. .text:0040125E C3                        retn



Во общем PLZ кто то может дать нормально работающий cleaner потому работа превращается в танцы с бубном вокруг плагина.




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 06 февраля 2011 17:51 · Поправил: BoRoV
· Личное сообщение · #6

Вообще-то проблема не в плагине, а в тебе.

Записывать нужно не адрес, а оффсет. Как пользоваться плагом я хз, в общем тебе нужно получить адрес куда ты вставляешь джамп (start), и т.к. ты используешь ниар джампы, то ещё берем его размер (5 байт) и получаем:

Code:
  1. <replace>E9[var+var2 - start - 5]</replace>


-----
Лучше быть одиноким, но свободным © $me


| Сообщение посчитали полезным: nen777w

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

Создано: 06 февраля 2011 18:02 · Поправил: nen777w
· Личное сообщение · #7

Да, Вы правы!
Я уже успел пофиксить это.
Только сделал короткий jmp - EB

Кстати надеюсь не нарушу правила форума.
Я скачал SDK пересобрал плаг и пофиксил баг с выбором адресов.
Если кому надо можно взять тут

Теперь вопрос... вот почистил Я код... дальше как это применить на exe-чину.
IDA ведь патчить не умеет.
Подскажите пожалуйста, Я в реверсинге новичок совсем.
Спасибо




Ранг: 109.3 (ветеран), 55thx
Активность: 0.060
Статус: Участник
Yes! I_m noob!

Создано: 15 февраля 2011 17:01
· Личное сообщение · #8

nen777w пишет:
Подскажите пожалуйста, Я в реверсинге новичок совсем.

Новичок начавший перевым делом собирать плагины для IDA o_0
nen777w пишет:
как это применить на exe-чину

Ты почистил не код, а его представление в IDA.
Чистить код и сохранять его надо в OllyDBG.
IDA - интерактивный дизассемблер. OllyDBG - отладчик.
Писал бы уж для OllyDBG чтоли и с неё бы начинал. В нём бы, если ручками, выделил бы всю область измененного кода и сохранил бы изменения.
з.ы. Патчинг в IDA - изврат. IDA - незаменимая весчь для разбора сложных алгоритмов, но никак не для патчинга.

-----
z+7v+/Lq4CAtIO/l8OL76SD44OMg6iDv8O7i4OvzLiCpIMPu7OXwINHo7O/x7u0=





Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 16 февраля 2011 08:37
· Личное сообщение · #9

А если кодить умеешь, то вообще бы писал в нативе, в десятки раз быстрее и алгосы какие хочешь применяй, благо есть отличные дизасмы сейчас.

-----
Yann Tiersen best and do not fuck





Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 18 февраля 2011 20:59 · Поправил: kioresk
· Личное сообщение · #10

nen777w,

Такие простые паттерны прощее расчистить с помощью скрипта для OllyDbg.
Загрузи дистрибутив ODbgScript, в нем есть документация по доступным командам.

Вот пример поиска твоего паттерна:

Code:
  1. mov  counter, 0
  2. gmi  eip, MODULEBASE
  3. mov  base,  $RESULT
  4. add  base, 1000
  5.  
  6. FindLoop:
  7. find base, #5?E800000005?83C???87??24C3#
  8. mov  addr, $RESULT
  9. cmp  addr, 0
  10. jz   Exit
  11.  
  12. // Вычисляешь адрес прыжка, заменяешь код и затираешь ненужные иструкции
  13. inc  counter
  14. jmp FindLoop
  15.  
  16. Exit:
  17. eval "Fixed patterns: {counter}"
  18. log  $RESULT, ""
  19. pause
  20. ret



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


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