修改软件返回值,遇到的问题
本帖最后由 菜鸟先飞 于 2016-8-19 11:39 编辑前同事写的对接api,其中有个返回值弄错了(源码丢失)。
这个软件有8个api接口 只修改这一个接口的返回值即可
我整了半天,也没修改成功。
我想把图中4返回值 修改成5 ,就是不返回已经注册,返回其他错误 !!!请大家告知方法
《已追加HB至888》
感谢虚无空幻 问题得到详细解答 谢谢这位大牛
不提供售后,直接给分吧.....
醉了,楼主不是成员吗,怎么这么穷.
鉴于我这么辛苦,再买点分给我嘛......
1.压入4个参数 必须是字符串地址 因为可读 避免大错
2.又一个连接字符串,需要把证书转为字符串,由于不知道具体参数,可以直接改为别的call来返回自己想要的值
0046AB09|.E8 7265F9FF call 软件.00401080
找个栈内存改为http://****/code-platform/platform/synStatus.do?number=13111111111&contentNo=1&status=2
字符串必须在栈区,因为有可读权限
修改的代码必须在代码段,因为有可执行权限
地址126e80
004FFB3B B8 806E1200 mov eax,0x126E80 ;ASCII "http://114.119.5.218:7539/code-platform/platform/synStatus.do?number=13111111111&contentNo=1&status="
0012F358 001B0268ASCII "JSESSIONID=C07BF922FFC40B2DAFA81C17BA1BBB97"
0012F35C 001884F0ASCII "Accept: */*\r\nReferer: http://****/code-platform/platform/synStatus.do?number=131111111"
0012F360 001B0140ASCII "Server: Apache-Coyote/1.1\r\nSet-Cookie: JSESSIONID=C07BF922FFC40B2DAFA81C17BA1BBB97; Path=/code-platf"
http://114.119.5.218:7539/code-platform/platform/synStatus.do?number=13154652365&contentNo=&status=status
001B00F001 00 00 00 05 00 00 00 65 72 72 6F 72 00 00 00......error...
01 00 00 00 01 00 00 00 34 00 00 00 00 00 00
这里应该是返回值 4字节? 长度 字符串
改成 4
------------
主要思路
找个按钮事件,或者一个循环执行.
找到你想要的函数
执行这个函数,并且平衡堆栈
对网站接收返回值进行判断(修改接收返回值)
往下走,看那个压入参数是这个字符串类型的指针
0046AC90|.E8 BBE90000 call 软件.00479650
好吧....没找到处理处理的call,对易语言的调用方式比较绝望....
还有个方法.在获取网页内容call后面修改网页返回值
首先判断返回值为是否为4,然后修改为5....
0046ABE1|.E8 7E68FCFF call 软件.00431464
返回值eax
下面添加个jmp,先找个可写的内存段
004FF083 00 db 00
{:5_118:}传说中的沙发。。 论坛有大神,帮你顶上去,希望有人出手
之前提交还需要审核.....
楼主充点CB再审核吧.不然这点分让我情何以堪.........
虚无空幻 发表于 2016-8-16 20:00
之前提交还需要审核.....
楼主充点CB再审核吧.不然这点分让我情何以堪.........
因为call的返回值是赋值给eax的
而易语言的字符串类型是这样的
01 00 00 00 先是4个字节不知道干啥用
05 00 00 00 开始代表字符串长度
xx xx xx xx xx 字符串
我修改的是判断是否为0x34. 如果是则修改为0x35
看看我是不是来晚了
页:
[1]
2