Фриланс-проекты › С++ + asm developer С++ + asm developer
у меня 32 битная функция которая написана на асм 32 бит работает как длл в виндовс
нужно скомпилировать чтобы можно было использовать на убунту
функция для декодирования
69000 строк.
пример
ULONGLONG vLoginId::Decode(ULONGLONG* pData, size_t szData, int arg8)
{
__asm
{
sub esp, 0x000001C0
mov ebx, ecx
mov ecx, dword ptr ss:[ebp + 8] //ecx = pData
test ecx, ecx
je l0130767D
mov dword ptr ss:[esp + 0x00000034], 0
mov dword ptr ss:[esp + 0x00000030], 0
mov eax, dword ptr [ecx]
mov ecx, dword ptr [ecx + 4]
mov dword ptr ss:[esp + 0x0000002C], ecx
mov dword ptr ss:[esp + 0x00000028], eax
mov eax, dword ptr ss:[esp + 0x00000028]
mov ecx, dword ptr ss:[esp + 0x0000002C]
mov edx, dword ptr ss:[esp + 0x0000002C]
add eax, dword ptr ss:[esp + 0x00000028]
adc edx, ecx
mov ecx, dword ptr ss:[esp + 0x00000028]
mov esi, dword ptr ss:[esp + 0x0000002C]
and esi, dword ptr ss:[esp + 0x0000002C]
and ecx, dword ptr ss:[esp + 0x00000028]
sub eax, ecx
mov ecx, dword ptr ss:[esp + 0x00000028]
sbb edx, esi
mov esi, dword ptr ss:[esp + 0x0000002C]
and esi, dword ptr ss:[esp + 0x0000002C]
and ecx, dword ptr ss:[esp + 0x00000028]
sub eax, ecx
sbb edx, esi
mov dword ptr ss:[esp + 0x00000018], eax
mov dword ptr ss:[esp + 0x0000001C], edx
mov eax, dword ptr ss:[esp + 0x00000028]
mov ecx, dword ptr ss:[esp + 0x0000002C]
mov edx, dword ptr ss:[esp + 0x00000028]
mov esi, dword ptr ss:[esp + 0x0000002C]
not esi
not edx
and esi, ecx
and edx, eax
mov dword ptr ss:[esp + 4], esi
mov dword ptr ss:[esp], edx
mov eax, dword ptr ss:[esp]
mov ecx, dword ptr ss:[esp + 4]
mov edx, dword ptr ss:[esp + 0x00000028]
mov esi, dword ptr ss:[esp + 0x0000002C]
not esi
not edx
-
Здравствуйте
- Версия убунту у вас тоже 32бит или все-таки 64?
- Вариант эмуляции не устраивает (wine например)?
-
Если можно, пришлите файл для ознакомления. По мне пример кода выглядит не как написанный программером, а созданный дизассемблером (реверс?).
-
Вам из этого кода *so либа нужна? А внешних зависимостей у это dll нет?