最近给朋友搞一个 C# 的项目,用到了一些工具,感觉还挺有意思的......
SSokit
项目地址:https://github.com/rangaofei/SSokit-qmake
一个 macOS 下的 TCP/UDP 调试工具,支持服务端和客户端模式,可以互相发送消息。
Sokit
项目地址:https://github.com/sinpolib/sokit
Windows/Linux 下的一个 TCP/UDP 工具,使用 Qt 框架编写,上面的 SSokit 貌似是从这个项目衍生出来的。
ILSpy
项目地址:https://github.com/icsharpcode/ILSpy
一个开源的 .NET 反编译器,官网介绍支持的特性很多:
- Decompilation to C#
- Whole-project decompilation (csproj, not sln!)
- Search for types/methods/properties (substring)
- Hyperlink-based type/method/property navigation
- Base/Derived types navigation, history
- BAML to XAML decompiler
- Extensible via plugins (MEF)
- Check out the language support status
不过我只用到了第一条。如果不是混淆很厉害的代码,基本可以做到完美还原。
dnSpy
项目地址:https://github.com/dnSpy/dnSpy
Windows 下用的一个反编译器,但项目介绍里说的定位是一个 debugger and .NET assembly editor,可以在没有源代码的情况下编辑/调试应用。
界面上跟 Visual Studio 很像,支持深色和浅色模式:
Ildasm
项目地址:https://docs.microsoft.com/en-us/dotnet/framework/tools/ildasm-exe-il-disassembler
Visual Studio 自带的反编译工具,macOS 下也可以使用,直接在“打开”的时候选择 dll 类型的文件即可。
NetCat
项目地址:http://netcat.sourceforge.net/
一个 TCP/IP 网络工具,macOS 自带,命令行敲两下就可以起动/连接一个服务。
左边带 -l
参数是启动服务端,右边是作为客户端,启动后直接输入文本回车就可以向对侧发送消息。
向日葵
一个免费的远程工具,很好使。官网:https://sunlogin.oray.com/
Parallel Desktop
虚拟机软件,令人惊讶的是,Parallel Desktop 竟然可以做到鼠标在两个系统里无缝衔接,体验太棒了。就是试用期有点短,但是打算买一个了。
注:16 寸的 MacBook Pro 在试用期会有联网问题,不确定购买后还有没有,如果想买的话可能要谨慎一点。
Python
也是拿来调试 TCP 的。贴一段启动服务的代码吧:
#!/usr/bin/env python3
import socket
HOST = '127.0.0.1'
PORT = 44818
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
print("data:", data)
if not data:
break
conn.sendall(data)
结语
暂时就这些,想到什么再补充吧。