打包EXE后,ASM无法正常工作

时间:2017-02-12 11:27:02

标签: c++ assembly packed

我将我的asm附加到我的dll源代码中并将其连接到我的exe,它就像一个魅力,但是当我使用exe packer打包我的exe时。 asm没有在exe上打包的dll。任何想法如何解决这个问题?

#include "StdAfx.h"

void __declspec(naked) MyStuff() {
    __asm {
        PUSH EBP
            MOV EBP, ESP
            MOV EAX, DWORD PTR SS : [EBP + 0x8]
            MOV EAX, DWORD PTR DS : [EAX]
            XOR EAX, ENCPACKET
            MOV DWORD PTR SS : [EBP + 0x8], EAX
            MOV AX, WORD PTR SS : [EBP + 0xA]
            POP EBP
            RETN 0x4
    }
}

void SetStuff(){
    SetJmp((LPVOID)0x00424B1C,  MyStuff);
}

结果是:

005DB4E0   /> \55                PUSH EBP
005DB4E1   |.  8BEC              MOV EBP,ESP
005DB4E3   |.  56                PUSH ESI
005DB4E4   |.  FF75 0C           PUSH DWORD PTR SS:[EBP+C]
005DB4E7   |.  B9 403E0801       MOV ECX,01083E40
005DB4EC   |.  E8 38CCE3FF       CALL 00418129
005DB4F1   |.  8BF0              MOV ESI,EAX
005DB4F3   |.  85F6              TEST ESI,ESI
005DB4F5   |.  74 1E             JE SHORT 005DB515
005DB4F7   |.  FF75 08           PUSH DWORD PTR SS:[EBP+8]
005DB4FA   |.  8BCE              MOV ECX,ESI
005DB4FC   |.  E8 D799E4FF       CALL 00424ED8
005DB501   |.  8B4D 10           MOV ECX,DWORD PTR SS:[EBP+10]
005DB504   |.  FF75 08           PUSH DWORD PTR SS:[EBP+8]
005DB507   |.  8901              MOV DWORD PTR DS:[ECX],EAX
005DB509   |.  8BCE              MOV ECX,ESI
005DB50B   |.  E8 EEA5E4FF       CALL 00425AFE
005DB510   |.  8B4D 14           MOV ECX,DWORD PTR SS:[EBP+14]
005DB513   |.  8901              MOV DWORD PTR DS:[ECX],EAX
005DB515   |>  5E                POP ESI
005DB516   |.  5D                POP EBP
005DB517   \.  C2 1000           RETN 10

我可以问,是否可以将asm运行到这样的特定偏移量中?

#include "StdAfx.h"

void __declspec(naked) MyStuff() {
    __asm {
005DB4E0->        PUSH EBP
005DB4E1->            MOV EBP, ESP
005DB4E3->            MOV EAX, DWORD PTR SS : [EBP + 0x8]
005DB4E4->            MOV EAX, DWORD PTR DS : [EAX]
005DB4E7->            XOR EAX, ENCPACKET
005DB4EC->            MOV DWORD PTR SS : [EBP + 0x8], EAX
005DB4E1->            MOV AX, WORD PTR SS : [EBP + 0xA]
005DB4F3->            POP EBP
005DB4F4->            RETN 0x4
    }
}

0 个答案:

没有答案