-
-
AppendMenuA 的灵异事件
-
发表于:
2009-12-15 18:24
4920
-
http://user.qzone.qq.com/859541900/blog/1260869252
AppendMenuA 建 子菜单的时候 原本参数应该是 MF_STRING 但写成 MF_STRING or MF_POPUP 也不会 出错,但 有可能会出现 灵异的事件
在批量创建 菜单的时候 很频繁的调用 这个函数
如果 创建 子菜单 参数 都是 MF_STRING or MF_POPUP
然后 也有一个程序正在频繁的创建 菜单 或者 刚好也在创建 菜单 可能会发生 其他程序的 菜单被插入到 自己程序里的现象 !!!MF_POPUP 关键在这个参数 去掉就不会出现这个现象
测试 系统
ps 的菜单被插入到这个程序里了
我怀疑 是 碰巧 同时 2个进程一起调用了AppendMenuA 才出现的
第一个AppendMenu 是向菜单添加子菜单 第二个是把 MF_POPUP 类型的菜单 添加到 上级菜单
第一个AppendMenu 我参数使用了 MF_STRING or MF_POPUP 才出现这个现象
只用 MF_STRING 就不会出现
第一个AppendMenu 是向菜单添加子菜单 每次菜单句柄都是他的上级菜单句柄
第二个 是 MF_POPUP 类型的菜单 添加到 最顶级的菜单
这个从表面分析 第一个 AppendMenu 参数 为MF_STRING or MF_POPUP 才出问题
那应该是第一个的问题 传递给 顶级菜单的子菜单 ItemID
字段 传递成了 其他程序的 菜单句柄 所以就添加进去了
OD 日志
顶级菜单一共六个 测试第 2个 AppendMenu 中断 次数是对的 没多执行
第1个 AppendMenu 中断发现传递进去的 ItemID 参数也都是 我设置的ID 值
程序是隔离的 …… 能吧 这个参数传递错 那只有在 AppendMenu 内部了
载入 OD 后 先别运行 运行 IE 后 马上 在 OD 里启动 发现这个
有想测试的 联系我 我把程序发给你 ! Email :AsmFactory@foxmail.com
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法