1625-5 王子昂 总结《2017年8月4日》 【连续第306天总结】
A. RouterScan逆向
B.
IDA结合OD查明了DetectRouter401模块的功能,与200模块不同,401是在Detect模块中对照数据查找特征,不符合则直接进行exp尝试登陆,登陆成功后通过GetInfo模块获取信息;而200模块是在Detect模块中对比特征,符合则确认型号,然后在GetInfo模块中进行exp,成功后获取信息
至此ScanRouter的大致流程就清楚了,下一步明确各个函数的参数从而通过python进行包装调用

Initialize

初始化
不接受参数
返回值为-1/0,表示是否成功

GetModuleCount

获取模块数量
接收一个缓冲区参数,在其中存放模块数量
返回值为-1/0

GetModuleInfoW

获取模块信息
接收两个参数,分别为模块序号和缓冲区
  缓冲区使用(1+8+8)个字节,分别存放选中状态、模块名、显示名称
返回值为-1/0

SetParamW

设置参数
接收两个参数,分别为参数序号和内容
  初始化时为(0,0),(1,1),(2,0x5ECA70),(3,0x5F2460)
  具体功能未知
返回值为-1/0

GetParamW

获取参数
接收四个参数
  第1、3个一般为4、5等看起来为序号的数
  第2、4个一般为相差1个字节的相邻缓冲区
  具体功能未知

PrepareRouter

扫描准备
接收四个参数,具体未知
返回值为-1/0

ScanRouter

开始扫描
接收一个参数,具体未知
返回值为-1/0

FreeRouter

释放缓存
接收一个参数,与ScanRouter的参数相同
返回值为-1/0

剩下的问题在于ScanRouter中的输出内容都是通过一个函数sub_4DAFC8输出的,它应该是针对GUI的列表项来输出的
170804 逆向-RouterScan(8)
在OD中能看到堆栈中存放着端口、ip等信息,但不明白如何传入导出函数,明天再看看GUI的ID啥的
C. 明日计划
RouterScan逆向

相关文章:

  • 2022-01-22
  • 2022-12-23
  • 2021-09-29
  • 2021-04-08
  • 2021-09-03
  • 2022-01-03
  • 2021-10-24
  • 2021-05-25
猜你喜欢
  • 2021-12-09
  • 2021-10-31
  • 2021-12-15
  • 2021-12-04
  • 2021-12-15
  • 2021-10-26
  • 2022-01-12
相关资源
相似解决方案