Сейчас на форуме: cppasm, tyns777, dutyfree, asfa (+6 невидимых)

 eXeL@B —› Вопросы новичков —› У кого есть опыт составления файлов *.arg для OllyDbg
Посл.ответ Сообщение

Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 02 октября 2016 23:23 · Поправил: Kuzya69
· Личное сообщение · #1

Хочу подписать аргументы некоторых АПИ-функций в ndll. Но нету никакого опыта в составлении этого файла.
В данный момент интересует вопрос по "Предустановленные типы"
Как я понял, что есть уже внутри Предустановленный тип похожий на "PAGE_X".
Ведь отладчик расшифровывает аргумент для защиты страницы из цифрового в текстовое отображение.
Вот вопрос, как он точно называется, этот похожий на "PAGE_X" тип?
В справке про него не написано.
А вариант
Code:
  1. "Protect" PAGE_X

не проходит.

Или может у кого есть уже наработки по подписыванию функций в ndll, поделитесь пожалуйста?




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 03 октября 2016 03:24
· Личное сообщение · #2

Kuzya69 пишет:
А вариант
"Protect" PAGE_X
не проходит.


знач что-то не так делаешь

написал файлик test.arg
Code:
  1. STDFUNC testfunc
  2.   "TESTARG" PAGE_X
  3. END


сунул его в папку с олькой, запустил test.exe:





Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 03 октября 2016 13:43 · Поправил: Kuzya69
· Личное сообщение · #3

Да вроде все то-же самое,
Code:
  1. INFO Simple .ARG file that decodes ZwAllocateVirtualMemory
  2. TYPE HPROC
  3.   IF -1 "CURRENT_PROCESS"
  4.   ELSEINT
  5. END
  6. STDFUNC ZwAllocateVirtualMemory
  7. "hProcess" HPROC
  8. "pAddress" INT
  9. "ZeroBits" INT
  10. "pSize" INT
  11. "AllocationType" INT
  12. "Protect" PAGE_X
  13. END


только лыжи не едут
Code:
  1. 00C98DBF  |.  6A 40         PUSH 40                                  ; /Protect = 40 (64.)
  2. 00C98DC1  |.  68 00200000   PUSH 2000                                ; |AllocationType = 2000 (8192.)
  3. 00C98DC6  |.  57            PUSH EDI                                 ; |pSize
  4. 00C98DC7  |.  6A 00         PUSH 0                                   ; |ZeroBits = 0
  5. 00C98DC9  |.  56            PUSH ESI                                 ; |pAddress
  6. 00C98DCA  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ; |
  7. 00C98DCD  |.  50            PUSH EAX                                 ; |hProcess
  8. 00C98DCE  |.  E8 29FFFFFF   CALL <JMP.&ntdll.ZwAllocateVirtualMemory>; \ZwAllocateVirtualMemory


PS
Во, колдовство. Вчера что, магнитные бури были?
Сегодня перезапустил анализатор, и все стало сразу красиво.
Ладно первый вопрос про PAGE_X вроде снят.
Буду дальше долбить эту ntdll




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 03 октября 2016 13:57
· Личное сообщение · #4

залил свой common.arg там разные примеры, что-то я добавлял, что-то с форумов.

http://www39.zippyshare.com/v/puYmip65/file.html

выложи потом в паблик, что получиться в итоге

-----
[nice coder and reverser]


| Сообщение посчитали полезным: Kuzya69, Gideon Vi, plutos

Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 03 октября 2016 14:02
· Личное сообщение · #5

Hellspawn пишет:
выложи потом в паблик

А сейчас, что не в паблике? Или я слово "паблик" неправильно понимаю (публичный, общий доступ)?




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 03 октября 2016 14:12
· Личное сообщение · #6

Kuzya69

он не полный вдруг ты сделаешь недостающие апи, будет полезно.

-----
[nice coder and reverser]




Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 03 октября 2016 14:40 · Поправил: Kuzya69
· Личное сообщение · #7

Hellspawn пишет:
что получиться в итоге

Ну да, работает. Только с протектом та-же беда. Я переписал на PAGE_X и выкинул тип PROT_X.
А зачем из kernel32 функции комментил? В Олли даже в первой, они многие работают. Ладно попробую перелопатить.
Но все равно, Спасибо.

PS
Кстати, а как в этом файле комментить, выкинуть-то можно. Но пусть все будет в одном месте.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 03 октября 2016 14:41
· Личное сообщение · #8

Kuzya69

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

-----
[nice coder and reverser]




Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 03 октября 2016 15:13
· Личное сообщение · #9

О, нашел в Олли эту секцию, откуда она берет типы и соответствие числовое - текстовому.
Про PAGE_X, понял как табличка устроена. Про остальные надо разбираться. Там в Олли слишком много циклов и проверок, а Идой я еще не научился пользоваться.

fc86_03.10.2016_EXELAB.rU.tgz - _005D5000.zip



Ранг: 30.1 (посетитель)
Активность: 0.070
Статус: Участник

Создано: 04 октября 2016 17:04 · Поправил: Kuzya69
· Личное сообщение · #10

Может кто нибудь объяснить или показать код?
Проблема вот в чем. Делаю прототип для "LdrLoadDll".
В принципе, в простейшем описании, работает
Code:
  1. STDFUNC  ntdll.LdrLoadDll
  2.   "PathToFile"          UNICODE               
  3.   "@Flags"              PTR
  4.   "@ModuleFileName"     PTR
  5.   "@ModuleHandle"       PTR
  6. END

Но такой прототип малоинформативен.
Поэтому хотелось бы вывести не dword-ы @Flags, @ModuleFileName, @ModuleHandle. А
1) расшифровать значение Flags, а не показывать значение указателя на Flags
2) вывести само имя ModuleFileName, а не указатель на UNICODE строку
3) Вывести значение (текстовое или цифровое) "лежащее под указателем" @ModuleHandle
Но тут засада. Сначала надо взять не само значение @Flags, а значение по адресу @Flags. Такие фокусы в справке дебагера, в разделе про создание своих аргументов, не описаны.
Может уже кто сталкивался с этим, и знает как это сделать?
По сути этот механизм есть в обработчике этих описаний. Ведь как-то автор ввел типы UNICODE, ASCII. Вот понять-бы как, с помощью какого кода, он это сделал.


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


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