|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 7, 2004 03:45:13 |
|
|
Дата: Апр 7, 2004 10:27:03 хм. все-таки макрос был-бы прикольнее по-моему. Но попробую и скрипт. Сразу вопрос - где попроще (одним архивом) слить перл для виндов а то влом на серваке гонять - неудобно... |
|
|
Дата: Апр 7, 2004 10:32:40 Asterix, скрипт конечно прикольный, но кроме dword_ могут быть byte_, loc_, unkn_ и вообще super_Named_var_1 Нужна именно универсальность разбора инструкций mov reg, [imm], mov [imm], reg и т.д. Более того есть еще sub/add/adc и т.д. Понимаю что хочу слишком многого и крутить было бы неплохо саму иду. Вообще тасмовский режим ideal был рулезом, т.к. не было всяких умолчаний. Обращаешься к памяти - поставь []. А ильфак отличился... Хотя может он специально так сделал что-бы скомпилить было очень сложно... |
|
|
Дата: Апр 7, 2004 15:01:48 infern0 Perl нужно сливать с www.activestate.com он там одним msi архивом ;-), ставить в папку c:\usr\ желательно, всё после этого можно сразу запускать скрипты. Угу, то что есть ещё ds:byte_... я видел но это решается добавлением ещё одной строчки в скрипт по аналогии с первой, я имею ввиду строку s///ig; > Более того есть еще sub/add/ adc и т.д. Не понял, с ними там какие проблемы? Они что тоже в Иде как-то коряво описаны? > все-таки макрос был-бы прикольнее по-моему. Макросы замучаешься писать, ведь одни макросом, даже супер навороченным проблему не решишь, по мне скрипт на перле проще и быстрее написать. |
|
|
Дата: Апр 7, 2004 16:05:30 loc_402A5D: jb short loc_402A5D jnz loc_40356E sub_404803 proc near call sub_404119 Тут по-моему ничего не нужно править loc_ никак не мешает, также как и sub_..., можно только убрать near, если под masm, под fasm придётся вообще все процедуры переделывать. Кстати, а как в fasm сделать процедуру без пролога и эпилога? |
|
|
Дата: Апр 7, 2004 16:15:19 Правка Asterix Кстати, а как в fasm сделать процедуру без пролога и эпилога? Хех! proc_without_prologue: ... ret .. call proc_without_prologue |
|
|
Дата: Апр 7, 2004 16:36:33 IceStudent Точно! Как-то не обратил внимание раньше ;-) infern0 Тогда вот тебе скрипт N3, который дополнительно поправляет процедуры под стандарт fasm. 2132472130__IDA_script_3.rar |
|
|
Дата: Апр 7, 2004 17:56:52 Asterix а если я до этого уже в иде попереименовывал немного константы и у меня такой код: mov eax, some_cool_xor_value add data_ptr, eax xor fucking_result, eax ? |
|
|
Дата: Апр 7, 2004 18:24:51 infern0 Такие строки нельзя универсально однозначно выделить разве что если это 'some_cool_xor_value' встречается у тебя несколько раз, а тебе нужно сделать - [some_cool_xor_value], то добавь в скрипт такую строчку: s/(some_cool_xor_value)/[$1]/ig; Тоже самое с другими переименованными тобой переменными ;-) |
|
|
Дата: Апр 7, 2004 18:43:50 · Поправил: AsmGuru62 ...как в fasm сделать процедуру без пролога и эпилога?.. Кстати, как IDE отличит такую функцию от метки? Может какой префикс, специальный? proc_function_name ... ret |
|
|
Дата: Апр 7, 2004 20:30:52 А никак, я глянул на сорсы fasm'а - так и есть ничем не отличается от метки.. |
|
|
Дата: Апр 7, 2004 22:22:50 [ Asterix - Кстати, а как в fasm сделать процедуру без пролога и эпилога? Юзай мои макросы, там стековый кадр через ESP можно задавать. Вот и не будет пролога и эпилога. ;-) [ AsmGuru62 - Кстати, как IDE отличит такую функцию от метки? ] RadASM различает по ключевым словам proc / endp. А как там ^^ - никак IMHO. И в MASM тоже |
|
|
Дата: Апр 7, 2004 23:01:41 [ S_T_A_S_: Юзай мои макросы, там стековый кадр через ESP можно задавать. Вот и не будет пролога и эпилога. ;-)] И что при всяческих push в процедуре твой макрос не сглючит? Тогда перепиши его под masm32, я всё-таки пока чаще на нём пишу, т.к. имеется кое-какая база собственных исходников процедур, кои я таскаю из папки в папку при написании очередного приложения, портировать всё это под fasm пока не хотелось бы. |
|
|
Дата: Апр 7, 2004 23:35:53 S_T_A_S_ Посмотрел этот макрос, неее, мне кажется что так можно что-нибудь накосячить ;-) тем более что для меня макросы fasm'а какая-то абракадабра, тем более такие большие.. |
|
|
Дата: Апр 8, 2004 12:59:20 [ Asterix - И что при всяческих push в процедуре твой макрос не сглючит? ] Работает не только "MOV [.local],reg" но и "PUSH [.local]"/"POP [.local2]" причем если локальные переменные написать в качестве аргументов INVOKE - тоже. Т.е. корректно вычисляются смещения [ESP+XX+YY] Единственное ограничение - если используются локальные структуры, надо писать "%s+" перед именем :( А в MASM такое никак не сделать. Используется подсчет кол-ва затолканых/вытыщенных DWORD'ов в стек при PUSH/POP/INVOKE/stdcall. По поводу накосячить - IMHO это без макросов проще. Когда юзается ESP вместо EBP - надо быть начеку и писать везде ESP+AA+BB+CC.. А если временно закомментить какую строчку надо? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.087 |