· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Чем плох MASM32?

<< . 1 . 2 . 3 . 4 . >>

Посл.отвђт Сообщенiе


Дата: Апр 7, 2004 03:45:13

Если первый вариант не подходит, то вот другой..

642953552__IDA_script_2.rar


Дата: Апр 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.. А если временно закомментить какую строчку надо?

<< . 1 . 2 . 3 . 4 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.087