首页
社区
课程
招聘
[求助]硬断 代码的问题!
发表于: 2016-11-13 00:36 5264

[求助]硬断 代码的问题!

2016-11-13 00:36
5264

  
遇到CALL步过不进, 其他均单步走 。

//反汇编解析
DWORD dwCodeSize = Disasm((HWND)-1, ExceptionInfo->ExceptionRecord->ExceptionAddress, &szDisasm, &szDisasmAll);
                if (szSub == "call") //如果是CALL 步过
                {
       
                                dwAddr = (DWORD)ExceptionInfo->ExceptionRecord->ExceptionAddress + dwCodeSize;
                                ExceptionInfo->ContextRecord->Dr0 = dwAddr;
                                ExceptionInfo->ContextRecord->Dr7 = 0x405;
                }
                else
                {
                        ExceptionInfo->ContextRecord->Dr7 &= 0xFFFFFFFC;
                        ExceptionInfo->ContextRecord->EFlags |= 0x100;
                }

没循环的基本没事 都可以正常跑;

int a=0;
for(int i=0;i<100000000;i++)
{
a=i;
}

像这样的循环原始代码消耗0秒;用硬件断走 需要几十分钟 有什么办法吗?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
你的反汇编引擎不行
你需要更快的
2016-11-13 04:36
0
雪    币: 615
活跃值: (530)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
老V过的是美国时间呀,建议记录EIP呀,这样效率一点。还有怎么个动态法,分配一段内存,然后SHELL CODE形式把代码复制进去吗?  把EIP记录下来,后期再比对转换成汇编的形式
2016-11-13 08:27
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
嗯!汇编代码经过花指令加密后 shell code拷贝后执行的代码! 然后我想自动跟踪这代码解析出来~大部分都可以正常解析了 就是有那么一小撮是个循环挺大的 正常他执行才几十ms 用硬断跑一圈要50分钟。。
试试V校说的 换个反汇编看看了   网上下了份 《XASM》的反汇编 看起来代码挺少 不知道速度如何了!
2016-11-13 15:30
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
换了 XASM 这个引擎速度也没怎么快起来啊!

我是dll注入的  有没有可能硬断速度慢?int断比他快吗
2016-11-13 16:04
0
雪    币: 12848
活跃值: (9108)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=他她它;1452760]换了 XASM 这个引擎速度也没怎么快起来啊!

我是dll注入的  有没有可能硬断速度慢?int断比他快吗

DWORD XASMDisasmOneCode(LPVOID pCodeAddr, CString *szDisasm)
{
        byte        szCodeBuf[20];                       
        m...[/QUOTE]

代码里混了一坨MFC,能不慢么。。。
2016-11-13 17:11
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
去掉 AfxExtractSubString 和cstring 一样的 好伐!!而且字符串的长度都很短
分割都是 mov eax,ebx   这样短的字符串 根本没消耗什么时间
2016-11-13 20:32
0
雪    币: 222
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这是正解!楼主好好理会这段文字的意思啊。用这个方法跑大程序都不会卡的。
2016-11-14 11:39
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
9
进入你的代码前,系统要走过n多东西,加快速度,你需要直接hook #DB
2016-11-14 18:51
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
hook #DB 大大说是VT接管异常吗?还是什么高大上的黑科技!有传送门吗
2016-11-14 22:02
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
11
idt hook int1
VT啥
2016-11-14 23:51
0
雪    币: 222
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
用了vt接管过来异常也慢!几分钟就上亿次异常。
2016-11-15 11:12
0
雪    币: 10918
活跃值: (3289)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
也许进入死循环了.
那几行代码是不会影响速度的.
2016-11-15 11:44
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
我那举例而已  实际循环次数 for 77868764次 消耗20分钟 ,但原始代码执行才需要几十毫秒;差距还是有的
2016-11-15 14:40
0
雪    币: 10918
活跃值: (3289)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
执行77868764次应该不会是几十毫秒吧.
2016-11-15 14:48
0
雪    币: 222
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
所以你不能走异常这个途径来记录信息。
2016-11-15 14:51
0
游客
登录 | 注册 方可回帖
返回
//