首页
社区
课程
招聘
大家帮忙看看下面的代码在加宏的时候运行出错!
发表于: 2006-6-20 01:02 4539

大家帮忙看看下面的代码在加宏的时候运行出错!

2006-6-20 01:02
4539
在下面的这个函数里加了宏运行就会出错,如果把宏去掉就没有问题,一切正常。用Themida_1.5.3.0给DLL文件加壳。
我想保护的是vc++中的嵌入式汇编内容,应该用它的c接口还是汇编接口呢。
如果想用他的汇编接口,那应该怎么用呢,他的汇编例子完全使用汇编代码完成的,和我的情况不太一样啊,各位大哥,救命啊。老板已经发下狠话,在解决不了,就把我蘸酱吃了,汗。。。

__declspec(naked) void PickupThingStatus()
{
VM_START
        _asm
        {
                cmp  afst, 4
                jne  retfunc
                cmp  cspt, 1
                jne  retfunc
                cmp  pthgst, 1
                jne  retfunc
                push eax
                lea  eax, g_iPickThgType
                mov  [eax], edx
                pop  eax
                pushad
        }
        UpdatePthgstValue();
        _asm
        {
                popad
retfunc:
                call dwPickFunc
                jmp  dwpts_Back_Addr

        }
VM_END
}

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
就知道你位置不对。
__declspec(naked) void PickupThingStatus()
{
VM_START
  _asm
  {
    cmp  afst, 4
    jne  retfunc
    cmp  cspt, 1
    jne  retfunc
    cmp  pthgst, 1
    jne  retfunc
    push eax
    lea  eax, g_iPickThgType
    mov  [eax], edx
    pop  eax
    pushad
  }
  UpdatePthgstValue();
  _asm
  {
    popad
retfunc:
    call dwPickFunc
}
VM_END
_asm
{
    jmp  dwpts_Back_Addr  //这是跳到哪里?
}
函数结束还少个}。
2006-6-20 09:28
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最初由 gkend 发布
就知道你位置不对。
__declspec(naked) void PickupThingStatus()
{
VM_START
_asm
........

这个方法不行,还是和原来一样的错误!
2006-6-20 14:28
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
4
不要使用全局变量
2006-6-20 18:54
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
怀疑你是否会编程。说话不说全,建议你看看提问的智慧。
从你这几行代码来看,并没有什么技术含量,有必要用VM?不就是几个判断。
估计是themida的BUG,不会处理重定位。你那几个变量的地址都需要重定位的。
SDK是死的,人是活的,你不会把VM_STAR,VM_END放在不同的位置试一试?就知道是什么原因了。
2006-6-20 19:58
0
游客
登录 | 注册 方可回帖
返回
//