babyrjw 发表于 2016-1-1 12:59

某够票软件 查询 和 提交代码分析

本帖最后由 babyrjw 于 2016-1-1 13:02 编辑

前面发了两个帖子 http://www.52pojie.cn/thread-448511-1-1.html, http://www.52pojie.cn/thread-448175-1-1.html
一直很简单,后来原作上了SE壳,我这边机器性能不行,不方便调试,分享出已阅读的部分代码,供大家参考

带壳跑比较简单,od挂上后,先alt+M 软件的rsrc 区段F2下断,F9运行,停下来后,执行以下四条od脚本,
repl 4031C9,#0F844E000000#,#EB5290909090#,14
repl 40399e,#0F8407000000B801000000EB05#,#90909090909090909090909090#,25
repl 4048F5,#7505E8B0878600#,#9090B8E4BBA800#,16
repl 40358F,#0F8494000000#,#E99500000090#,14
然后F9继续运行,到登陆窗口后,在OD的内存区域Ctrl+G,跳转到0xa8bbe4,从该地址开始的字节修改为以下数据,修改之前 取消 保持大小的勾
010000003B000000B5C7C2BCB3C9B9A60D0A310D0A322E322E322E320D0A313435303530373837300D0A340D0A3535350D0A360D0A300D0A3134363135303738373000
F9运行,然后在登陆窗口输入任意用户名密码登陆

登陆进入后第一个问题是,查询,和提交车票功能有bug,表现为,输入正确的验证码后程序不提交,重复弹出验证码,输入多次后,查询功能全部返回 未知错误。


外部行为观察:查询功能全部返回未知错误时,程序仍然继续向12306提交,这里的暗桩有两个可能:1是篡改了提交数据,2是篡改了返回结果,时间有限,并未继续跟进,如果其他感兴趣的,希望以下分析对您有帮助

查询订单的代码:

4604f2这里进入查询线程,查询线程查询到票后,提交线程开始弹出验证码窗口,提交

441406 这里是查询线程的代码入口处44168A 这是查询12306后,12306返回的结果


提交订单的代码

447ECB 判断票是否售完,售完 jmp 44c1B9直接返回

447FDC 拼接url完成后,提交到12306 ConfirmPassenger/autoSubmitOrder
4480D5 判断是否 网络繁忙,稍后重试
448120 判断IP是否 被封

44829B 又提交一次12306 ConfirmPassenger/autoSubmitOrder
4483EB 判断是否12306服务器为响应1
448446 判断ip是否被封

4484AB 使用\r\n分割返回结果
4484E8 判断是否 12306服务器访问失败
448548 判断分割后的字符串为0,则是CDN问题,jmp 44c1b9结束,
4485AE 判断是否含有“result”,如果没有,未知错误,jmp 44c1b9结束,

4486D4 按#号分割后
448769 是否提交订单失败,jmp 44c1b9结束,
4487A2 是否票已售完,放弃提交2,jmp 44c1b9结束,
4487DB 是否余票不足,且不允许部分提交,jmp 44c1b9结束,

448981 getQueueCountAsync
448A80 判断是否含有 ticket:""
448A90 含有着直接跳转44836获取验证码,否则判断各种错误类型

448E54 取回验证码

448F2B 判断取回的验证码是否小于0x2328,大于则进行判断,小于 jmp 4496f5
             接下来使用使用若快打码平台判断,返回结果可能是小图未匹配,文字未识别
             验证码识别后就准备提交到12306,提交后判断返回结果

448F76 处应该是识别验证码
                44D8B0 判断验证码识别方式,0,1,2,3,其中0好像是若快平台,2是手动选择
         
4496F5 判断是否网络繁忙

44979e 判断是否大于0x3E8,大于则获取验证码失败,




babyrjw 发表于 2016-1-17 14:00

wshze 发表于 2016-1-17 12:41
有一张软件检测到破解直接返回的结果,根本没提交。
另一张是去掉检测后返回的结果。应该是还有其他暗桩 ...

好久没有跟进版本了,没有那么多时间……记得之前分析的时候注意到到处有插入md5对比的代码,不太清楚具体是在哪里直接返回的。具体有没有提交需要抓包分析一下,也可以再读一下提交线程那里的代码

wshze 发表于 2016-1-17 12:41

babyrjw 发表于 2016-1-17 10:59
具体是什么问题呢?
第一重验证是怎么的验证的啊?

有一张软件检测到破解直接返回的结果,根本没提交。
另一张是去掉检测后返回的结果。应该是还有其他暗桩。

zjcnew 发表于 2016-1-1 13:15

楼主厉害,学习中。

520_ai_in@sina. 发表于 2016-1-1 13:17

大神 厉害 这么详细

jht168888 发表于 2016-1-1 13:25

大神呀, 只能膜拜!

zhangbaida 发表于 2016-1-1 13:34

膜拜大神呀,能不能出个截图分析呀

thesame 发表于 2016-1-1 14:18

测试了楼主破解的软件,开启查询任务几分钟后,就会显示查询错误,并不是封了ip的原因,应该是软件的原因,希望楼主解决一下!最后,楼主大神!膜拜!

thesame 发表于 2016-1-1 14:28

这个就是查询失败的截图

babyrjw 发表于 2016-1-1 14:37

thesame 发表于 2016-1-1 14:28
这个就是查询失败的截图

这个问题已经发现了,不过还没找到具体地方

shenghuo 发表于 2016-1-1 14:51

大神费心了 辛苦{:1_921:}

liuxiao163 发表于 2016-1-1 14:52

不能停 继续顶起 大神加油
页: [1] 2 3
查看完整版本: 某够票软件 查询 和 提交代码分析