最近给朋友搞一个 C# 的项目,用到了一些工具,感觉还挺有意思的......

SSokit

项目地址:https://github.com/rangaofei/SSokit-qmake

一个 macOS 下的 TCP/UDP 调试工具,支持服务端和客户端模式,可以互相发送消息。

SSokit.png

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

不过我只用到了第一条。如果不是混淆很厉害的代码,基本可以做到完美还原。

Ilspy.png

dnSpy

项目地址:https://github.com/dnSpy/dnSpy

Windows 下用的一个反编译器,但项目介绍里说的定位是一个 debugger and .NET assembly editor,可以在没有源代码的情况下编辑/调试应用。

界面上跟 Visual Studio 很像,支持深色和浅色模式:

dnSpy.gif

Ildasm

项目地址:https://docs.microsoft.com/en-us/dotnet/framework/tools/ildasm-exe-il-disassembler

Visual Studio 自带的反编译工具,macOS 下也可以使用,直接在“打开”的时候选择 dll 类型的文件即可。

Ildsam.png

NetCat

项目地址:http://netcat.sourceforge.net/

一个 TCP/IP 网络工具,macOS 自带,命令行敲两下就可以起动/连接一个服务。

左边带 -l 参数是启动服务端,右边是作为客户端,启动后直接输入文本回车就可以向对侧发送消息。

NetCat.png

向日葵

一个免费的远程工具,很好使。官网:https://sunlogin.oray.com/

Parallel Desktop

官网:https://www.parallels.com/

虚拟机软件,令人惊讶的是,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)

结语

暂时就这些,想到什么再补充吧。