Сейчас на форуме: -Sanchez- (+8 невидимых)

 eXeL@B —› Основной форум —› Использование IDA Pro
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 50 . 51 . >>
Посл.ответ Сообщение

Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 08 августа 2008 18:53
· Личное сообщение · #1

Здесь предлагаю обмениваться опытом использования, настройки этой тулзы.

Сегодня в Options->Color настроил основное окно дизассемблера все в старом классическом стиле Borland ща стало или в стиле Far(для справки первая версия была написана на Borland C++), но когда подносишь курсор на jne\je то в хинте появляется фон бежевый. Вот никак не могу найти место где это настраивается?! Может кто шарит ? )

-----
My love is very cool girl.




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

Создано: 03 апреля 2010 13:48
· Личное сообщение · #2

хотя есть вариант в исполнительном файле найти причину пофиксить(но только для того что бы нормально работать в IDA)
рабочим конечно же такой файл уже не будет


Зачем такие крайности, выше я уже написал как это исправить.

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 03 апреля 2010 14:35
· Личное сообщение · #3

вам просто повезло



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

Создано: 06 апреля 2010 04:21
· Личное сообщение · #4

progopis пишет:
reversecode
Мне генерируемый код на Си и сейчас не нравится. Мне проще руками сделать перевод кода на Си.

reversecode пишет:
progopis
я не знаю как можно ручками сделать перевод 9мб asm кода со смещениями в структурах вложеностью до 5 уровня


Не знаю как вам удаётся делать 9 Мб работоспособными автоматически, ибо:
Code:
  1. push    ebp
  2. mov     ebp, esp
  3. sub     esp, 0CCh
  4. push    ebx
  5. push    esi
  6. push    edi
  7. lea     edi, [ebp+var_CC]
  8. mov     ecx, 33h
  9. mov     eax, 0CCCCCCCCh
  10. rep stosd
  11. mov     eax, [ebp+r32]
  12. mov     cl, [ebp+val]
  13. ror     eax, cl
  14. pop     edi
  15. pop     esi
  16. pop     ebx
  17. add     esp, 0CCh
  18. cmp     ebp, esp
  19. call    j___RTC_CheckEsp
  20. mov     esp, ebp
  21. pop     ebp
  22. retn

F5:
Code:
  1. int __cdecl ROR(unsigned int r32, char val)
  2. {
  3.   return j___RTC_CheckEsp();
  4. }

Это конечно отладочная версия, но багов хватает и без этого. Да вы и сам о них знаете.



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

Создано: 06 апреля 2010 11:44 · Поправил: gena-m
· Личное сообщение · #5

Имеется функция:
Code:
  1. seg000:004121D0 ; =============== S U B R O U T I N E ==================================
  2. seg000:004121D0
  3. seg000:004121D0 ; Attributes: bp-based frame
  4. seg000:004121D0
  5. seg000:004121D0 ; int __stdcall xxxxx()
  6. seg000:004121D0 xxxxx           proc near               ; CODE XREF: StartAddress+B8p
  7. seg000:004121D0                                         ; StartAddress+156p ...
  8. seg000:004121D0
  9. seg000:004121D0 var_D4          = dword ptr -0D4h
  10. seg000:004121D0 var_D0          = dword ptr -0D0h
  11. seg000:004121D0 Src             = byte ptr -0CCh
  12. seg000:004121D0 var_8C          = byte ptr -8Ch
  13. seg000:004121D0 var_14          = dword ptr -14h
  14. seg000:004121D0 var_8           = dword ptr -8
  15. seg000:004121D0
  16. seg000:004121D0                 sub     esp, 0D8h
  17. seg000:004121D6                 mov     eax, ds:dword_4A8F78
  18. seg000:004121DB                 xor     eax, esp
  19. seg000:004121DD                 mov     [esp+0D8h+var_8], eax
  20. seg000:004121E4                 push    ebx             ; Int
  21. seg000:004121E5                 push    esi             ; Int AppendMenuW
  22. seg000:004121E6                 push    edi             ; Int
  23. seg000:004121E7                 lea     edi, [esp+0E4h+Src]
  24. seg000:004121EB                 call    get_password
  25. seg000:004121F0                 lea     eax, [esp+14h]
  26. seg000:004121F4                 push    eax             ; int
  27. seg000:004121F5                 mov     ecx, edi
  28. seg000:004121F7                 push    ecx             ; Src
  29. seg000:004121F8                 lea     esi, [esp+18h]
  30. seg000:004121FC                 lea     ebx, [esp+60h]
  31. seg000:00412200                 call    sub_411E40
  32. seg000:00412205                 add     esp, 8
  33. seg000:00412208                 test    eax, eax
  34. seg000:0041220A                 jnz     short loc_412224
  35. seg000:0041220C                 pop     edi
  36. seg000:0041220D                 pop     esi
  37. seg000:0041220E                 pop     ebx
  38. seg000:0041220F                 mov     ecx, [esp+0D0h]
  39. seg000:00412216                 xor     ecx, esp
  40. seg000:00412218                 call    sub_446C14
  41. seg000:0041221D                 add     esp, 0D8h
  42. seg000:00412223                 retn
  43. seg000:00412224 ; ---------------------------------------------------------------------- -----
  44. seg000:00412224
  45. seg000:00412224 loc_412224:                             ; CODE XREF: xxxxx+3Aj
  46. seg000:00412224                 mov     eax, ds:dword_5089B8
  47. seg000:00412229                 test    eax, eax
  48. seg000:0041222B                 jz      short loc_412234
  49. seg000:0041222D                 lea     edx, [esp+18h]
  50. seg000:00412231                 push    edx
  51. seg000:00412232                 call    eax ; dword_5089B8
  52. seg000:00412234
  53. seg000:00412234 loc_412234:                             ; CODE XREF: xxxxx+5Bj
  54. seg000:00412234                 cmp     ds:dword_5090C0, 0
  55. seg000:0041223B                 jnz     short loc_41225D
  56. seg000:0041223D                 mov     eax, [esp+14h]
  57. seg000:00412241                 push    eax
  58. seg000:00412242                 lea     ecx, [esp+5Ch]
  59. seg000:00412246                 push    ecx
  60. seg000:00412247                 call    ds:off_4AB2FC
  61. seg000:0041224D                 call    ds:dword_4AB2F4
  62. seg000:00412253                 mov     ds:dword_5090C0, 1
  63. seg000:0041225D
  64. seg000:0041225D loc_41225D:                             ; CODE XREF: xxxxx+6Bj
  65. seg000:0041225D                 mov     ecx, [esp+0DCh]
  66. seg000:00412264                 mov     edx, [esp+10h]
  67. seg000:00412268                 pop     edi
  68. seg000:00412269                 pop     esi
  69. seg000:0041226A                 pop     ebx
  70. seg000:0041226B                 xor     ecx, esp
  71. seg000:0041226D                 mov     ds:dword_4FA1B4, edx
  72. seg000:00412273                 mov     eax, 1
  73. seg000:00412278                 call    sub_446C14
  74. seg000:0041227D                 add     esp, 0D8h
  75. seg000:00412283                 retn
  76. seg000:00412283 xxxxx           endp ; sp-analysis failed
  77.  

Ида говорит "sp-analysis failed" - в результате ерунда с адресацией переменных в стеке.

Вначале стоял тип вызова _stdcall , заменил на _fastcall, по моему это правильнее, посколку через стек ничего не передается, стек функция очищает сама. То что из функции два выхода - мало верится, что именно это путает Иду, поскольку это распространенное явление, что то здесь другое не то.
Как эту функцию привести в "нормальный" вид (только без фанатизма - типа"сделать файл нерабочим", тем более что Ида с файлом не работает и если патчить, то на файле это никак не отражается) ?

Vamit да, вы совершенно правы, после разбора этих ввызовов все стало на свои места, спасибо, кстати тип вызова оставил измененным, потому что там точно не _stdcall

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше





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

Создано: 06 апреля 2010 12:25 · Поправил: Vamit
· Личное сообщение · #6

gena-m пишет:
Как эту функцию привести в "нормальный" вид

Правило простое: проверяй стековое смещение (вершину стека) на всех точках push, pop, call, т.е. везде где она меняется и найдешь где Ида ошибается. Это скорее всего происходит при вызове табличных (по offset'у) функций или виртуальных, которые после вызова сами за собой чистят стек от аргументов, а т.к. Ида не может распознать (найти) тело такой функции, то и стек в этом случае не подчищается.
В твоем случае стоит обратить внимание на вызова:
call eax, call ds:off_4AB2FC и call ds:dword_4AB2F4, т.к. перед ними есть изменение стека (push), а после их вызова нет, значит они должны почистить стек за собой сами, следовательно вручную (Alt-K) меняешь вершину стека в нужных точках.

gena-m пишет:
Вначале стоял тип вызова _stdcall , заменил на _fastcall, по моему это правильнее

А вот это лучше не трогать, в таких случаях Ида редко ошибается.

-----
Everything is relative...




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

Создано: 24 апреля 2010 09:10
· Личное сообщение · #7

Вопрос на засыпку
Как указать Иде чтоб она сделала аналог вот такого действия:

из cmd.exe:
someapp.exe < some_file.dat > file2.dat

ida:
?

То есть вопрос в том как задать параметр редиректа входного и выходного потоков
Debugger -> Process Options -> Parameters уже испробовал вдоль и поперек, но мож чего и упустил
Спасибо



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

Создано: 30 апреля 2010 09:17
· Личное сообщение · #8

Ребят, пользуюсь дебаггером IDA.. но возникла проблема - исследуемое приложение загружает некую дллку в память и IDA почему-то её не дизассемблит. Вот собственно и вопрос - как заставить её разбирать подгружаемые к процессу DLL-ки?



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 30 апреля 2010 10:01
· Личное сообщение · #9

Делать плагин. Ида дизасмит только то, что у нее в базе.

-----
Реверсивная инженерия - написание кода идентичного натуральному




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

Создано: 30 апреля 2010 10:34
· Личное сообщение · #10

А готовых решений под это нет?



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

Создано: 30 апреля 2010 14:03 · Поправил: gena-m
· Личное сообщение · #11

Есть и готовые решения, сразу загружать длл в базу скриптом.

aa76_30.04.2010_CRACKLAB.rU.tgz - pe_scripts.zip

-----
Надежда - есть худшее из зол, ибо она продлевает наши страдания.© Ф. Ницше




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

Создано: 30 апреля 2010 14:31
· Личное сообщение · #12

Привет всем, надо распотрашить прошивку сотика с ARM7 процом AD6720 ,как правильно подключить к IDA ?получается както не то, а с ARM она работает ??кто что подскажет?

1429_30.04.2010_CRACKLAB.rU.tgz - arm.JPG



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 30 апреля 2010 14:57
· Личное сообщение · #13

Всё там с ARM отлично работает.
Прошивка в каком формате, дамп бинарный?
Ты уверен что она по нулевому адресу грузится как у тебя, что точка входа в начале?
'C' жать пробовал на первом байте в сегменте кода?



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

Создано: 30 апреля 2010 15:07
· Личное сообщение · #14

прошивка сдесь http://profimobile.ru/listfiles/subcat=24& LG KG-225 ,бинарника 2 шт, я дизасемблил который ~ 10 м ,начало вроде с 0000
может пошивка не в бинарнике, тогда в каком виде ?? вроде у сотовых всегда бинарники для заливки,может ошибаюсь
От модератора: правкой не умеешь пользоваться?



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 30 апреля 2010 19:42 · Поправил: cppasm
· Личное сообщение · #15

Это не бинарные файлы (не чистый дамп прошивки) - их нельзя сразу грузить в Иду.
Найди формат *.mot файлов и разберись как их грузить в Иду или сконвертить в чистый бинарь.
Вот здесь есть конвертер: http://www.mcumall.com/comersus/store/mcumall_download.asp
Домашнее задание - узнать по какому адресу этот бинарь потом грузить.



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

Создано: 30 апреля 2010 20:34
· Личное сообщение · #16

to cppasm : спасиб за помощ попробую разобратся



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

Создано: 18 июня 2010 16:37
· Личное сообщение · #17

Доброго всем дня,тут слил с просторов ида 5.5 .87 метров длинной ну вопросик такой будет мож ктонить заделится лекарством для него,плиз (в личку). И кстате чтото тут никак эту версию невыкладывают на краклабе,вроде уж давно вышла ...странно,поначалу думал что тут частенько обновления идут.За ранее спасибо всем откликнувшимся.




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

Создано: 18 июня 2010 16:43
· Личное сообщение · #18

вылаживали, и если это она, то там все должно быть вместе, кейген встроен

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




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

Создано: 18 июня 2010 17:48
· Личное сообщение · #19

Barma
Думаю Это Вам Поможет !
http://www.exelab.ru/f/action=vthread&forum=3&topic=15481



Ранг: 40.4 (посетитель), 3thx
Активность: 0.080
Статус: Участник

Создано: 24 июня 2010 12:45
· Личное сообщение · #20

У меня вопрос по использованию IDA. Как в ней найти какую-нибудь ассамблерную команду? В Olly например, это можно было сделать Ctrl+F и вводим нужную нам команду.



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

Создано: 24 июня 2010 13:22
· Личное сообщение · #21

Искать либо текстовое представление инструкции, либо узнать её машинный код и искать как последовательность байт. Первый способ не работает, если инструкция была распознана как данные.



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

Создано: 30 июня 2010 15:14
· Личное сообщение · #22

Всем привет!
Уж не знаю, правильно ли выбрал раздел и топик для своей просьбы, но тем не менее:

Сейчас занимаюсь декомпиляцией до рабочего состояния огромного проекта (игры) и мучаюсь с глюками хексрейз 1.1
Может ли кто-то из владельцев Хексрейз 1.2 сгенерить и выслать си-шный листинг моего .ехе?

По ссылке .ехе & .idb ifolder.ru/18366082

Заранее спасибо!



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

Создано: 01 июля 2010 08:50
· Личное сообщение · #23

xdiablo я плачу.... ты разрабов лучше попроси сорцы игры выслать

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




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

Создано: 01 июля 2010 09:36
· Личное сообщение · #24

Файл скачало 4 человека, а так никто и не выслал

VodoleY
разрабов просил, морозятся...
на самом деле, процентов 30 исходников уже перебрано и работает, просто всякие операции с плавающей точкой и часть функций приходится переводить с асма вручную, что замедляет процесс



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

Создано: 02 июля 2010 00:18
· Личное сообщение · #25

давеча увидел в Иде

cmp ecx, stackMgk
jnz short loc_44D5C5
rep retn << что ето?
loc_44D5C5: ; CODE XREF: chkStack+6j
jmp ___report_gsfailure



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

Создано: 02 июля 2010 05:36
· Личное сообщение · #26

Есть на Wasm'e, ссылк wasm.ru/forum/viewtopic.php?pid=204882#p204882:

"НАШЕЛ *YAHOO*:

AMD x86-64 processors cannot predict single-byte near RET instructions
when they are either the target of a branch or immediately preceded by a
conditional branch. (See section 6.2 in the Athlon 64/Opteron
optimization guide)

AMD's recommended solution is to either reorder instructions so that
this situation does not occur, or use the REP prefix on the RET
instruction.

Recent versions of GCC will do this automatically, but glibc contains
many hand written assembly routines.

The attached patch changes all (that I found, anyway) relevant RET
instructions to REP RET.

Ах, да ссылка: h++p://www.cygwin.com/ml/libc-alpha/2004-12/msg00022.html
Отредактировано NickLion (07-10-2007 10:01:42)"



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

Создано: 02 июля 2010 07:27
· Личное сообщение · #27

svladim
спасибо
у мя правда x32 проц, но все равно интересно! (скажем так масм сказал гав та такое)



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

Создано: 02 июля 2010 08:41
· Личное сообщение · #28

Можете поведать методологию поиска нужного места в программе при отладке в IDA?
Есть телефонный справочник. В стандартном MDB-шнике данные зашифрованы, причем каждое поле по-своему. Почти все поля удалось расшифровать, а одно - никак
Так вот как в IDA найти функцию в которой происходит расшифровка данных?
Если интересны мои потуги, обсуждалось тут:
forum.sources.ru/showtopic=307509



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

Создано: 02 июля 2010 09:45 · Поправил: VodoleY
· Личное сообщение · #29

=sand= если там действительно ХОР с БЕЙС 64 и там заведомо ток цифры проще пробрутить на предмет поиска хор маски имхо. вариантов не так уж много
З.ы. и Почитай по поводу бейс64 она имеет в конце == если я не ошибаюсь, маску подобрать будет гораздо легче

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....




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

Создано: 02 июля 2010 13:31
· Личное сообщение · #30

Я точно также уверен, что сначала нужно Base64 декодировать Main_tel, но что делать потом?



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

Создано: 02 июля 2010 19:44 · Поправил: VodoleY
· Личное сообщение · #31

=sand= мля Base64 атаковать нет смыла. есть подозрения ты не понимаешь о чем спрашиваеш. + топик не тот арчи разозлица
З.Ы. закажи лом будет дешевле

-----
Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме....



<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 50 . 51 . >>
 eXeL@B —› Основной форум —› Использование IDA Pro
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати