ryan_knight_12吧 关注:46,983贴子:2,769,944

【技术流】问一个SIRE的汇编问题

只看楼主收藏回复

最近在照着RK(好多年前)整理的资料学习SIRE,已经完成了一些基本的修改和新增特技(比如骑兵冲锋超过X格时伪报敌军这种简单特技),但是有个修改方法上的问题不太清楚,我也没有RK和羊大的联系方式,只好跑来贴吧问了。
问题是:新增代码要求在0x8Axxxx段加入新代码,但是使用jmp或者call跳转的时候,会发生卡死(不是闪退,就是卡住动不了)。我把call的函数的函数体直接写成c3(ret)也不行,一条就卡死。相反,如果我把call的指令改成5字节的nop就没事,想请问一下这是为什么?
我没学过Intel汇编,全是看RK整理的资料在学,我理解中,jmp和call的写法就是E9/E8后边跟(跳转地址- 当前指令地址 - 5)的16bit 小端序,是这里错了么?然后我是直接用Hex在4Axxxx加入的新增汇编码。
希望有懂的旁友指点一下,正在给韩信写新兵仙特技,被卡在这里很难受hhh


IP属地:上海1楼2018-07-16 16:22回复
    后排@ryan_knight_12 @季子来归🌱 ,实在没学过Intel汇编,照着IDA、整理资料和Intel Instructions Set Guide在自学,问题描述的可能也不是很清楚
    我贴一下我具体改的代码吧,这里是在改疾驰的判定条件。
    原:
    00593B98: 8a 8f c9 00 00 00 - mov cl,[edi+000000c9] 取我方攻击
    00593B9E: 3a 8b c9 00 00 00 - cmp cl,[ebx+000000c9] 取敌方攻击
    改后:
    00593B98- E8 EB 68 31 00 - call 008AA488
    00593B9D - 83 F8 08 - cmp eax, 8 // 冲锋格数是否≥8。这行是有问题的,因为没有设置ecx等寄存器,但是重点不在功能对不对,在于会卡死。
    00593BA0 - 0F 1F 40 00 NOP // 与后文对齐
    00593BA4: 76 40 - jna 00593be6 // 与源程序相同,以下都未改过
    这里的问题就在于,就算把008AA488给改成只有一个c3,照样会卡死,但是把00593B98这一行改成NOP就没事。


    IP属地:上海2楼2018-07-16 16:27
    回复(5)
      2025-07-25 17:20:46
      广告
      不感兴趣
      开通SVIP免广告
      天书


      IP属地:河南来自Android客户端3楼2018-07-16 16:36
      回复
        8AA488本身这个地址是已经占用了吧?


        IP属地:广东来自Android客户端4楼2018-07-16 16:36
        回复(1)
          有个问题想问一下,是不是call了一个有效地址都要挂壁啊?不用保护寄存器,先压栈吗?没久写汇编,我可能乱说的。


          IP属地:北京5楼2018-07-16 17:14
          回复(6)
            文科生围观楼上大佬


            IP属地:浙江6楼2018-07-16 17:15
            回复
              593b98这段,上下文可能有跳过来到593b99 593b9A的代码,这样就跳出了


              IP属地:广东来自Android客户端7楼2018-07-16 17:37
              回复(1)
                看的一脸懵逼


                IP属地:河南来自Android客户端8楼2018-07-16 17:38
                回复
                  2025-07-25 17:14:46
                  广告
                  不感兴趣
                  开通SVIP免广告
                  向贴吧反馈一个bug,楼主发帖是乱码


                  IP属地:广东来自Android客户端10楼2018-07-16 18:21
                  回复
                    理科生同样不懂


                    IP属地:四川来自Android客户端11楼2018-07-16 18:41
                    回复
                      汇编真的头疼


                      IP属地:河南来自Android客户端12楼2018-07-16 21:35
                      回复
                        路过鼓励一下好了


                        IP属地:上海13楼2018-07-16 22:06
                        收起回复
                          hoho 程序员适合谈恋爱的 人傻钱多


                          IP属地:浙江来自Android客户端14楼2018-07-16 22:15
                          回复
                            666


                            IP属地:浙江来自Android客户端16楼2018-07-16 22:37
                            回复
                              2025-07-25 17:08:46
                              广告
                              不感兴趣
                              开通SVIP免广告
                              下学期才学微机原理的我


                              来自iPhone客户端17楼2018-07-16 22:48
                              收起回复