1
0
mirror of https://github.com/proxysu/ProxySU.git synced 2024-11-25 06:36:08 +03:00

添加完善模板库

This commit is contained in:
ProxySU 2020-03-17 20:11:08 +08:00
parent 919d5ab78a
commit c81e3d577f
2 changed files with 134 additions and 15 deletions

View File

@ -35,34 +35,66 @@
<RowDefinition></RowDefinition> <RowDefinition></RowDefinition>
<RowDefinition></RowDefinition> <RowDefinition></RowDefinition>
</Grid.RowDefinitions> </Grid.RowDefinitions>
<RadioButton x:Name="RadioButtonTCP" Content="TCP" Grid.Column="0" Grid.Row="0"></RadioButton> <RadioButton x:Name="RadioButtonTCP" Content="TCP" Grid.Column="0" Grid.Row="0" Checked="RadioButtonTCP_Checked"></RadioButton>
<TextBlock Text="TCP说明" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2"></TextBlock> <TextBlock Text="TCP说明" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2"></TextBlock>
<RadioButton x:Name="RadioButtonTCPhttp" Content="TCP+Http伪装" Grid.Column="0" Grid.Row="1"></RadioButton> <RadioButton x:Name="RadioButtonTCPhttp" Content="TCP+Http伪装" Grid.Column="0" Grid.Row="1" Checked="RadioButtonTCP_Checked"></RadioButton>
<TextBlock Text="TCP+Http伪装说明" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2"></TextBlock> <TextBlock Text="TCP+Http伪装说明" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2"></TextBlock>
<RadioButton x:Name="RadioButtonMkcpNoCamouflage" Content="mKCP(无伪装)" Grid.Column="0" Grid.Row="2"></RadioButton> <RadioButton x:Name="RadioButtonMkcpNoCamouflage" Content="mKCP(无伪装)" Grid.Column="0" Grid.Row="2" Checked="RadioButtonTCP_Checked"></RadioButton>
<TextBlock Text="mkcp协议,不进行伪装,发送的数据是没有特征的数据包。" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="2"></TextBlock> <TextBlock Text="mkcp协议,不进行伪装,发送的数据是没有特征的数据包。" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="2"></TextBlock>
<RadioButton x:Name="RadioButton2mKCP2SRTP" Content="mKCP+SRTP" Grid.Column="0" Grid.Row="3"></RadioButton> <RadioButton x:Name="RadioButton2mKCP2SRTP" Content="mKCP+SRTP" Grid.Column="0" Grid.Row="3" Checked="RadioButtonTCP_Checked"></RadioButton>
<TextBlock Text="mkcp协议,伪装成 SRTP 数据包,会被识别为视频通话数据(如 FaceTime" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2"></TextBlock> <TextBlock Text="mkcp协议,伪装成 SRTP 数据包,会被识别为视频通话数据(如 FaceTime" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2"></TextBlock>
<RadioButton x:Name="RadioButton2mKCPuTP" Content="mKCP+uTP" Grid.Column="0" Grid.Row="4"></RadioButton> <RadioButton x:Name="RadioButton2mKCPuTP" Content="mKCP+uTP" Grid.Column="0" Grid.Row="4" Checked="RadioButtonTCP_Checked"></RadioButton>
<TextBlock Text="伪装成 uTP 数据包,会被识别为 BT 下载数据" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2"></TextBlock> <TextBlock Text="伪装成 uTP 数据包,会被识别为 BT 下载数据" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2"></TextBlock>
<RadioButton x:Name="RadioButton2mKCP2WechatVideo" Content="mKCP+WechatVideo" Grid.Column="0" Grid.Row="5"></RadioButton> <RadioButton x:Name="RadioButton2mKCP2WechatVideo" Content="mKCP+WechatVideo" Grid.Column="0" Grid.Row="5" Checked="RadioButtonTCP_Checked"></RadioButton>
<TextBlock Text="伪装成微信视频通话的数据包" Grid.Column="1" Grid.Row="5" Grid.ColumnSpan="2"></TextBlock> <TextBlock Text="伪装成微信视频通话的数据包" Grid.Column="1" Grid.Row="5" Grid.ColumnSpan="2"></TextBlock>
<RadioButton x:Name="RadioButton2mKCP2DTLS" Content="mKCP+DTLS 1.2" Grid.Column="0" Grid.Row="6"></RadioButton> <RadioButton x:Name="RadioButton2mKCP2DTLS" Content="mKCP+DTLS 1.2" Grid.Column="0" Grid.Row="6" Checked="RadioButtonTCP_Checked"></RadioButton>
<TextBlock Text="伪装成 DTLS 1.2 数据包" Grid.Column="1" Grid.Row="6" Grid.ColumnSpan="2"></TextBlock> <TextBlock Text="伪装成 DTLS 1.2 数据包" Grid.Column="1" Grid.Row="6" Grid.ColumnSpan="2"></TextBlock>
<RadioButton x:Name="RadioButton2mKCP2WireGuard" Content="mKCP+WireGuard" Grid.Column="0" Grid.Row="7"></RadioButton> <RadioButton x:Name="RadioButton2mKCP2WireGuard" Content="mKCP+WireGuard" Grid.Column="0" Grid.Row="7" Checked="RadioButtonTCP_Checked"></RadioButton>
<TextBlock Text="伪装成 WireGuard 数据包。(并不是真正的 WireGuard 协议)" Grid.Column="1" Grid.Row="7" Grid.ColumnSpan="2"></TextBlock> <TextBlock Text="伪装成 WireGuard 数据包。(并不是真正的 WireGuard 协议)" Grid.Column="1" Grid.Row="7" Grid.ColumnSpan="2"></TextBlock>
<RadioButton x:Name="RadioButtonHTTP2" Content="HTTP/2" Grid.Column="0" Grid.Row="8"></RadioButton> <RadioButton x:Name="RadioButtonHTTP2" Content="HTTP/2" Grid.Column="0" Grid.Row="8" Checked="RadioButtonHTTP2_Checked"></RadioButton>
<TextBlock Text="基于 HTTP/2 的传输方式。它完整按照 HTTP/2 标准实现" Grid.Column="1" Grid.Row="8" Grid.ColumnSpan="2"></TextBlock> <TextBlock Text="基于 HTTP/2 的传输方式。它完整按照 HTTP/2 标准实现" Grid.Column="1" Grid.Row="8" Grid.ColumnSpan="2"></TextBlock>
<RadioButton x:Name="RadioButtonTLS" Content="TLS" Grid.Column="0" Grid.Row="9"></RadioButton> <RadioButton x:Name="RadioButtonTLS" Content="TLS" Grid.Column="0" Grid.Row="9" Checked="RadioButtonHTTP2_Checked"></RadioButton>
<TextBlock Text="使用TLS加密数据流" Grid.Column="1" Grid.Row="9" Grid.ColumnSpan="2"></TextBlock> <TextBlock Text="使用TLS加密数据流" Grid.Column="1" Grid.Row="9" Grid.ColumnSpan="2"></TextBlock>
<RadioButton x:Name="RadioButtonWebSocketTLS2Web" Content="WebSocket+TLS+Web" Grid.Column="0" Grid.Row="10"></RadioButton> <RadioButton x:Name="RadioButtonWebSocketTLS2Web" Content="WebSocket+TLS+Web" Grid.Column="0" Grid.Row="10" Checked="RadioButtonHTTP2_Checked"></RadioButton>
<TextBlock Text="目前是稳定性最好的使用Caddy做网站前置https数据流不易被识别出流量特征" Grid.Column="1" Grid.Row="10" Grid.ColumnSpan="2"></TextBlock> <TextBlock Text="目前是稳定性最好的使用Caddy做网站前置https数据流不易被识别出流量特征" Grid.Column="1" Grid.Row="10" Grid.ColumnSpan="2"></TextBlock>
<Button x:Name="ButtondDecide" Content="确定" Grid.Column="3" Grid.Row="11" Margin="4" Click="ButtondDecide_Click"></Button>
</Grid> </Grid>
</GroupBox> </GroupBox>
<GroupBox Header="自定义模板" Grid.Row="2"> <GroupBox Header="其他设置" Grid.Row="2">
<Grid> <Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock x:Name="TextBlockServerListenPort" Text="服务端口:" Grid.Column="0" Grid.Row="0"></TextBlock>
<TextBox x:Name="TextBoxServerListenPort" Grid.Column="1" Grid.Row="0" Grid.ColumnSpan="2" Margin="5"></TextBox>
<Button x:Name="ButtonServerListenPort" Content="随机选择" Grid.Column="3" Grid.Row="0" Margin="5"></Button>
<TextBlock x:Name="TextBlockNewUUID" Text="新建UUID" Grid.Column="0" Grid.Row="1"></TextBlock>
<TextBox x:Name="TextBoxNewUUID" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2" Margin="5"></TextBox>
<Button x:Name="ButtonNewUUID" Content="更新" Grid.Column="3" Grid.Row="1" Margin="5" Click="ButtonNewUUID_Click"></Button>
<TextBlock x:Name="TextBlockExistingUUID" Text="使用现有UUID" Grid.Column="0" Grid.Row="2"></TextBlock>
<TextBox x:Name="TextBoxExistingUUID" Grid.Column="1" Grid.Row="2" Grid.ColumnSpan="2" Margin="5"></TextBox>
<Button x:Name="ButtonExistingUUID" Content="粘贴到框中" Grid.Column="3" Grid.Row="2" Margin="5"></Button>
<TextBlock x:Name="TextBlockPath" Text="路径:" Grid.Column="0" Grid.Row="3"></TextBlock>
<TextBox x:Name="TextBoxPath" Grid.Column="1" Grid.Row="3" Grid.ColumnSpan="2" Margin="5"></TextBox>
<Button x:Name="ButtonPath" Content="随机" Grid.Column="3" Grid.Row="3" Margin="5"></Button>
<TextBlock x:Name="TextBlockDomain" Text="域名:" Grid.Column="0" Grid.Row="4"></TextBlock>
<TextBox x:Name="TextBoxDomain" Grid.Column="1" Grid.Row="4" Grid.ColumnSpan="2" Margin="5"></TextBox>
<Button x:Name="ButtonDomain" Content="检测" Grid.Column="3" Grid.Row="4" Margin="5"></Button>
<Button x:Name="ButtondDecide" Content="确定" Grid.Column="1" Grid.Row="5" Margin="4" Click="ButtondDecide_Click"></Button>
<Button x:Name="ButtondCancel" Content="取消" Grid.Column="2" Grid.Row="5" Margin="4" Click="ButtondCancel_Click" ></Button>
</Grid> </Grid>
</GroupBox> </GroupBox>

View File

@ -27,6 +27,93 @@ namespace ProxySU
private void ButtondDecide_Click(object sender, RoutedEventArgs e) private void ButtondDecide_Click(object sender, RoutedEventArgs e)
{ {
if (RadioButtonTCP.IsChecked == true)
{
}
else if (RadioButtonWebSocketTLS2Web.IsChecked == true)
{
}
else if (RadioButtonTCPhttp.IsChecked == true)
{
}
else if (RadioButtonMkcpNoCamouflage.IsChecked == true)
{
}
else if (RadioButton2mKCP2SRTP.IsChecked == true)
{
}
else if (RadioButton2mKCPuTP.IsChecked == true)
{
}
else if (RadioButton2mKCP2WechatVideo.IsChecked == true)
{
}
else if (RadioButton2mKCP2DTLS.IsChecked == true)
{
}
else if (RadioButton2mKCP2WireGuard.IsChecked == true)
{
}
else if (RadioButtonHTTP2.IsChecked == true)
{
}
else if (RadioButtonTLS.IsChecked == true)
{
}
else
{
}
}
private void ButtondCancel_Click(object sender, RoutedEventArgs e) => Close();
private void RadioButtonTCP_Checked(object sender, RoutedEventArgs e)
{
TextBlockServerListenPort.Visibility = Visibility.Visible;
TextBoxServerListenPort.Visibility = Visibility.Visible;
ButtonServerListenPort.Visibility = Visibility.Visible;
TextBlockPath.Visibility = Visibility.Collapsed;
TextBoxPath.Visibility = Visibility.Collapsed;
ButtonPath.Visibility = Visibility.Collapsed;
TextBlockDomain.Visibility = Visibility.Collapsed;
TextBoxDomain.Visibility = Visibility.Collapsed;
ButtonDomain.Visibility = Visibility.Collapsed;
Guid uuid = Guid.NewGuid();
TextBoxNewUUID.Text = uuid.ToString();
}
private void RadioButtonHTTP2_Checked(object sender, RoutedEventArgs e)
{
TextBlockServerListenPort.Visibility = Visibility.Visible;
TextBoxServerListenPort.Visibility = Visibility.Visible;
TextBoxServerListenPort.Text = "443";
ButtonServerListenPort.Visibility = Visibility.Visible;
TextBlockPath.Visibility = Visibility.Visible;
TextBoxPath.Visibility = Visibility.Visible;
ButtonPath.Visibility = Visibility.Visible;
TextBlockDomain.Visibility = Visibility.Visible;
TextBoxDomain.Visibility = Visibility.Visible;
ButtonDomain.Visibility = Visibility.Visible;
Guid uuid = Guid.NewGuid();
TextBoxNewUUID.Text = uuid.ToString();
}
private void ButtonNewUUID_Click(object sender, RoutedEventArgs e)
{
Guid uuid = Guid.NewGuid();
TextBoxNewUUID.Text = uuid.ToString();
} }
} }
} }