首页
社区
课程
招聘
[求助]ida生成C伪代码失败,提示太复杂
发表于: 2017-12-3 16:12 7321

[求助]ida生成C伪代码失败,提示太复杂

2017-12-3 16:12
7321
       原来10M带宽用idm下载能满速,现在升到200M带宽后,idm使用32连接数最大下载速度3.5M,虽然同时下6个文件可以接近满速,但idm已经卡到很难操作了。至少说明服务器应该没有限制更多的连接数,于是想破解下idm6.29的连接数。
       在网上找的该注册表的方法没用,所以猜测程序内有最大连接数判断,通过搜索注册表字符串'MaxConnectionsNumber',定位到引用的函数unknown_libname_20后就没有上一级引用了,于是用Cheat Engine断点找到了sub_5A1760,并修改二进制取消最大32的限制。
       本以为如此简单就成功了,结果运行时只要超过32就崩溃。继续查找 调用sub_5A1760 的函数,找到 sub_573590,结果无法生成C伪代码,提示
      通过CE断点回退到sub_576868,ida同样无法生成C伪代码。
      CE继续定位到sub_5A5890,发现有alloca(428336);……_eh_vector_constructor_iterator_((int)&v67, 13384, 32, (void (__thiscall *)(_DWORD))sub_5A49D0, (int)sub_5A49A0);……_eh_vector_destructor_iterator_((int)&v67, 13384, 32, (void (__thiscall *)(_DWORD))sub_5A49A0);
      查询分别是栈检查、new[]、delete[],于是猜测是内存分配不足导致崩溃,结果32都修改到240后,点下载直接崩溃,之前不过是连接数达到32后才崩溃。
      继续通过文件、网络、消息api、搜索 13384 定位查看伪代码,发现很多32常量条件或循环判断,而且感觉无法生成C伪代码的复杂函数应该有关键代码,并因此没办法继续猜了。只有少数几处改改试试还成,那么多就算全改了也未必能行,寥寥几句其实已经浪费了几天时间了,到此放弃了。
      本人不过是想靠读懂C伪代码,靠运气改改试试,并不懂多少这些软件的知识,继续深究已经大大超出我的预想和能力了。
      只是心有不甘,想如果ida生成伪代码不出错,或许有机会读懂。又试了ida64,结果都无此功能。

      希望大神有解决办法,怎么让ida64支持生成C伪代码?如果大神有闲暇破解下idm的连接数,更是感激不尽!先谢了!

      另,看fdm能定义更大的连接数,下载试了下,它叫分段数,结果改大也无用,超过20连接服务器就拒绝了,鉴于此还是idm更强大,至少能到32连接。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 14
活跃值: (54)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
应该是加花了把,再者你的什么3.5M下载速度  ,什么6个连接....我没看懂,应该是服务器限制单个连接下行速度就是3.5M把    和你本地什么什么没有关系把?
2017-12-4 08:54
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
heone 应该是加花了把,再者你的什么3.5M下载速度 ,什么6个连接....我没看懂,应该是服务器限制单个连接下行速度就是3.5M把 和你本地什么什么没有关系把?
谢谢回复,云盘单连接限速100k,idm单文件最大32连接,下载能达到3.5M,200M带宽下载满速25M,同时下载6个文件才能接近满速,这时候idm很卡很难操作再下载第7个文件。我就是希望单文件下载能够满速,所以想把连接数改到240。不了解加花是怎么回事,有办法破吗?
2017-12-4 10:30
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
heone 应该是加花了把,再者你的什么3.5M下载速度 ,什么6个连接....我没看懂,应该是服务器限制单个连接下行速度就是3.5M把 和你本地什么什么没有关系把?
sub_573590,ida可以生成Graph  view,看样子确实很复杂,下一函数为sub_576C9D,sub_573590函数总共14093字节,是否够大导致ida内存不足无法生成c伪代码?
2017-12-4 10:46
0
雪    币: 14
活跃值: (54)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
正常来说,这种软件应该是新增线程来进行下载的吧,你找一下createThread相类似的函数是否有循环....有的话,直接把循环加大就应该好了,如果真是是多线程的,你改其它循环貌似没啥用...
2017-12-4 10:57
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
之前用Process  Lasso查看过,下载前线程7,下载后线程先增到13,后减到11,所以没定位线程api,我再找找试试
2017-12-4 11:27
0
游客
登录 | 注册 方可回帖
返回
//