Сейчас на форуме: _MBK_ (+7 невидимых) |
![]() |
eXeL@B —› Основной форум —› masm rip + FindFileData |
Посл.ответ | Сообщение |
|
Создано: 14 сентября 2009 00:45 · Личное сообщение · #1 рипнул код, в котором имеется функа работы со структурой struct _WIN32_FIND_DATAA FindFileData. на си писать аналог вопрос 2 минут, но хочу решить именно на масме вопрос, т.к. это семпл самой менее объемной функи, а будут встречаться более сложные, в логике которых разбирать будет некогда и реверсить код на высокоуровневый язык, то хотелось бы просто корректно переобъявить все структуры, внести изменения в код и иметь сразу готовый рабочий код, не разбираясь в его полезной нагрузке. оригинал из ида Code:
оригинал из хекс-рейз Code:
поскольку возникала ошибка какая-то при инклуде windows.inc и не хотеслоь из-за одной структуры подключать целый модуль, сразу объявил только структуру Code:
объявил все как в оригинале: FindFileData = _WIN32_FIND_DATAA ptr -254h ssFileName = byte ptr -114h hFindFile = dword ptr -0Ch var_8 = dword ptr -8 ttlpString = dword ptr 8 в итоге на прологе функции получил 254h буфер с нулями, далее только код объявил далее так: LOCAL FindFileData: _WIN32_FIND_DATAA ssFileName = byte ptr -114h hFindFile = dword ptr -0Ch var_8 = dword ptr -8 ttlpString = dword ptr 8 получаю вот что в дизасме компиленого модуля Code:
с переменными распознаными лажа, локал порушила стек, балансировка на 140h не помагла, код из-за лишнего пролога Filename везде стал указывать не на буфер, а на поле записи FindData и т.д. как корректно объявить структуру и\или что вписать на прологе чтобы не трогать код и оставить функционал 1 в 1? ----- HOW MUCH BLOOD WOULD YOU SHED TO STAY ALIVE ![]() |
|
Создано: 14 сентября 2009 05:07 · Личное сообщение · #2 |
|
Создано: 14 сентября 2009 09:06 · Поправил: DaRKSiDE · Личное сообщение · #3 Если не хочешь подключать windows.inc (хотя тоже не понимаю почему?) SLV пишет: ничего страшного не будет если и подключишь, оно же ничего не линкует с собой, простые дефайны и структуры. SLV прав на все 100%. то надо было хотя бы просто скопипастить из него структуру к себе в исходник... Code:
----- aLL rIGHTS rEVERSED! ![]() |
|
Создано: 14 сентября 2009 09:12 · Личное сообщение · #4 |
|
Создано: 14 сентября 2009 09:48 · Личное сообщение · #5 Хм.. забавно, но я присунул эту структуру к себе в исходник и посмотрел под оллей... Code:
Тот же хрен... ![]() Очень странно что ида выдала -254h Возможно это структура наследованная от стандартной WIN32_FIND_DATA? Даже название отличается - WIN32_FIND_DATAA... или я гоню ![]() Вот нашел описание той структуры что у тебя в дизасме code.snapstream.com/api/bm11/SnapStream.Util.WIN32_FIND_DATAAMembers.html Сравни... может есть различие? ----- aLL rIGHTS rEVERSED! ![]() |
|
Создано: 14 сентября 2009 12:37 · Личное сообщение · #6 |
|
Создано: 14 сентября 2009 13:11 · Личное сообщение · #7 |
|
Создано: 14 сентября 2009 20:29 · Личное сообщение · #8 что никто на масме не работал с заданой структурой и чтобы были в функе локальные переменные? прошу ткнуть сорцем уж хоть каким-то рабочим. вот например рабочие, но без локальных переменных www.wasm.ru/article.php?article=1001031 forum.sources.ru/showtopic=101954 ----- HOW MUCH BLOOD WOULD YOU SHED TO STAY ALIVE ![]() |
|
Создано: 14 сентября 2009 21:09 · Личное сообщение · #9 |
![]() |
eXeL@B —› Основной форум —› masm rip + FindFileData |