首页
社区
课程
招聘
[原创]WindTrudging反汇编跟踪OD插件
发表于: 2010-12-13 21:35 15703

[原创]WindTrudging反汇编跟踪OD插件

2010-12-13 21:35
15703
收藏
免费 0
支持
分享
最新回复 (33)
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
26
关注此工具,希望LZ不要放弃,不断改进
2011-1-3 21:47
0
雪    币: 1231
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
这个等把语法弄完之后吧,这段时间在做语法分析,刚刚构建完成语法树,由于本人太懒或是各种原因,速度很慢,不过总归是在前进,我时常是不知道怎么弄,一个人发呆,然后发呆个几天,然后灵感来了,然后再做,呵呵。
2011-1-12 19:47
0
雪    币: 1231
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
这个以后我会专门开一贴来具体阐述,并不复杂,因为我也不想弄得太复杂,那不是程序的全部,而是踏进门的第一步,分析才是程序的全部。从原理上说需要改进的东西挺多,仔细研究OD的API就会发现,能够对一大段代码设断的API只有设置内存断点,虽然INT3速度很快,但是不能对一个区段都设置INT3断点吧?使用内存断点又有几个缺陷了,一个是速度慢,再一个是设置内存断点只能设置一个,所以我的程序也只能分析当前的代码段,也就是只能对当前区段设置内存断点,拦截当前代码段的运行过程,为了提高速度,所以使用了ANIMATE_TRIN ,也就是运行跟踪,INT3是静默拦截的,但是对内存断点则不适用,大大降低了速度,将来必须做的就是对内存断点也进行静默拦截,因为没有OD源代码,所以只能逆向和修改其关于内存断点相关的代码,让它不要老是弹出来吓人,这个只能等将来做了,还有内存断点只能设置一个的缺陷也需要逆向来改进。这个插件几乎完全是用指针来做的,我一向不喜欢使用指针,但是这个插件却不得不使用指针来做,因此做起来也相当辛苦,目前还没有释放内存,内存泄露是一定的
2011-1-12 20:18
0
雪    币: 201
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
29
楼主加油~~坚持~~
2011-1-12 20:26
0
雪    币: 445
活跃值: (52)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
30
好东西,真的,希望做好~
2011-1-12 20:27
0
雪    币: 1231
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
关于函数调用获取参数的问题,要想获取调用的参数必须先知道参数个数,stdcall 是C++使用的调用方式,这种方式最容易获取参数个数,因为是由被调用者清除堆栈,只要计算返回后弹出的堆栈个数就行,因为堆栈平衡嘛,这也是我的程序中使用的方法,但是使用 cdecl  方式调用的函数则难以判断,因为不需要弹出堆栈,所以,要想准确的读取cdecl  方式调用的参数个数,只能分析其函数中使用到了哪些堆栈,如果是EBP和RETN指针之上的,那就是调用到的参数了。有没有其他方法?我也不甚清楚,毕竟我也是菜鸟啊。
2011-1-12 20:33
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
32
我觉得OD自带的不错,楼主加油,争取青出于蓝,嘿嘿
2011-1-12 21:32
0
雪    币: 258
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
33
关注。。
做动态污点分析是不是会比较方便?
2011-1-12 22:27
0
雪    币: 1231
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
动态污点分析是不是就是把目标设为污点,看对周围有无污染,其实我的设计思想是包含这些分析的,因为这样做才是真正的动态分析啊。
2011-1-13 01:07
0
游客
登录 | 注册 方可回帖
返回
// // 统计代码