注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Cのmugen

とにかく 楽園パレードへようこそ

 
 
 

日志

 
 

【凶恶个人探究】statedef溢出原理初步个人总结  

2017-08-20 21:00:57|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1.从statedef的f后开始算起第57个字符起会发生溢出.
第57个字符到60个字符就是返回地址(ASCII码16进制).
statedef溢出只在角色选定时执行一次.并且该地址为动态.返回值为47EB31.

2. ADD ESP,10
RET
寻找执行了以上代码的地址,溢出返回地址写到这个地址.(可通过在内存表中搜索83 C4 14 C3找到.每执行1次跳转,ESP+4.)
执行了以上代码后,会再跳转到我们自己写了汇编代码的目的地.

3.注意点
C32写MUGEN的STATEDEF溢出不能用到的16进制数有:1A 、3B
00用0D 0A表示
00不能和20(也就是空格连在一起)
不能同时表示两个以上00,如00 00

解决办法用差值法

例: mov [eax],00000001
等同于: mov [eax],01010101
sub [eax],01010100
01010101-01010100=00000001.

  评论这张
 
阅读(24)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017