当前位置:→ 股海网股软教程 → 正文
  • 通达信软件指令修改技巧之浅谈

  • 相关简介:通达信软件指令修改技巧之浅谈 在软件分析过程中,为了优化原程序或在一定空间里增添代码,需要一定的指令修改技巧,如下: --------------------------------------------------------------------------------------------- 功能 指令 机器码&nb

  • 文章来源:股海网作者:股海网发布时间:2013-04-14浏览次数:下载次数:0 

通达信软件指令修改技巧之浅谈

在软件分析过程中,为了优化原程序或在一定空间里增添代码,需要一定的指令修改技巧,如下:
 
---------------------------------------------------------------------------------------------
 功能                       指令                         机器码             指令长度(bytes)
 ---------------------------------------------------------------------------------------------
 替换1个字节                 nop                          90                               1
 ---------------------------------------------------------------------------------------------
                           nop                          90                               1
                            nop                          90                               1
                           ------------------------------------------------------------------
                           mov edi,edi                  8B FF                            2
                           ------------------------------------------------------------------
替换2个字节                 push eax                      50                              1
                            pop eax                       58                              1
                            ------------------------------------------------------------------
                            inc eax                       40                              1
                            dec eax                       48                              1
                            ------------------------------------------------------------------
                            jmp xx                        eb00                            2
 ---------------------------------------------------------------------------------------------
                            mov eax,00000000h             B8 00 00 00 00                  5
                            ------------------------------------------------------------------
 寄存器清零                  push 0                         6A 00                          2
                            pop eax                        58                             1
                            ------------------------------------------------------------------
                            sub eax,eax/xor eax,eax        2B C0/33 C0                    2
 ---------------------------------------------------------------------------------------------
                           cmp eax,00000000h               83 F8 00                      3
                            je _label_                      74xx/0F84xxxxxxxx             2/6
 测试寄存器是否为零           ------------------------------------------------------------------
                            or eax,eax/test eax,eax         0B C0/85 C0                   2
                            je _label_                      74xx/0F84xxxxxxxx             2/6
 ---------------------------------------------------------------------------------------------
                           mov eax,0ffffffffh              B8 FF FF FF FF                5                        
                           ------------------------------------------------------------------                      
                            xor eax,eax/sub eax,eax         33 C0/2B C0                   2       
                            dec eax                         48                            1
 置寄存器为0FFFFFFFFh        -------------------------------------------------------------------
                            Stc                              F9                           1
                            sbb eax,eax                     2B C0                         2
 ---------------------------------------------------------------------------------------------
                           jmp _label_                     EBxx/E9xxxxxxxx               2/5
 转移指令                    ------------------------------------------------------------------
                            push _label_                    68 xx xx xx xx                5
                            ret                             C3                            1
 ---------------------------------------------------------------------------------------------
很多指令针对eax被做了优化,要尽可能多地使用eax。例如,“xchg eax,eax”只需要1个字节,而用其他寄存器则需要2个字节。
 

 ☟问题反馈 ☞┄┄┄┄┄┄┄┄┄┄→收藏资源:

通达信软件指令修改技巧之浅谈

  • 下载资源所需积分

    0

  • 当前拥有积分

    0

上传会员: 
股海网
文件大小: 
Bytes
上传时间: 
2013-04-14
下载积分: 
-
免责声明: 
请仔细阅读并同意后才能下载
本附件为用户分享上传,股海网没有对文件进行验证,不能保证下载资源的准确性、安全性和完整性,也不保证下载资源能正常安装和使用,且下载后扣除的积分无法退还,除非您充分理解并完全接受本声明,否则您无权下载。
本站对提供下载的软件、指标、资料等不拥有任何权利,其版权归该下载资源的合法拥有者所有。本附件仅供学习和研究使用,不得用于商业或者非法用途,如有侵犯您的版权, 请参看 《股海网侵权处理流程》《股海网免责声明条款》
点击下载无反应时,更换主流浏览器重新登录操作,如360浏览器、Edge浏览器、谷歌浏览器,个别浏览器有不兼容现象。
勾选以下表示您已经阅读并同意以上声明才能下载本文件,扣除积分无法退还!
我已阅读所有条款规定, 请点我同意 所有条款内容!我自愿下载!
提示:如下载失败,请点关闭刷新此页面或提交问题反馈给管理员→
关闭

关于我们 - 联系我们 - 隐私政策 - 免责声明 - 下载帮助 - 广告合作 - SiteMap - TOP
增值电信业务经营ICP许可证:湘B2-20210269 湘ICP备09016573号-10 湘公网安备43108102000040号
Copyright © 2021 铭网科技,All Rights Reserved.