拓扑变换的唯吧 关注:127贴子:3,542
额,人物无法看懂,因为没汇编,不知道你要干嘛。
抱歉,我真的很笨。
麻烦你了。@a309179891


1楼2015-03-23 11:34回复
    求汇编代码。跪求


    2楼2015-03-23 11:34
    回复
      手机打字很慢,我慢慢打


      IP属地:浙江来自Android客户端3楼2015-03-23 11:35
      收起回复
        第一步就是将4B48E8地址值换成4B4000跟%f一样就是MOV [4B48E8],4B4000。但是这样貌似会有连续00 00就差值法,而这个汇编转成16进制具体我忘了,比如是:01 02 03 04就在def后写上这些


        IP属地:浙江来自Android客户端4楼2015-03-23 11:41
        回复
          第二步 MOV [4A4668],00006625将%i变成%f,6625对应就是%f,这里同样得用差值,转为16进制如05 06 07 08同样写到def后,这一步就是调用%f,%i是整数这位置貌似是气条位置改成%f后气条值就变成0.000000了就会一直调用4BE848这个地址,于是4BE848改成4B4000再在此处写代码就利用了def执行了%f


          IP属地:浙江来自Android客户端5楼2015-03-23 11:49
          回复
            之后就是报幕ko的汇编代码,最后跳转496651比如16进制为10 11 12 13 14 15 16 17 18 19 但是注意的是这些值不是写到def后面,因为直接写到def后但运行到这段代码后就直接执行了报幕ko了,但是4B4000处依然是空的!由于def只执行一次,所以出现了我们之前遇到的选人时确实都为1但是r0又重置为0导致没任何效果了!


            IP属地:浙江来自Android客户端6楼2015-03-23 11:54
            回复
              正确做法是用汇编语句将4B4000处写值:如上述应该这么些:MOV 4B4000,13121110,MOV 4B4004,17161514,等这样就在4B4000写上了对应报幕ko及其跳转回496651的汇编代码,最后把这些汇编代码换成的16进制写到def后加上返回值那些就行了


              IP属地:浙江来自Android客户端7楼2015-03-23 12:00
              回复
                其实我觉得将%i变%f应该放在跳转后面就跟%f过程一样了,但是由于转回496651有5个16进制不好弄后面的代码我就提到前面去了,不过也没报错就是了


                IP属地:浙江来自Android客户端8楼2015-03-23 12:03
                回复
                  @拓扑变换的唯


                  IP属地:浙江来自Android客户端9楼2015-03-23 12:10
                  回复
                    弄好了之后你可以试试cns,alive之前我写过但是报错了,于是我认为是这些地址只有在选完人进入r0相应位置才有值,选人值进行写值不行,但是我之前写时代码错了!所以再去试试,要是成功了那就只剩判断p侧的问题了


                    IP属地:浙江来自Android客户端10楼2015-03-23 12:18
                    回复
                      @a309179891
                      感激,你的意思是:
                      MOV [4B48E8],4B4000 ; 这个没有00 00吧?
                      MOV [4A4668],00006625 ; 这个倒是有00 00,所以我会差值
                      话说,差值用 add后再sub 行么?为何%f是
                      MOV 4B4000,13121110 ; 报KO
                      MOV 4B4004,17161514 ; jmp 496651
                      最后,还要添加
                      sub ESP,1
                      mov [ESP],47EB31
                      RET
                      么?
                      我马上试试


                      11楼2015-03-23 12:38
                      回复
                        MOV [4B48E8],4B4000,其实在内存中是004B48E8,转换成16进制后就跟4B4000的00连起来了


                        IP属地:浙江来自Android客户端12楼2015-03-23 12:49
                        回复
                          嗯最后加上sub那些,成功了话有空再试试cns,alive,我今天满课没时间弄


                          IP属地:浙江来自Android客户端13楼2015-03-23 12:51
                          收起回复
                            抱歉,又遇到瓶颈了
                            “之后就是报幕ko的汇编代码,最后跳转496651比如16进制为10 11 12 13 14 15 16 17 18 19 但是注意的是这些值不是写到def后面,因为直接写到def后但运行到这段代码后就直接执行了报幕ko了,但是4B4000处依然是空的!”
                            “正确做法是用汇编语句将4B4000处写值:如上述应该这么些:MOV 4B4000,13121110,MOV 4B4004,17161514”
                            这句话 这句话没怎么理解。
                            主要是,不知道该怎么写了
                            ---------------------------------------------
                            MOV [4B48E8],4B4000
                            ;差值法 凑006625
                            MOV [4A4668],23337736
                            sub [4A4668],23331111
                            mov eax,[4b5b4c]
                            add eax,12bc45 ; +BC34 目的是 1P胜利
                            sub eax,120011
                            ; 防止出现 00 00 这样的连续数字
                            mov [eax],33333333
                            sub [eax],33333332
                            mov [eax+4],33333333 ; BC38 目的是 K.O
                            sub [eax+4],33333332
                            sub ESP,18
                            mov [ESP],47EB3
                            RET
                            -----------------------------------
                            但是,
                            MOV 4B4000,13121110
                            MOV 4B4004,17161514
                            该加在哪里呢? 如果是整个 话说,给4B4000赋值,我记得赋值很多多啊,光光8个bit的数字,太少了吧
                            @a309179891


                            14楼2015-03-23 12:53
                            回复
                              MOV那些值我只是举例,实际要将汇编换成16进制,好像是C7 05 40 4B啥的我用的手机不知道值胡写的,


                              IP属地:浙江来自Android客户端15楼2015-03-23 12:54
                              收起回复