170803 逆向-RouterScan(7)
来源:互联网 发布:java安装时出现错误 编辑:程序博客网 时间:2024/04/29 15:16
1625-5 王子昂 总结《2017年8月3日》 【连续第305天总结】
A.RouterScan逆向
B.
查看了一下detect200模块,在OD中跟踪发现是在之前得到的http数据中与特征进行对比,从而确定型号
中间出了点岔子,修改了之前以为连接的函数名connect_port,基本确定应该是查找字符串的函数,结果IDA就开始在F5反编译时报positive sp value has been found的错误
查找了一下应该是堆栈平衡的问题,开启stack pointer显示后可以看出,调用connect_port之后都会剩下0xC的堆栈未平衡。通过ALT+K可以手动修正,修改了几个以后觉得太慢,拖到整个函数的最后发现累加起来差了几千比特,这手动修正得累死
遂思考了一下,先修正connect_port的堆栈平衡,然后删除再创建,强制重新分析detect200函数即可
准备结束写流程的时候突然想起来,之前有getinfo200和getinfo401两种模块,那detect200应该也有另一种分支的detect401模块吧,在mod_routerscan中看了一眼,果然有这个sub
那么明天再分析一下401和200的不同,看看是否只是函数和爆破账户密码不同的区别
中间随便试了一下py调用dll的方法
通过ctypes模块,可以装载dll,但是注意__stdcall和__cdecl的装载方法是不同的
__stdcall:
ctypes.windll.loadlibrary(“xxx.dll”)
或
ctypes.WinDLL(“xxx.dll”)
__cdecl:
ctypes.cdll.loadlibrary(“xxx.dll”)
ctypes.CDLL(“xxx.dll”)
如果调用约定不合的话会报奇奇怪怪的错误
调用了Initialize和GetModuleCount两个函数尝试了一下,由于后者需要一个dword指针参数来作为缓冲区,刚开始调用约定装错了,导致无论怎么试都花式报错:要不是不接受参数,要不是长度不对;后来突然在IDA中看到这个函数的定义明明是cdecl,修正以后用哪个参数都大差不离可以正确返回结果“6”了
C. 明日计划
200和401两种模块的具体区别
- 170803 逆向-RouterScan(7)
- 170728 逆向-RouterScan(4)
- 170801 逆向-RouterScan(5)
- 170802 逆向-RouterScan(6)
- 170804 逆向-RouterScan(8)
- 170808 逆向-RouterScan(9)
- 170809 逆向-RouterScan(10)
- 170705 逆向-RouterScan(1)
- 170705 逆向-RouterScan(2)
- 逆向编程教程(7)
- 170707 逆向-南邮CTF逆向(WxyVM1)
- 170708 逆向-南邮CTF逆向(maze)
- 170810 Python-封装RouterScan的DLL
- android逆向7
- Rescue(逆向BFS)
- Hdu4857逃生(逆向)
- APP逆向(上)
- APP逆向(中)
- 神奇药水
- UVA
- Android Butterknife 8.4.0 使用方法总结
- C-C++中const关键字的用法及其与宏常量的比较
- [UVa 1572] 自组合(Self-Assembly)
- 170803 逆向-RouterScan(7)
- 在spring,hibernate,struts2框架整合中出现的no session问题
- 解决ScrollView嵌套RecyclerView(横向)或ListView(横向)时,横向滑动不顺畅的问题。
- 高精加、乘
- POJ3468 A Simple Problem with Integers (树状数组 | 线段树)
- Android Studio:Preference/Settings :Plugins:Icon Creator
- 扩增子分析QIIME2. 7 实验设计和统计结果元数据Metadata
- LaTeX制作PPT实例
- java String 中 intern方法的概念