首页
社区
课程
招聘
[原创]基于VT技术的OllyDbg插件Ddvp
发表于: 2013-8-14 09:53 169884

[原创]基于VT技术的OllyDbg插件Ddvp

2013-8-14 09:53
169884
收藏
免费 8
支持
分享
最新回复 (259)
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
201
LZ发的真是好东西,经测试能过TP,但不能过完美的PP,用OD一附加就重启
2014-1-4 20:34
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
202
路过,来支持一下
2014-1-4 20:44
0
雪    币: 101
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
203
技术土豪,咱们做朋友吧
2014-1-6 23:57
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
204
向汇编哥致敬!!
2014-1-7 03:19
0
雪    币: 22
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
205
vmware workstation 10 + windows xp sp3亲测开启引擎成功,事实证明vmware workstation 10已经支持虚拟化VT技术.不过我这里使用的时候遇到一个问题,就是我用楼主的引擎附加DXXF的时候,如果先开启引擎再开启游戏,就会出现游戏无限黑屏的现象,此时用OD附加黑屏的游戏能够正常附加并显示模块.如果不开引擎进游戏则不会无限黑屏,但此时再开引擎附加则无法正常附加.而且OD每次退出都会出现3个错误提示框.我是用虚拟机测试,不知道真机会不会这样.
2014-1-15 02:12
0
雪    币: 6976
活跃值: (1372)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
206
真的么? 可以留下个联系方式么? 或者是来张图看看? vmware 10 真的开始支持模拟VT技术了??
2014-1-15 09:11
0
雪    币: 22
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
207
今晚回到家截图给你看,当然我真机本身是支持VT的,如果真机本来就不支持VT估计也是模拟不出来的
2014-1-15 09:29
0
雪    币: 22
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
208





正如图片所示,虽然我可以正常开引擎并且附加,但是DXXF无限黑屏.请教楼主这个问题该如何解决?
上传的附件:
2014-1-15 18:41
0
雪    币: 6976
活跃值: (1372)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
209
我最近没有搞dnf的游戏, 不知道有什么更新了.. 但是你这个vmware10 可以开启VT倒是非常的新鲜呢. 我看看能不能开启调试. 如果可以调试vt那就霸气了.
2014-1-15 19:24
0
雪    币: 22
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
210
过两天拿你的引擎到朋友的真机试试,如果能够正常调试证明是我虚拟机里面的系统有问题,如果还是无限黑屏证明TP针对你的引擎设了什么暗桩.不过怎么样还是先谢谢楼主提供这么好的工具给我们用.
2014-1-15 20:58
0
雪    币: 110
活跃值: (303)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
211
我在xp虚拟机中试了下你的od,我在开启了调试引擎后,再在od中打开calc.exe,直接就卡死了,这是怎么回事?
2014-1-16 00:29
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
212
的确很牛X.
2014-1-16 14:27
0
雪    币: 28
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
213
mark,thanks!!!mark,thanks!!!
2014-1-18 00:07
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
214
感谢老师的指导
2014-2-6 16:20
0
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
215
霸气师傅,,正在找你就出来了
2014-3-15 14:10
0
雪    币: 11
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
216
资源我下了,暂时用不到。嘿嘿,高深得不行。
2014-3-29 19:28
0
雪    币: 11
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
217
大牛,发我个“如果你需要windows xp sp3的系统, 或者win 7 的系统”,谢谢啊,我百度了几个全有问题。。。
beautylife@aliyun.com,谢谢
2014-3-29 19:52
0
雪    币: 67
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
218
霸气!!这个非常不错!!
2014-3-30 01:12
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
219
临时会员,先回复才能发帖,借个地方,顺便问下:我用加密3光盘中的OllyDBG在64位的win8下打开程序(第二章的第一个调试案例),按F9后,提示栏 先显示‘运行’,然后显示终止,而程序界面始终没有出现,我把光盘拷贝到xp虚拟机中做相同的事情,可以正常显示。不知哪位大神指点下,因内存有限,学习阶段不想开虚拟机
2014-3-31 03:39
0
雪    币: 228
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
220
现在是不是已经不行了?
2014-5-9 19:29
0
雪    币: 235
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
221
传说中的大神
2014-5-15 18:08
0
雪    币: 294
活跃值: (119)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
222
学习~~~
2014-5-15 18:41
0
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
223
mark。感谢lz的分享,又做了一次可耻的伸手党。
2014-5-15 21:48
0
雪    币: 46
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
224
楼主我在你的工程中,看到这样一段代码,那个NtFlushInstructionCache可以在用户层调用吗,已包含ntdll.lib

编译通不过,改成FlushInstructionCache,可以通过了,能不能解答一下,这个函数要怎么在用户层调用


BOOL
WINAPI
DbgObjWriteProcessMemory( IN HANDLE hProcess,
                          IN LPVOID lpBaseAddress,
                          IN LPCVOID lpBuffer,
                          IN SIZE_T nSize,
                          OUT SIZE_T *lpNumberOfBytesWritten )
{
    BOOL bRet;
    PVOID Base;
    NTSTATUS Status;
    ULONG OldValue;
    SIZE_T RegionSize;
    BOOLEAN UnProtect;
    WRITE_MEMORY WriteMemory;

    /* Set parameters for protect call */
    RegionSize = nSize;
    Base = lpBaseAddress;

    /* Check the current status */
    Status = DbgObjNtProtectVirtualMemory( hProcess,
                                     &Base,
                                     &RegionSize,
                                     PAGE_EXECUTE_READWRITE,
                                     &OldValue );
    if( NT_SUCCESS( Status ) )
    {
        /* Check if we are unprotecting */
        UnProtect = OldValue & ( PAGE_READWRITE |
                                 PAGE_WRITECOPY |
                                 PAGE_EXECUTE_READWRITE |
                                 PAGE_EXECUTE_WRITECOPY ) ? FALSE : TRUE;
        if( !UnProtect )
        {
            /* Set the new protection */
            Status = DbgObjNtProtectVirtualMemory( hProcess,
                                             &Base,
                                             &RegionSize,
                                             OldValue,
                                             &OldValue );

            WriteMemory.hProcess            = hProcess;
            WriteMemory.BaseAddress         = lpBaseAddress;
            WriteMemory.Buffer              = ( PVOID )lpBuffer;
            WriteMemory.NumberOfBytesToWrite = nSize;
            WriteMemory.NumberOfBytesWritten   = lpNumberOfBytesWritten;

            /* Call the native API */
            bRet = DbgObjCall( SC_WRITE_VIRTUAL_MEMORY, &WriteMemory,
                               sizeof( READ_MEMORY ), &Status, sizeof( NTSTATUS ) );
            if( !NT_SUCCESS( Status ) || !bRet )
            {
                /* We failed */
                BaseSetLastNTError( Status );
                return FALSE;
            }

            /* Flush the ITLB */
            /*Nt*/FlushInstructionCache( hProcess, lpBaseAddress, nSize );
            return TRUE;
        }
        else
        {
            /* Check if we were read only */
            if( ( OldValue & PAGE_NOACCESS ) || ( OldValue & PAGE_READONLY ) )
            {
                /* Restore protection and fail */
                DbgObjNtProtectVirtualMemory( hProcess,
                                        &Base,
                                        &RegionSize,
                                        OldValue,
                                        &OldValue );
                BaseSetLastNTError( STATUS_ACCESS_VIOLATION );
                return FALSE;
            }

            WriteMemory.hProcess            = hProcess;
            WriteMemory.BaseAddress         = lpBaseAddress;
            WriteMemory.Buffer              = ( PVOID )lpBuffer;
            WriteMemory.NumberOfBytesToWrite = nSize;
            WriteMemory.NumberOfBytesWritten   = lpNumberOfBytesWritten;

            /* Call the native API */
            bRet = DbgObjCall( SC_WRITE_VIRTUAL_MEMORY, &WriteMemory,
                               sizeof( READ_MEMORY ), &Status, sizeof( NTSTATUS ) );

            /* And restore the protection */
            DbgObjNtProtectVirtualMemory( hProcess,
                                    &Base,
                                    &RegionSize,
                                    OldValue,
                                    &OldValue );
            if( !NT_SUCCESS( Status ) || !bRet )
            {
                /* We failed */
                BaseSetLastNTError( STATUS_ACCESS_VIOLATION );
                return FALSE;
            }

            /* Flush the ITLB */
            /*Nt*/FlushInstructionCache( hProcess, lpBaseAddress, nSize );
            return TRUE;
        }
    }
    else
    {
        /* We failed */
        BaseSetLastNTError( Status );
        return FALSE;
    }
}
2014-7-23 18:32
0
雪    币: 195
活跃值: (108)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
225
不知道厉害在哪!看回复,必须叼。
2014-7-23 20:50
0
游客
登录 | 注册 方可回帖
返回
//