1 set(EC_SRC 2 ec_asn1.c 3 ec_mem.c 4 ec_capture.c 5 ec_checksum.c 6 ec_conf.c 7 ec_connbuf.c 8 ec_conntrack.c 9 ec_debug.c 10 ec_decode.c 11 ec_dispatcher.c 12 ec_dissect.c 13 ec_encryption_ccmp.c 14 ec_encryption_tkip.c 15 ec_encryption.c 16 ec_error.c 17 ec_exit.c 18 ec_file.c 19 ec_filter.c 20 ec_fingerprint.c 21 ec_format.c 22 ec_globals.c 23 ec_hash.c 24 ec_hook.c 25 ec_inet.c 26 ec_inject.c 27 ec_libettercap.c 28 ec_log.c 29 ec_manuf.c 30 ec_mitm.c 31 ec_network.c 32 ec_packet.c 33 ec_passive.c 34 ec_plugins.c 35 ec_poll.c 36 ec_profiles.c 37 ec_redirect.c 38 ec_resolv.c 39 ec_scan.c 40 ec_send.c 41 ec_services.c 42 ec_session.c 43 ec_set.c 44 ec_signals.c 45 ec_sleep.c 46 ec_sniff_bridge.c 47 ec_sniff.c 48 ec_sniff_unified.c 49 ec_socket.c 50 ec_sslwrap.c 51 ec_stats.c 52 ec_streambuf.c 53 ec_strings.c 54 ec_threads.c 55 ec_ui.c 56 ec_utils.c 57 58 dissectors/ec_bgp.c 59 dissectors/ec_cvs.c 60 dissectors/ec_dhcp.c 61 dissectors/ec_ftp.c 62 dissectors/ec_gg.c 63 dissectors/ec_http.c 64 dissectors/ec_icq.c 65 dissectors/ec_imap.c 66 dissectors/ec_irc.c 67 dissectors/ec_iscsi.c 68 dissectors/ec_kerberos.c 69 dissectors/ec_ldap.c 70 dissectors/ec_mdns.c 71 dissectors/ec_mongodb.c 72 dissectors/ec_mountd.c 73 dissectors/ec_msn.c 74 dissectors/ec_mysql.c 75 dissectors/ec_nbns.c 76 dissectors/ec_nntp.c 77 dissectors/ec_o5logon.c 78 dissectors/ec_ospf.c 79 dissectors/ec_pop.c 80 dissectors/ec_postgresql.c 81 dissectors/ec_portmap.c 82 dissectors/ec_radius.c 83 dissectors/ec_rcon.c 84 dissectors/ec_rip.c 85 dissectors/ec_rlogin.c 86 dissectors/ec_smb.c 87 dissectors/ec_smtp.c 88 dissectors/ec_snmp.c 89 dissectors/ec_socks.c 90 dissectors/ec_ssh.c 91 dissectors/ec_telnet.c 92 dissectors/ec_TN3270.c 93 dissectors/ec_vnc.c 94 dissectors/ec_vrrp.c 95 dissectors/ec_x11.c 96 dissectors/ec_ymsg.c 97 98 mitm/ec_arp_poisoning.c 99 mitm/ec_dhcp_spoofing.c 100 mitm/ec_icmp_redirect.c 101 mitm/ec_port_stealing.c 102 103 protocols/ec_arp.c 104 protocols/ec_cooked.c 105 protocols/ec_erf.c 106 protocols/ec_eth.c 107 protocols/ec_fddi.c 108 protocols/ec_gre.c 109 protocols/ec_esp.c 110 protocols/ec_icmp.c 111 protocols/ec_ip.c 112 protocols/ec_mpls.c 113 protocols/ec_null.c 114 protocols/ec_ppi.c 115 protocols/ec_ppp.c 116 protocols/ec_pppoe.c 117 protocols/ec_rawip.c 118 protocols/ec_tcp.c 119 protocols/ec_tr.c 120 protocols/ec_udp.c 121 protocols/ec_vlan.c 122 protocols/ec_wifi.c 123 protocols/ec_wifi_eapol.c 124 protocols/ec_wifi_prism.c 125 protocols/ec_wifi_radiotap.c 126 ) 127 128 if(HAVE_GEOIP) 129 set(EC_SRC ${EC_SRC} ec_geoip.c) 130 endif() 131 132 if(ENABLE_IPV6) 133 set(EC_SRC ${EC_SRC} protocols/ec_icmp6.c protocols/ec_ip6.c mitm/ec_ip6nd_poison.c) 134 endif() 135 136 if(HAVE_DN_EXPAND) 137 set(EC_SRC ${EC_SRC} dissectors/ec_dns.c) 138 endif() 139 140 if(OS_LINUX) 141 set(EC_SRC ${EC_SRC} os/ec_linux.c) 142 elseif(OS_BSD) 143 set(EC_SRC ${EC_SRC} os/ec_bsd.c) 144 elseif(OS_DARWIN) 145 set(EC_SRC ${EC_SRC} os/ec_darwin.c) 146 elseif(OS_MINGW) 147 set(EC_SRC ${EC_SRC} os/ec_mingw.c) 148 elseif(OS_SOLARIS) 149 set(EC_SRC ${EC_SRC} os/ec_solaris.c) 150 elseif(OS_GNU) 151 set(EC_SRC ${EC_SRC} os/ec_gnu.c) 152 endif() 153 154 if(NOT HAVE_STRLCAT AND NOT HAVE_STRLCAT_FUNCTION) 155 set(EC_SRC ${EC_SRC} missing/strlcat.c) 156 endif() 157 158 if(NOT HAVE_STRLCPY AND NOT HAVE_STRLCPY_FUNCTION) 159 set(EC_SRC ${EC_SRC} missing/strlcpy.c) 160 endif() 161 162 if(NOT HAVE_STRSEP) 163 set(EC_SRC ${EC_SRC} missing/strsep.c) 164 endif() 165 166 if(NOT HAVE_STRCASESTR) 167 set(EC_SRC ${EC_SRC} missing/strcasestr.c) 168 endif() 169 170 if(NOT HAVE_MEMMEM) 171 set(EC_SRC ${EC_SRC} missing/memmem.c) 172 endif() 173 174 if(NOT HAVE_MEMRCHR) 175 set(EC_SRC ${EC_SRC} missing/memrchr.c) 176 endif() 177 178 if(NOT HAVE_BASENAME) 179 set(EC_SRC ${EC_SRC} missing/basename.c) 180 endif() 181 182 if(NOT HAVE_STRNDUP) 183 set(EC_SRC ${EC_SRC} missing/strndup.c) 184 endif() 185 186 if(NOT HAVE_GETOPT_LONG AND NOT HAVE_GETOPT_H) 187 set(EC_SRC ${EC_SRC} missing/getopt.c) 188 endif() 189 190 add_library(lib_ettercap SHARED ${EC_SRC}) 191 add_dependencies(lib_ettercap libnet) 192 target_link_libraries(lib_ettercap ec_interfaces ${EC_LIBS}) 193 194 if(CURL_FOUND) 195 target_link_libraries(lib_ettercap ${CURL_LIBRARY}) 196 endif() 197 198 if(NOT LIBRARY_BUILD) 199 add_subdirectory(interfaces) 200 include_directories(interfaces/daemon interfaces/text) 201 if(ENABLE_CURSES) 202 include_directories(interfaces/curses interfaces/curses/widgets) 203 endif() 204 add_executable(ettercap ec_parser.c ec_main.c) 205 target_link_libraries(ettercap lib_ettercap ${EC_LIBS}) 206 if(NOT DISABLE_RPATH) 207 set_target_properties(ettercap PROPERTIES 208 INSTALL_RPATH ${INSTALL_LIBDIR}) 209 endif() 210 endif() 211 212 # Only compile lua stuff if lua is enabled! 213 if(ENABLE_LUA) 214 add_subdirectory(lua) 215 target_link_libraries(lib_ettercap ec_lua ${LUAJIT_LIBRARY}) 216 if(OS_DARWIN AND (CMAKE_SIZEOF_VOID_P EQUAL 8)) 217 # On 64-bit OSX platforms, luajit requires the following flags to be added. 218 # See: http://luajit.org/install.html 219 target_link_libraries(ettercap "-pagezero_size 10000 -image_base 100000000") 220 endif() 221 endif() 222 223 #if(NOT LIBRARY_BUILD) 224 #target_link_libraries(lib_ettercap ec_interfaces ${EC_LIBS}) 225 #else(NOT LIBRARY_BUILD) 226 #target_link_libraries(lib_ettercap ${EC_LIBS}) 227 #endif(NOT LIBRARY_BUILD) 228 229 set_target_properties(lib_ettercap PROPERTIES 230 ENABLE_EXPORTS On 231 # LINK_INTERFACE_LIBRARIES "" 232 OUTPUT_NAME ettercap 233 VERSION ${VERSION} 234 SOVERSION 0 235 ) 236 237 install(TARGETS lib_ettercap DESTINATION ${INSTALL_LIBDIR}) 238 if(NOT LIBRARY_BUILD) 239 install(TARGETS ettercap DESTINATION ${INSTALL_BINDIR}) 240 endif()