⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ethsniff.c

📁 Linux 上的socket嗅探器
💻 C
字号:
/*
 *
 * Copyright (C) 2003 Xiangbin Lee <honeycombs@sina.com> <honeycombs@263.net>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation.
 */

#include "netdrv.h"
#include "common.h"
#include "wizserver.h"
#include "wizspy.h"
#include "spyfun.h"
#include "serverfun.h"

void main_pro_quit(GtkWidget *widget,gpointer data)
{
    // APP_MAIN  *hMain=(APP_MAIN  *)data;     
    gtk_main_quit();
}

gboolean on_menu_showspy(GtkWidget *widget, gpointer data)
{
    APP_MAIN  *hMain=(APP_MAIN  *)data;
    gtk_notebook_set_current_page (GTK_NOTEBOOK(APP_MAINFRAME(hMain)), 0);
    return 0;
}

gboolean on_menu_showspysetting(GtkWidget *widget, gpointer data)
{
    // APP_MAIN  *hMain=(APP_MAIN  *)data;
    wizspy_setting_show();
    return 0;
}

gboolean on_menu_spyopen(GtkWidget *widget, gpointer data)
{
    // APP_MAIN  *hMain=(APP_MAIN  *)data;
    return SpySetState(SPY_OPEN);
}
gboolean on_menu_spypause(GtkWidget *widget, gpointer data)
{
    // APP_MAIN  *hMain=(APP_MAIN  *)data;
    return SpySetState(SPY_PAUSE);
}
gboolean on_menu_spycontinue(GtkWidget *widget, gpointer data)
{
    // APP_MAIN  *hMain=(APP_MAIN  *)data;
    return SpySetState(SPY_CONTINUE);
}
gboolean on_menu_spystop(GtkWidget *widget, gpointer data)
{
    // APP_MAIN  *hMain=(APP_MAIN  *)data;
    return SpySetState(SPY_CLOSE);
}

gboolean on_menu_showserver(GtkWidget *widget, gpointer data)
{
    APP_MAIN  *hMain=(APP_MAIN  *)data;  
    gtk_notebook_set_current_page (GTK_NOTEBOOK(APP_MAINFRAME(hMain)), 1);
    return 0;
}

gboolean on_menu_openserver(GtkWidget *widget, gpointer data)
{
    // APP_MAIN  *hMain=(APP_MAIN  *)data;
    Server_Open();
    return 0;
}

gboolean on_menu_closeserver(GtkWidget *widget, gpointer data)
{
    // APP_MAIN  *hMain=(APP_MAIN  *)data;
    Server_Close();
    return 0;
}

gboolean on_menu_serversetting(GtkWidget *widget, gpointer data)
{
    // APP_MAIN  *hMain=(APP_MAIN  *)data;
    wizserv_setting_show();
    return 0;
}


gint get_app_menu(APP_MAIN  *hMain)/* APP_MENUBAR(hMain) */
{
    /* create new main menu and it's submenu for app main, sample:
     *
     * GtkAccelGroup *accel;
     * GtkWidget *menu, *menu_item;
     * accel = gtk_accel_group_new();
     * _gtk_accel_group_attach(accel, G_OBJECT(APP_HMAIN(hMain)));
     *
     * menu = create_menu(GTK_MENU_BAR(APP_MENUBAR(hMain)), "MENU-1", accel);
     * menu_item= create_menu_item(GTK_MENU(menu), "MENU-1-1",
     *     GTK_SIGNAL_FUNC(MENU_1_1),NULL,accel,GDK_F2,0);
     * menu_item= create_menu_item(GTK_MENU(menu), NULL,NULL,NULL,NULL,0,0);
     * menu_item= create_menu_item(GTK_MENU(menu), "MENU-1-2",

     *     GTK_SIGNAL_FUNC(MENU_1_2),NULL,accel,GDK_F3,0);
     *
     * gboolean MENU_1_1(GtkWidget *widget, gpointer data);
     * gboolean MENU_1_2(GtkWidget *widget, gpointer data);

     *
     */  

    GtkWidget *menu, *submenu, *menu_item; 
    GtkAccelGroup *accel;
    
    accel = create_menu_accelgroup(APP_HMAIN(hMain));

    menu = create_menu_item(GTK_MENU(GTK_MENU_BAR(APP_MENUBAR(hMain))), "Ether Sniff",NULL,NULL,NULL,0,0);
    {
        menu_item= create_menu_item(GTK_MENU(menu), "Show",GTK_SIGNAL_FUNC(on_menu_showspy),hMain,accel,GDK_F5,0);
        menu_item= create_menu_item(GTK_MENU(menu), NULL,NULL,NULL,NULL,0,0);
        menu_item= create_menu_item(GTK_MENU(menu), "Startup",GTK_SIGNAL_FUNC(on_menu_spyopen),hMain,accel,0,0);
        menu_item= create_menu_item(GTK_MENU(menu), "Pause",GTK_SIGNAL_FUNC(on_menu_spypause),hMain,accel,0,0);
        menu_item= create_menu_item(GTK_MENU(menu), "Continue",GTK_SIGNAL_FUNC(on_menu_spycontinue),hMain,accel,0,0);
        menu_item= create_menu_item(GTK_MENU(menu), "Stop",GTK_SIGNAL_FUNC(on_menu_spystop),hMain,accel,0,0);
        menu_item= create_menu_item(GTK_MENU(menu), NULL,NULL,NULL,NULL,0,0);
        menu_item= create_menu_item(GTK_MENU(menu), "Setting",GTK_SIGNAL_FUNC(on_menu_showspysetting),hMain,accel,0,0);
    }
                  
    menu = create_menu_item(GTK_MENU(GTK_MENU_BAR(APP_MENUBAR(hMain))), "Service",NULL,NULL,NULL,0,0);
    {
        submenu=create_menu_item(GTK_MENU(menu), "TCP",NULL,NULL,NULL,0,0);
        {                                                        
            menu_item= create_menu_item(GTK_MENU(submenu), "Show",GTK_SIGNAL_FUNC(on_menu_showserver),hMain,accel,GDK_F6,0);
            menu_item= create_menu_item(GTK_MENU(submenu), NULL,NULL,NULL,NULL,0,0);
            menu_item= create_menu_item(GTK_MENU(submenu), "Open",GTK_SIGNAL_FUNC(on_menu_openserver),hMain,accel,0,0);
            menu_item= create_menu_item(GTK_MENU(submenu), "Close",GTK_SIGNAL_FUNC(on_menu_closeserver),hMain,accel,0,0);
            menu_item= create_menu_item(GTK_MENU(submenu), NULL,NULL,NULL,NULL,0,0);
            menu_item= create_menu_item(GTK_MENU(submenu), "Setting",GTK_SIGNAL_FUNC(on_menu_serversetting),hMain,accel,0,0);
        }
    }
    
    return 1;
}


gint get_app_toolbar(APP_MAIN  *hMain) /* APP_TOOLBAR(hMain) */
{
    /* Add buttons to your toolbar, sample:
     *
     * if(AppAddButoBar(APP_TOOLBAR(hMain),"Title","Tip","X.ico",
     *      GTK_SIGNAL_FUNC (TOOLBAR_FUN1),LPDATA)==NULL)return 0;
     *
     * gboolean TOOLBAR_FUN1(GtkWidget *widget, gpointer data);
     *
     * --- Add your codes here :
     */

    return 1;
}


gint get_app_status(APP_MAIN  *hMain) /* APP_STATUSBAR(hMain) */
{
    /* Add new icon and it's function to a statusbar, sample:
     *
     * GtkWidget *iconw;
     * iconw = gtk_image_new_from_file ("help.ico");
     * if(gtk_toolbar_append_item (GTK_TOOLBAR (APP_STATUSBAR(hMain)),
     *     "Help","help","Private",iconw,GTK_SIGNAL_FUNC (Main_Help),
     *      NULL)==NULL)return 0;
     *
     * gboolean Main_Help(GtkWidget *widget, gpointer data);

     *
     * --- Add your codes here :
     */


    return 1;
}


gint get_app_frame(APP_MAIN  *hMain)/* APP_MAINFRAME(hMain) */
{
    /*  add a new wizard to main view , sample :
     *
     *  GtkWidget *frame,*label;
     *  label = gtk_label_new (char *labalname);
     *  frame = a new GtkWidget;
     *  gtk_notebook_append_page (GTK_NOTEBOOK(APP_MAINFRAME(hMain)), frame, label);
     *
     * --- Add your codes here :
     */   

     GtkWidget *frame,*label;
     label = gtk_label_new ("Ether Sniff");
     frame = get_wizspy_dialog(NULL);
     gtk_notebook_append_page (GTK_NOTEBOOK(APP_MAINFRAME(hMain)), frame, label);
     
     label = gtk_label_new ("Tcp Service");
     frame = get_wizserver_dialog(NULL);
     gtk_notebook_append_page (GTK_NOTEBOOK(APP_MAINFRAME(hMain)), frame, label);
     

     
     return 1;
}
  
int main(int argc, char* argv[])  
{
    APP_MAIN  hMain;
    /* Init socket */
    InitSockets();
    /* Initialise GTK */
    gtk_init (&argc, &argv);

    app_init(&hMain,"Test App !");
    if(hMain.hmain==NULL)
    {
        printf("\n get_main_app failure !");
        WSACleanup();
        return 0;
    }

    /* Here we connect the "destroy" event to a signal handler */
    g_signal_connect (G_OBJECT (APP_HMAIN(&hMain)), "destroy",
		    G_CALLBACK (main_pro_quit), (gpointer)(&hMain)); 

    if(get_app_menu(&hMain)==0)
    {
        printf("\n get_main_menu failure !");
        WSACleanup();
        return 0;
    }
    if(get_app_toolbar(&hMain)==0)
    {
        printf("\n get_main_toolbar failure !");
        WSACleanup();
        return 0;
    }

    if(get_app_status(&hMain)==0)
    {
        printf("\n get_main_statusbar failure !");
        WSACleanup();
        return 0;
    }

    if(get_app_frame(&hMain)==0)
    {
        printf("\n get_main_frame failure !");
        WSACleanup();
        return 0;
    }

    gtk_widget_show_all(APP_HMAIN(&hMain));
    
#ifdef GTK_INCLUDE
    gdk_threads_enter();
#endif
    gtk_main ();
#ifdef GTK_INCLUDE
    gdk_threads_leave();
#endif

    WSACleanup();


    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -