Сейчас на форуме: (+7 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Отладка в Visual Studio 2010 |
Посл.ответ | Сообщение |
|
Создано: 29 июля 2014 18:56 · Личное сообщение · #1 |
|
Создано: 29 июля 2014 19:04 · Личное сообщение · #2 никак нету трассы в Visual Studio из коробки Или напишите плагин, складывающий в лог все call / jmp func ![]() |
|
Создано: 29 июля 2014 19:34 · Личное сообщение · #3 |
|
Создано: 29 июля 2014 19:59 · Личное сообщение · #4 [Requires OllyDbg v1.08 or later] Load a process, right-click in the disassembly window and select Search For | All Intermodular Calls In the window that pops up (which will have listed all imported APIs), right-click on it and select Set Log Breakpoint On Every Command Set the Log Value Of Expression and Log Function Arguments to "Always". Press OK, and you'll see all of the intermodular calls now with addresses highlighted in pink/purple, indicating log breakpoints. Now simply run the program, then look in the Log window (View | Log) to see which API's got called, in which order, and what arguments were passed. Взято здесь: http://www.woodmann.com/forum/archive/index.php/t-7970.html ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 29 июля 2014 20:55 · Личное сообщение · #5 А вот ещё вопрос, только не по теме... когда в OllyDbg делаю RUN, отладчик ставится на паузу в модуле kernel32 после ntdll.RtlRaiseException... потом Run-Run-Run и процесс уходит в terminated... Это одно из средств антиотладки? Как побороть? Пытался менять в Debug Options->Exceptions флажки, Ignore memory access violation in Kernel32 галочка стоит ![]() |
|
Создано: 30 июля 2014 09:59 · Личное сообщение · #6 who-e Shift+F9 ? ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 30 июля 2014 13:09 · Личное сообщение · #7 |
|
Создано: 30 июля 2014 16:55 · Поправил: who-e · Личное сообщение · #8 plutos пишет: [Requires OllyDbg v1.08 or later] Load a process, right-click in the disassembly window and select Search For | All Intermodular Calls In the window that pops up (which will have listed all imported APIs), right-click on it and select Set Log Breakpoint On Every Command Set the Log Value Of Expression and Log Function Arguments to "Always". Press OK, and you'll see all of the intermodular calls now with addresses highlighted in pink/purple, indicating log breakpoints. Now simply run the program, then look in the Log window (View | Log) to see which API's got called, in which order, and what arguments were passed. Не подходит, хотя и не пробовал... В Olly Debugger 2.01 search For -> ALL Intermodular Calls находит все Call-ы в dll(OLEAUT32, MSVCP100, MSVCR100, kernel32, ntdll, user32), а мне надо все call-ы приложения, по окну map могу определить в какой области памяти лежат нужные Call-ы...ну и как на все эти call повесить log breakpoints решил окончательно перейти с OllyDbg 1.10 на OllyDbg 2.01 Там есть Trace->Set Protocol, флажок Call Destination, и запустить Run Hit Trace Только вот проблема в 2.01, Это то что нужно? и это долго, быстрее нельзя как нибудь? Вообще надо найти такой участок, где идёт обращение к строке, возможно в Юникоде, при вызове, которую я логирую, она,строка, сто пудово где-то да всплывет, только там 3600 call-ов и продолжает расти, хотя запустил только вот 30 сек назад... функция делает выборку данных и отображает их в окне, дескриптор окна известен, создано в главном потоке, в окне вижу эти данные, то есть если функция после своего завершения не затирает данные, полученные и отображенные с помощью этой функции - могу ли я найти в памяти эти данные и как? Или может можно как нибудь через винапи перехватить строки которые рисуются в окне? Или есть какие нибудь ещё предложения? Если нужные подробности пишите И Run hit trace Тоже не сработал, exceptions..->shift+F9->...shift+F9->...Terminated ![]() |
|
Создано: 30 июля 2014 17:02 · Поправил: VodoleY · Личное сообщение · #9 перечитал 3 раза.. не пойму че вы изобретаете? SetWindowText не(с вариациями)? строку в памяти найти и хардвар бряк на чтение этой строки поставить .. не? очень много зависит от того на чем присана прога. В кажом языке свои способы отрисовки диалогов З.Ы, в .НЕТ свое.. в КьЮте.. свое.. ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... ![]() |
|
Создано: 30 июля 2014 17:14 · Поправил: who-e · Личное сообщение · #10 Дело в том что исходников программы нет, вот и исследую, то есть мне надо найти все вызовы SetWindowText, ставить на них бряки и смотреть какие параметры передаются? Известно, что программа написана в среде VisualStudio2005, или ATL или MFC - не известно, если знаете как определить - ответ в студию! exe весит 28,2 мбайта, название говорить не буду, а то топик ещё закроют или забанят)))... Знаю что приложение предоставляет открытие COM-интерфейсы... через которые я пишу dll - плагин, в нем мой messageBox и вызов функции с использованием предоставляемого COM-интерфейса...во время работы этой функции рисуется что то типа полосы загрузки, что мало меня волнует, интересует именно Какие строки рисует в окне этот метод COM-интерфейса ![]() |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 30 июля 2014 17:34 · Личное сообщение · #11 я тоже нихфига не понял! who-e пишет: если знаете как определить - ответ в студию! who-e пишет: exe весит 28,2 мбайта, название говорить не буду, а то топик ещё закроют или забанят)))... а еще Archer найдет по ip и вычислит! И однажды ночью за Вами придут ![]() ![]() |
|
Создано: 30 июля 2014 18:12 · Поправил: VodoleY · Личное сообщение · #12 вобщем если честно я пасс... чем больше ТС обьяснет ТЗ тем меньше я понимаю че он хочет.. имхо.. 28МБ для студии.. это через чур жирно.. но всякое бывает.. я ВАМ пытался намекнуть.. что у каждого языка свои высокоуровневые функи, которые ресуют строки и вызывают потом уже виндовые (а могут дравтекстом и сами отрисовать).ИДА вам поможет во многом, отдетектит сигны, и может даже вашу функу.Вы просто видимо даже не понимаете ответов на ваш вопрос. Если у ВАС опыта настолько мало.. оформите запрос в Поиск специалистов. ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... ![]() |
|
Создано: 30 июля 2014 20:12 · Поправил: who-e · Личное сообщение · #13 Хорошо, если идти по пути рисования текста в окно.. я не знаю как реализовано в приложении... Какие могут быть функции рисования текста в окне исходя из списка Какие низкоуровневые функции используется в высокоуровневых функция вывода текста в окно? Во вложении все executable modules ![]() ![]() |
|
Создано: 30 июля 2014 20:30 · Поправил: plutos · Личное сообщение · #14 who-e пишет: Какие могут быть функции рисования текста в окне SetWindowText ? User32.dll: BOOL SetWindowText ( HWND hWnd, LPCTSTR lpString ); ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 30 июля 2014 20:59 · Поправил: who-e · Личное сообщение · #15 |
|
Создано: 30 июля 2014 21:17 · Личное сообщение · #16 |
|
Создано: 30 июля 2014 21:25 · Личное сообщение · #17 |
|
Создано: 31 июля 2014 11:13 · Личное сообщение · #18 |
|
Создано: 31 июля 2014 12:17 · Личное сообщение · #19 Archer пишет: Либо софт в студию, либо топик закрывается. Можете закрывать Я ждал что люди помогут не конкретно с задачей, а советом reversecode пишет: а вся логика по управлению окнами итд скрыта в программе Как устроена работа с окнами меня не интересует Известно лишь что программы написана на Microsoft Visual C++, Вот у меня и вопрос встаёт, обязательно ли должен быть вызов SetWindowText для отрисовки текста в окне, либо есть альтернативы? reversecode пишет: хватит уже голову всем морочить, дураку понятно что ботовод или покерной кликер какой то Нет, вы не угадали VodoleY пишет: who-e люди для начала СМОТРЯТ глазками на контрол. потом смотрят на СРЕДУ в которой гуи сделан. потом включают МОЗГ и исходя из этого ищут подходы. Что за поле чудес угадай мелодию по 2ум нотам Что значит "СМОТРЯТ глазками на контрол" Ну я посмотрел: окно как окно, в которое выводится текст, повторюсь в приложении используются COM-интерфейсы для реализации собственных плагинов, Вот я написал небольшой плагин, но открытые API не позволяют мне в dll-плагине извлечь нужные строки, в этом плагине, я реализовал кнопку, при нажатии вызывается метод COM-интерфейса, и он, метод, рисует полосу загрузки в окне и в конце рисует строки которые мне нужно получить внутри плагина... Вот ищу подход, к Вам вопрос тот же, про SetWindowText Думаю можно немного модифицировать программку, сделав перед выводом текста (SetWindowText?), jump на мой кусок кода который будет эти строки в какую нибудь область памяти сохранять, вопрос осуществления задуманного ещё только ставится передо мной, практически ещё ничего не делал ![]() |
|
Создано: 31 июля 2014 13:17 · Поправил: VodoleY · Личное сообщение · #20 who-eбро.. ты совсем в танке? смотри.. буду говорить как делфист.. ТО куда отрисовывается твой текст.. может быть компонентом.. наследником от EditControla - тут SetWinsowtext ил GraphicControla- тут DrawText .. НИКТО не мешает рисовать прям на форме.. как на Canvas .. тот же DrawText НО конкретно в делфе АПИ функции обвернуты более высоким уровнем.. из VCL .. в MFC очень похоже но немножко по другому.. ТЫ не понимаю как это все работает.. ищиш черную кошку в черной комнате.. причем даже слушать не хош. сторонние компоненты.. для ускорения работы и отрисовки.. могут полностью перехватывать методы RepaintWindow и состоять из набора DRAW .. ГЛАЗКАМИ это знать как выглядять ШТАТНЫЕ компоненты и НЕШТАТНЫЕ и от этого плясать. КАК вариант посмотреть на импорт ТВОЕЙ проги.. и на удачу наставить бряки на апи.. которые в ТЕОРИИ могут выводить. рисовать текст.. НО ты даже незнаеш ЧЕМ это можно делать. погугли "способы вывода текста с++ Windows api ".. чтоли ЗЫ Как устроена работа с окнами меня не интересует ВООЩЕ порадовало ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... ![]() |
|
Создано: 31 июля 2014 13:28 · Личное сообщение · #21 who-e Присоединяюсь к мнению Водолея, он прав. Я бы другими словами написал, но не буду особо. )) Получше включи логику, поставь её на полную мощность и перечитай, что тебе писали! who-e пишет: В OllyDebugger не могу приаттачиться к процессу во время вызова MessageBox-а, Мне вот это непонятно. Понимаю, это неглавная проблема, но всё же: Стек смотрели? Откуда вызов MessageBox, нашли? Ставили за ним бряк? )) ----- IZ.RU ![]() |
|
Создано: 31 июля 2014 14:08 · Личное сообщение · #22 VodoleY пишет: бро.. ты совсем в танке? смотри.. буду говорить как делфист.. ТО куда отрисовывается твой текст.. может быть компонентом.. наследником от EditControla - тут SetWinsowtext ил GraphicControla- тут DrawText .. НИКТО не мешает рисовать прям на форме.. как на Canvas .. тот же DrawText НО конкретно в делфе АПИ функции обвернуты более высоким уровнем.. из VCL .. в MFC очень похоже но немножко по другому.. ТЫ не понимаю как это все работает.. ищиш черную кошку в черной комнате.. причем даже слушать не хош. сторонние компоненты.. для ускорения работы и отрисовки.. могут полностью перехватывать методы RepaintWindow и состоять из набора DRAW .. ГЛАЗКАМИ это знать как выглядять ШТАТНЫЕ компоненты и НЕШТАТНЫЕ и от этого плясать. КАК вариант посмотреть на импорт ТВОЕЙ проги.. и на удачу наставить бряки на апи.. которые в ТЕОРИИ могут выводить. рисовать текст.. НО ты даже незнаеш ЧЕМ это можно делать. погугли "способы вывода текста с++ Windows api ".. чтоли ЗЫ Как устроена работа с окнами меня не интересует ВООЩЕ порадовало Зря ты перед ним распинался.Он нихуа не знает один хер. DenCoder пишет: Мне вот это непонятно. Понимаю, это неглавная проблема, но всё же: Стек смотрели? Откуда вызов MessageBox, нашли? Ставили за ним бряк? )) Вы нагрузили человека сложными словами, теперь он ничего не ответит более, осознав никчемность ![]() ----- TEST YOUR MIGHT ![]() |
|
Создано: 31 июля 2014 14:54 · Поправил: who-e · Личное сообщение · #23 DenCoder пишет: Мне вот это непонятно. Понимаю, это неглавная проблема, но всё же: Стек смотрели? Откуда вызов MessageBox, нашли? Ставили за ним бряк? )) MessageBox я сам писал в dll которая грузится во время запуска приложения, думаю можно запомнить виртульный адрес, но ведь с каждым новым запуском адрес может отличаться от него? Когда появляется MessageBox - attach: Call stack of thread 00000564, item 0 Address=03DEFFCC Stack=7C950018 Procedure / arguments=ntdll.DbgBreakPoint Called from=ntdll.7C950013 Frame=03DEFFF4 Потом Run: Call stack of thread 00000AE4, item 0 Address=032FFD3C Stack=00AB6122 Procedure / arguments=kernel32.RaiseException Called from=****.00AB611C Frame=032FFD38 Call stack of thread 00000AE4, item 1 Address=032FFD40 Stack=E06D7363 Procedure / arguments= ExceptionCode = E06D7363 Call stack of thread 00000AE4, item 2 Address=032FFD44 Stack=00000001 Procedure / arguments= ExceptionFlags = EXCEPTION_NONCONTINUABLE Потом после нескольких Run/Shift+F9 без разницы: terminated Это в OllyDbg 1.10 В OllyDbg 2.01 паузы нет, ставлю на паузу перехожу в нужный thread, call stack, show caller messagebox, перехожу к этому участку кода и ставлю бряки... VodoleY пишет: who-eбро.. ты совсем в танке? смотри.. буду говорить как делфист.. ТО куда отрисовывается твой текст.. может быть компонентом.. наследником от EditControla - тут SetWinsowtext ил GraphicControla- тут DrawText .. НИКТО не мешает рисовать прям на форме.. как на Canvas .. тот же DrawText НО конкретно в делфе АПИ функции обвернуты более высоким уровнем.. из VCL .. в MFC очень похоже но немножко по другому.. ТЫ не понимаю как это все работает.. ищиш черную кошку в черной комнате.. причем даже слушать не хош. сторонние компоненты.. для ускорения работы и отрисовки.. могут полностью перехватывать методы RepaintWindow и состоять из набора DRAW .. ГЛАЗКАМИ это знать как выглядять ШТАТНЫЕ компоненты и НЕШТАТНЫЕ и от этого плясать. КАК вариант посмотреть на импорт ТВОЕЙ проги.. и на удачу наставить бряки на апи.. которые в ТЕОРИИ могут выводить. рисовать текст.. НО ты даже незнаеш ЧЕМ это можно делать. погугли "способы вывода текста с++ Windows api ".. чтоли ЗЫ Как устроена работа с окнами меня не интересует ВООЩЕ порадовало Спасибо, буду гуглить VodoleY пишет: слы.. а там случайно.. протекторов никаких не висит.. типа антиатача... если так.. то я буду рыдать.. угадай мелодия радует Может быть и стоит) Не в курсе, вот Hit Trace пытался делать с SetProtocol, приложение завершилось.. ![]() |
|
Создано: 31 июля 2014 15:02 · Личное сообщение · #24 |
|
Создано: 31 июля 2014 15:06 · Личное сообщение · #25 |
![]() |
eXeL@B —› Вопросы новичков —› Отладка в Visual Studio 2010 |
Эта тема закрыта. Ответы больше не принимаются. |