| Посл.ответ |
Сообщение |
|
Создано: 8 августа 2008 18:53:50 Личное сообщение #1
Здесь предлагаю обмениваться опытом использования, настройки этой тулзы.
Сегодня в Options->Color настроил основное окно дизассемблера все в старом классическом стиле Borland ща стало или в стиле Far(для справки первая версия была написана на Borland C++), но когда подносишь курсор на jne\je то в хинте появляется фон бежевый. Вот никак не могу найти место где это настраивается?! Может кто шарит ? )
----- My love is very cool girl.
|
|
|
Создано: 28 ноября 2008 19:32:46 Личное сообщение #2
В лом читать перепалку,потому скажу по существу! Кряклаб это место специалистов и если кто-то чего-то не выдает и этот чел не ньюб,значит есть на то причины и остается только принять его решение!
ЗЫ:
никто не ковырял Bindiff ? че это ? Дурь или все-таки кому-то понадобилась ? Если да то в чем фишка ?
----- My love is very cool girl.
|
|
Создано: 28 ноября 2008 20:24:04 Личное сообщение #3
Демону за срач будет бан, если продолжать будет.
БинДифф не ковырял, используется он для создания сплоитов по вышедшему патчу.
|
|
Создано: 28 ноября 2008 20:36:21 Личное сообщение #4
=TS= пишет:
Последний раз по этой теме -- тупо
А я тебе последний раз объясняю - что ты, постарайся понять про что тебе пишут, а не амбициозные посты клепай
Я у тебя попросил, - ты сказал: не дам, хочешь реверси.. все! у меня к тебе вопросов не было!!! (мне непонятно че ты начал лезть в наш разговор с Ultras? – со своими комментами – смешной, не смешной)
У меня есть(были) идеи по 12 настройкам дополнительным на твой плуг(мне так проще/быстрее было накодить самому, чем описывать что нужно добавить в плагин – да-да, вот так бывает быстрее накодить самому, чем объяснять – ну и гарантии нет что чел сможет асилить, то что ему напишут, тут еще 50на50 да и времени очень много может уйти на очевидные вещи(я тут кстати очень часто убеждался в этом что напишешь, а РЕАЛИЗАЦИИ НЕТ(ну пожалуй исключение фантомка только) – так лучше самому накодить))
Я у тебя попросил исходники чтобы ты выложил, чтобы потом я добавил свой код – в том что у плагина несколько разработчиков – это, не есть лольно!
Ну вот ты утверждаешь что сделаешь – хорошо вот попробуй реализовать парочку из двенадцати надстроек
1. нужно добавить чекобокс при установке которого выполнялось следующие действие
При открытии любой базы(сделанной ранее) чтобы эти настройки(сделанные ранее в твоем плагине) тоже действовали
Как у тебя сейчас при открытии базы: надо лезть заново их настраивать(это должно быть только, если не установлен чекобокс)
2. мелочь но приятно будет – когда меняешь настройки в твоем окне Options, чтобы изменения делались сразу в окне ИДЫ!, а не после нажатия OK, а вот если нажать ОТМЕНА, все возвращалось к старому как раньше, до изминений – так визуально удобнее будет удобно сразу видно на что влияет та или другая опция
У меня в принципе есть сомнение что я плохо описал эти опции, но думаю что ты ее уже пробовал реализовать..
Надеюсь вопрос не в грубой форме, и не будет ответа: - мне такая опция нах не нужна, я ее делать не буду
Если она вам нужна – реверсите и пишите сами
Archer пишет:
Демону за срач будет бан
жжошь? - бань
----- ЗЫ: истЕна где-то рядом, Welcome@Google.com
|
|
Создано: 28 ноября 2008 22:42:04 Личное сообщение #5
Demon666
Это все конечно хорошо, вопрос масштабный и умный. Но скажи мне, о мудрейший, как павидло в конфетку попадает ?
----- My love is very cool girl.
|
|
Создано: 29 ноября 2008 05:42:16 Личное сообщение #6
Насчет времени окончании лицензии hexrays.
Походу можно пропатчить hexrays.plw:
Comparing files HEXRAYS_ORIG\hexrays.plw and HEXRAYS.PLW
000FCCDC: 70 00
000FCCDD: 83 00
000FCCDE: 2C 00
000FCCDF: 49 00
Время хранится в dword_100FE0DC. (В оригинале там 0x492C8370).
Есть еще один статик -- dword_100FE0D8 (boolean isNotUpdatable). Там -- 0x00000000. т.е. update возможен.
При dword_100FE0DC == 0 && dword_100FE0D8 == 0 goto LABEL12 --> goto LABEL17 --> hexrays OK .
Процедура проверки даты:
signed int __cdecl sub_1000AE90()
{
char ST24_1_0; // ST24_1@0
signed __int64 v1; // edi@1
__int64 v2; // qax@2
int v3; // ecx@3
signed __int64 v4; // qax@4
char *v5; // ST1C_4@7
char *v6; // ST20_4@7
signed int result; // eax@16
int v8; // edx@1
unsigned __int8 v9; // cf@4
byte_10101FE0 = callui(47) != 0;
*(_DWORD *)&v1 = sub_100B5F01(0);
*((_DWORD *)&v1 + 1) = v8;
if ( !(dword_100FE0CC & 0x80000000) )
return 0;
v2 = dword_100FE0DC;
if ( !dword_100FE0DC )
goto LABEL_12;
v3 = dword_100FE0D8;
if ( !dword_100FE0D8 )
{
v9 = (_DWORD)v2 < (_DWORD)v1;
*(_DWORD *)&v4 = (_DWORD)v2 - (_DWORD)v1;
*((_DWORD *)&v4 + 1) -= v9 + *((_DWORD *)&v1 + 1);
if ( *((_DWORD *)&v4 + 1) > 0 )
goto LABEL_17;
if ( *((_DWORD *)&v4 + 1) >= 0 && (_DWORD)v4 )
{
if ( v4 >= 2592000 )
goto LABEL_17;
v6 = "http://www.hex-rays.com";
v5 = "AUTOHIDE REGISTRY\nHIDECANCEL\nThe technical support period of the Hex-Rays decompiler\nwill expire soon. Please update your license for\nuninterrupted technical support and updates.For more information please visit %s";
}
else
{
v6 = "http://www.hex-rays.com";
v5 = "AUTOHIDE REGISTRY\nHIDECANCEL\nThe technical support period of the Hex-Rays decompiler\nhas expired. You have 3 month grace period to update your license.\nThe grace period is counted from the expiration date.\nFor more information please visit %s";
}
if ( ((_DWORD (__cdecl *)(char *, char *, char *, signed int, char *, char))sub_1000A140)(
"http://www.hex-rays.com",
"OK",
Class,
1,
v5,
(char)v6) > 0 )
callui(55);
LABEL_12:
v3 = dword_100FE0D8;
if ( !dword_100FE0D8 )
goto LABEL_17;
}
if ( v1 >= v3 )
{
if ( sub_1000A140(
"http://www.hex-rays.com",
"OK",
Class,
1,
"AUTOHIDE REGISTRY\nHIDECANCEL\nSorry, your Hex-Rays license has been expired.\nFor more information please visit %s",
(char)"http://www.hex-rays.com") > 0 )
callui(55);
return 0;
}
LABEL_17:
if ( (unsigned __int8)sub_1000A3E0() )
{
if ( *((_DWORD *)ph + 1) )
{
if ( get_plugin_options("hexrays") )
qexit(1);
result = 0;
}
else
{
sub_10092EE0(0);
sub_100209A0(1);
read_user_config_file("hexrays", sub_1000A1A0, 0);
off_101007DC();
sub_10041CD0();
hook_to_notification_point(3, sub_1000A3A0, 0);
hook_to_notification_point(0, sub_1000A3C0, 0);
hook_to_notification_point(1, sub_1003B310, 0);
if ( byte_10101FE0 )
{
sub_1000A0B0("File/Produce/Create HTML", "Create ~C~ file...", "Ctrl-F5", 1, sub_1000A6D0, 0);
sub_1000A0B0("View/Open/Hex", "Pseudocode", "F5", 1, sub_1000A370, 0);
sub_1000A0B0("Help/Check", "Send database", 0, 1, sub_1000AA10, 0);
}
else
{
sub_1000A0B0("File/Produce/Produce DIF", "Produce ~C~ file...", "Ctrl-~", 1, sub_1000A6D0, 0);
}
sub_1000A0F0(
"%s plugin has been loaded (v%s)\n License: %s %s (%d user%s)\n The hotkeys are %s: decompile, %s: decompile all.\n Please check the Edit/Plugins menu for more informaton.\n",
(char)"Hex-Rays");
if ( dword_10101FE4 < 520 )
sub_1000AD90();
result = 2;
}
}
else
{
sub_1000A0F0("Hex-Rays: could not determine IDA version\n", ST24_1_0);
result = 0;
}
return result;
}
|
=TS= Ранг: 213.0 (наставник) Статус: Участник # Malware KilleR #
|
Создано: 29 ноября 2008 12:16:16 Личное сообщение #7
Demon666 пишет:
1. нужно добавить чекобокс при установке которого выполнялось следующие действие
При открытии любой базы(сделанной ранее) чтобы эти настройки(сделанные ранее в твоем плагине) тоже действовали
Как у тебя сейчас при открытии базы: надо лезть заново их настраивать(это должно быть только, если не установлен чекобокс)
Сейчас настройки плага хранятся в каждой конкретной базе. При первом вызове плага берутся настройки в иде по-умолчанию. При последующих -- результаты предыдущих вызовов плага для ЭТОЙ базы.
Нужны кнопки Save / Load default settings, при нажатии которых будет сохранятся/загружаться некая рабочая конфигурация?
Demon666 пишет:
2. мелочь но приятно будет – когда меняешь настройки в твоем окне Options, чтобы изменения делались сразу в окне ИДЫ!, а не после нажатия OK, а вот если нажать ОТМЕНА, все возвращалось к старому как раньше, до изминений
В текущей реализации диалогового апи в IDA (по крайней мере в SDK 5.2) НЕТ CALLBACKов на изменения состояния элементов диалога, а только на нажатия кнопок. Поэтому невозможно отследить изменение состояния элементов диалога, созданного с помощью диалогового апи в IDA.
Demon666 пишет:
так визуально удобнее будет удобно сразу видно на что влияет та или другая опция
Для этого были добавлены всплываюие подсказки (хинты)
----- DREAMS CALL US
|
|
Создано: 30 ноября 2008 03:07:45 Личное сообщение #8
вместо этих слов, мог быть написан полезный код.
=TS=
Более подробно о первой опции
Что имеем
два тест файла 1_test.exe и 2_test.exe
запускаем ИДУ, НО при этом у нас НЕ установлен твой плагин(или установлен(это не суть важно), но настройки трогать этот раз НЕ БУДЕМ)
открываем 1_test.exe, после того как ИДА проанализирует этот тест файл – закрываем ИДУ сохраняя базу нажав на OK
теперь УСТАНАВЛИВАЕМ твой плагин и запускаем ИДУ, НО при этом у нас уже установлен твой плагин
открываем 2_test.exe, после того как ИДА проанализирует этот тест файл открываем окно настроек плагина и там устанавливаем, ну к примеру
Show opcodes
И у опций Instructions indention 0 и у Opcode length 10
(кстати там убогие комбобоксы, такие страшные ужаснах, куда симпотнее и функциональнее подходят Editы с встроенными в них msctls_updown32 - ИМХО)
Жмем OK
Теперь закрываем ИДУ, сохраняя базу нажав на OK
Теперь открываем (у нас уже установлен твой плагин) 1_test.idb и что мы видим?
А вот именно, ничего! – придется опять лезть в настройки и выставлять все заново
Когда база одна, тут хс., а вот если их 20-30? Что во всех лазить выставлять?
Для этого и нужна опция 1 чтобы открыв 1_test.idb были применены настройки сделанные в 2_test.exe
Назовем это настройками для всех открываемых баз(глобальные), но если отключить эту опцию, то настройки действуют только на ту базу(локальную) которая на данный момент открыта(там еще есть пара мелочей отслеживание за настройками что в базе и глобальными, но да хс. это уже не столь так и важно)
Получается твой плагин от стандартного диалога настроек далеко и не ушел, разницца только в Shift-O
ЗЫ: лучше я уже врятли смогу объяснить, даже представить не могу, как уже подробнее описать
=TS= пишет:
В текущей реализации диалогового апи в IDA (по крайней мере в SDK 5.2) НЕТ CALLBACKов на изменения состояния элементов диалога
а может просто взять и реализовать через WIN32 API DialogBoxParam и обрабатывать сообщения приходящие от контролов(формочек, бгг) тут и изменения будут сразу в окне ИДЫ, да и подсказки сделать на русском ;)
P. S.
кстати вот это реальный показатель в каком жопе находятся дзенствующие за ООП
ООП – ИМХО, это консервная банка для кодера(минимум интеллекта, лень в первые ряды и в гугл тупо на поиски компонентов/классов итд.) %))
если нет этой реализации в убогом VC-кхе-кхе, то значит и я ее делать не буду - ЖЕСТЬ
---------------------------------------------------------------------- ---------
Так, теперь что мы имеем.. да нихрена! Отказ от реализации второй опции, много букафф в описании(2-х разовом) первой опции(а их(опций) 12)
ИМХО - вот это лольно
Чтобы могло бы быть, выложив ты исходники в паблик
Через пару дней я добавил бы эти 12 опций и тот кто хотел бы, их юзал + имея на руках исходники
А не ждал бы, пока аффтар жив.. может он асилит хоть одну опцию из двух?.....
ЗЫ: вот именно в этом и была истЕна ;)
Засим постить(срать) здесь больше не буду
http://code.google.com/p/idapython/
http://www.fantom-lab.narod.ru/Python/LerningNoName/IndexNoName.html
----- ЗЫ: истЕна где-то рядом, Welcome@Google.com |
|
Создано: 1 декабря 2008 07:37:39 Личное сообщение #9
svladim пишет:
Насчет времени окончании лицензии hexrays.
Походу можно пропатчить hexrays.plw:
Comparing files HEXRAYS_ORIG\hexrays.plw and HEXRAYS.PLW
000FCCDC: 70 00
000FCCDD: 83 00
000FCCDE: 2C 00
000FCCDF: 49 00
Вроде бы помогло  по крайней мере (изменил 49 на 50) у меня до 2012 года не будет ругаться
|
|
Создано: 1 декабря 2008 14:11:32 Личное сообщение #10
А просто поставить чекбокс "не задалбывай" уже не тру?
Она просто напоминает постоянно что лицензия на ПОДДЕРЖКУ истекла.
Сам HexRays прекрасно работает.
|
|
Создано: 2 декабря 2008 00:00:35 Личное сообщение #11
Народ сведующий, подскажите плз, как в иде сделать чтобы русские строки в коде нормально показывало
А то показывает вот это:
- seg000:0045F720 unk_45F720 db 0CEh
- seg000:0045F721 db 0E3h
- seg000:0045F722 db 0F0h
- seg000:0045F723 db 0E0h
- seg000:0045F724 db 0EDh
- seg000:0045F725 db 0E8h
- seg000:0045F726 db 0F7h
- seg000:0045F727 db 0E5h
- seg000:0045F728 db 0EDh
- seg000:0045F729 db 0EDh
- seg000:0045F72A db 0E0h
- seg000:0045F72B db 0FFh
- seg000:0045F72C db 20h
- seg000:0045F72D db 0E2h
- seg000:0045F72E db 0E5h
- seg000:0045F72F db 0F0h
- seg000:0045F730 db 0F1h
- seg000:0045F731 db 0E8h
- seg000:0045F732 db 0FFh
- seg000:0045F733 db 20h
- seg000:0045F734 db 0EFh
- seg000:0045F735 db 0F0h
- seg000:0045F736 db 0EEh
- seg000:0045F737 db 0E3h
- seg000:0045F738 db 0F0h
- seg000:0045F739 db 0E0h
- seg000:0045F73A db 0ECh
- seg000:0045F73B db 0ECh
- seg000:0045F73C db 0FBh
- seg000:0045F73D db 2Ch
- seg000:0045F73E db 20h
- seg000:0045F73F db 0EFh
- seg000:0045F740 db 0EEh
- seg000:0045F741 db 0E6h
- seg000:0045F742 db 0E0h
- seg000:0045F743 db 0EBh
- seg000:0045F744 db 0F3h
- seg000:0045F745 db 0E9h
- seg000:0045F746 db 0F1h
- seg000:0045F747 db 0F2h
- seg000:0045F748 db 0E0h
- seg000:0045F749 db 2Ch
- seg000:0045F74A db 20h
- seg000:0045F74B db 0E7h
- seg000:0045F74C db 0E0h
- seg000:0045F74D db 0F0h
- seg000:0045F74E db 0E5h
- seg000:0045F74F db 0E3h
- seg000:0045F750 db 0E8h
- seg000:0045F751 db 0F1h
- seg000:0045F752 db 0F2h
- seg000:0045F753 db 0F0h
- seg000:0045F754 db 0E8h
- seg000:0045F755 db 0F0h
- seg000:0045F756 db 0F3h
- seg000:0045F757 db 0E9h
- seg000:0045F758 db 0F2h
- seg000:0045F759 db 0E5h
- seg000:0045F75A db 20h
- seg000:0045F75B db 0EFh
- seg000:0045F75C db 0F0h
- seg000:0045F75D db 0EEh
- seg000:0045F75E db 0E3h
- seg000:0045F75F db 0F0h
- seg000:0045F760 db 0E0h
- seg000:0045F761 db 0ECh
- seg000:0045F762 db 0ECh
- seg000:0045F763 db 0F3h
- seg000:0045F764 db 2Eh
- seg000:0045F765 db 0
- seg000:0045F766 db 0
- seg000:0045F767 db 0
или это:
- seg000:0045F720 aURasXaarTxSQUuRQucriSRCrXu db '+уЁрэшўхээр',0FFh,' тхЁёш',0FFh,' яЁюуЁрььv, яюцрыєщёЄр, чрЁхушёЄЁшЁєщЄх '
- seg000:0045F720
- seg000:0045F720 db 'яЁюуЁрььє.',0,0,0
вместо:
- 'Ограниченная версия программы, пожалуйста, зарегистрируйте программу.'
|
|
Создано: 2 декабря 2008 19:55:59 Личное сообщение #12 |
|
Создано: 2 декабря 2008 20:01:50 Личное сообщение #13
Уже писалось об этой проблеме (ищи по названию плага cyrplug - по моему так он называется).
|
|
Создано: 2 декабря 2008 20:28:09 · Поправил: Kiev78 Личное сообщение #14
У меня такой вопрос: скачал с тутсфорью сигнатуры к ИДе (здесь - hттp://tuts4you.com/download.php?view.2413) а они блин не пашут. У кого-то вообще они работают? У меня ИДА 5.2 (краклабовская). Если быть конкретным, то меня интересует только сигна к FlexLM 10.8  .
|
|
Создано: 17 декабря 2008 16:50:37 · Поправил: theCollision Личное сообщение #15
Есть вопрос , может кому-нить покажется интересным. В HIEW я могу задать адрес так, чтобы от него отсчитывались оффсеты. Есть ли подобная фича в IDA ?
вот пример, того как показываются оффсеты в hiew:
- 00000000: 55 push ebp
- 00000001: 8BEC mov ebp,esp
- 00000003: B925000000 mov ecx,000000025
- 00000008: 6A00 1push 0
- 0000000A: 6A00 push 0
- 0000000C: 49 dec ecx
- 0000000D: 75F9 jnz 000000008 --↑
точно такого же хочется и в IDA
----- My love is very cool girl. |
|
Создано: 1 января 2009 22:08:44 Личное сообщение #16
Вот такой скрипт вызывает ошибку в IDA 5.0:
Может конечно и не поддерживается это в 5.0, но у знакомого также ругается и в 5.2.
Какие идеи?
|
|
Создано: 1 января 2009 22:27:12 · Поправил: Ultras Личное сообщение #17
progopis, сохранить всё это в файл с расширением .idc и открыть в IDA через File->IDC File.
В окне IDC Command нельзя делать инклуды. Насколько я помню, в хэлпе об этом написано.
----- .[ rE! p0w4 ].
|
|
Создано: 1 января 2009 22:29:55 Личное сообщение #18
Ultras
Спасибо!
А #define можно делать в *.idc? В смысле если я хочу не через AddConstEx.
|
|
Создано: 1 января 2009 22:30:42 Личное сообщение #19
theCollision
В иде этот офсет показывается в статусной строке. Переключить, имхо, нельзя.
progopis
Идеи: попытка использовать это в окне выполнения скрипта, вместо файла скрипта
|
|
Создано: 1 января 2009 22:31:55 Личное сообщение #20
progopis пишет: А #define можно делать в *.idc? В смысле если я хочу не через AddConstEx.
Можно. А вообще не ленись и посмотри в %IDA%\idc каталог и будет тебе щастье
|
|
Создано: 2 января 2009 18:47:03 Личное сообщение #21
C Новым годом, господа !
В честь праздника подскажите:
- как в IDA Pro 5.2 модифицировать
ячейку памяти по адресу 0x11111111?
- как в IDA Pro 5.2 модифицировать
код расположенный по адресу 0x22222222?
Спасибо, арр.
|
|
Создано: 2 января 2009 19:59:30 Личное сообщение #22
app
Patch* (addr, value)
|
|
Создано: 2 января 2009 20:53:21 Личное сообщение #23
r_e пишет:
Можно.
Спасибо.
r_e пишет:
А вообще не ленись и посмотри в %IDA%\idc каталог
Заглянул. Ничего нового, кроме факта использования #define не узнал. Честно искал это в справке IDA - ничего (5.0)...
app
Ячейку памяти? ИМХО терминология школьника и правильного студента. Поясню, что любезно написал товарищ r_e:
PatchByte(0x11111111,0xDF) ; // пропатчит байт по адресу 0x11111111 на значение 0DFh
PatchWord(0x11111111,0x1234) ; // думаю дальше всё понятно - патчим WORD или DWORD
PatchDword(0x11111111,0x12345678) ;
|
|
Создано: 2 января 2009 21:52:13 Личное сообщение #24
Спасибо, почти всё понял,
кроме того куда вставить
PatchDword(0x11111111,0x12345678) ;
Ещё раз большое спасибо, арр.
|
|
Создано: 2 января 2009 23:55:42 Личное сообщение #25
app пишет:
кроме того куда вставить
господа гусары, молчать!
в idc "вставить"
|
|
Создано: 3 января 2009 00:21:56 Личное сообщение #26 |
|
Создано: 3 января 2009 13:05:40 Личное сообщение #27
Уважаемый, progopis!
Прошу прощения, я не
сказал самого главного:
-модифицировать
ячейку памяти по адресу 0x11111111
необходимо в отладчике,
в момент остановки в заданной breakpoint.
Ещё раз прошу прощения, арр.
|
|
Создано: 3 января 2009 13:27:40 Личное сообщение #28
app
В отладчике работают те же команды.
|
|
Создано: 3 января 2009 13:48:11 Личное сообщение #29
Но беда в том, что
заранее неизвестен адрес
модифицируемой ячейки,
а определяется он в отладчике.
Причём адрес меняется при каждом
запуске отладчика.
Как быть в этом случае?
С уважением, арр
|
|
Создано: 3 января 2009 15:08:59 Личное сообщение #30
app
Вам шашечки или ехать?
app пишет:
-модифицировать ячейку памяти по адресу 0x11111111 необходимо в отладчике, в момент остановки в заданной breakpoint.
app пишет:
...заранее неизвестен адрес модифицируемой ячейки,
Напишите плаг для дебуггера - пусть все делается в плаге.
Или лодер - пусть патчит все в рантайме.
|
|
Создано: 3 января 2009 19:14:42 Личное сообщение #31
r_e пишет:
-" Напишите плаг для дебуггера - пусть все делается в плаге. "
Легко сказать, если
знать, как он( Plugin ) для
моего случая выглядит и
что с ним делать ?
С уважением, арр
|