Guest User

Untitled

a guest
Oct 21st, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.73 KB | None | 0 0
  1. dialog botnets {
  2. title "Botnets Protection"
  3. size -1 -1 173 137
  4. option dbu notheme
  5. check "Connect Flood Server", 1, 8 26 65 10
  6. edit "", 2, 74 26 10 10, center
  7. text "In", 3, 85 27 6 8, center
  8. edit "", 4, 92 26 10 10, center
  9. text "Sec(s)", 5, 103 27 16 8
  10. check "Nicks Change Flood", 6, 8 41 65 10
  11. edit "", 7, 74 41 10 10, center
  12. edit "", 8, 92 41 10 10, center
  13. text "In", 9, 85 42 6 8, center
  14. text "Sec(s)", 10, 103 42 16 8
  15. check "Global Text Flood", 11, 8 56 65 10
  16. edit "", 12, 74 56 10 10, center
  17. edit "", 13, 92 56 10 10, center
  18. text "In", 14, 85 57 6 8, center
  19. text "Sec(s)", 15, 103 57 16 8
  20. check "Global Notice Flood", 16, 8 71 65 10
  21. edit "", 17, 74 71 10 10, center
  22. edit "", 18, 92 71 10 10, center
  23. text "In", 19, 85 72 6 8, center
  24. text "Sec(s)", 20, 103 72 16 8
  25. check "Global Ctcp Flood", 21, 8 86 65 10
  26. edit "", 22, 74 86 10 10, center
  27. edit "", 23, 92 86 10 10, center
  28. text "In", 24, 85 87 6 8, center
  29. text "Sec(s)", 25, 103 87 16 8
  30. combo 26, 124 26 40 11, drop
  31. combo 27, 124 41 40 11, drop
  32. combo 28, 124 56 40 11, drop
  33. combo 29, 124 71 40 11, drop
  34. combo 30, 124 86 40 11, drop
  35. box "Protect Options", 31, 5 2 117 117
  36. box "Punishment", 32, 122 2 45 117
  37. button "Servers Protected", 33, 4 123 48 10, flat
  38. button "OK", 34, 84 123 22 10, flat ok
  39. check "Global DCC Flood", 35, 8 101 65 10
  40. edit "", 36, 74 101 10 10, center
  41. text "In", 37, 85 102 6 8, center
  42. edit "", 38, 92 101 10 10, center
  43. text "Sec(s)", 39, 103 102 16 8
  44. combo 40, 124 101 40 11, drop
  45. check "Join Flood Channel", 41, 8 11 65 10
  46. edit "", 42, 74 11 10 10, center
  47. text "In", 43, 85 12 6 8, center
  48. edit "", 44, 92 11 10 10, center
  49. text "Sec(s)", 45, 103 12 16 8
  50. combo 46, 124 11 40 11, drop
  51. button "Default", 47, 56 123 24 10, flat
  52. }
  53.  
  54. dialog serpro {
  55. title "Servers List"
  56. size -1 -1 80 147
  57. option dbu notheme
  58. combo 1, 3 17 71 79, size
  59. button "Add", 2, 4 4 33 10, flat
  60. button "Del", 3, 40 4 33 10, flat
  61. box "", 4, 1 -2 77 101
  62. button "Close", 5, 22 135 33 10, flat cancel
  63. text "servers masks examples:", 6, 5 102 69 8, disable center
  64. text "0.0.0.0", 7, 5 110 69 7, disable center
  65. text "irc.network.co.il", 8, 5 117 69 7, disable center
  66. text "network", 9, 5 124 69 7, disable center
  67. box "", 10, 1 96 77 38
  68. }
  69.  
  70. on *:dialog:serpro:init:0:{
  71. if ($lines(serpro.txt) > 0) { filter -fo serpro.txt $dname 1 }
  72. }
  73.  
  74. on *:dialog:serpro:sclick:*:{
  75. if ($did == 2) {
  76. if ($did(1)) && (!$read(serpro.txt,w,$did(1))) { did -a $dname 1 $did(1) | write serpro.txt $did(1) | did -c $dname 1 $did(1).lines }
  77. }
  78. elseif ($did == 3) {
  79. if ($did(1)) && ($read(serpro.txt,w,$did(1))) { did -d $dname 1 $didwm($dname,1,$did(1)) | write -dl [ $+ [ $readn ] ] serpro.txt }
  80. }
  81. }
  82.  
  83. on *:dialog:botnets:init:0:{
  84. didtok $dname 26-30,40,46 32 Gline Kick Kick+ban
  85. if (%E.Join) { did -c $dname 41 }
  86. else { did -b $dname 42-46 }
  87. if (%E.Connect) { did -c $dname 1 }
  88. else { did -b $dname 2-5,26 }
  89. if (%E.Nick) { did -c $dname 6 }
  90. else { did -b $dname 7-10,27 }
  91. if (%E.Text) { did -c $dname 11 }
  92. else { did -b $dname 12-15,28 }
  93. if (%E.Notice) { did -c $dname 16 }
  94. else { did -b $dname 17-20,29 }
  95. if (%E.Ctcp) { did -c $dname 21 }
  96. else { did -b $dname 22-25,30 }
  97. if (%E.Dcc) { did -c $dname 35 }
  98. else { did -b $dname 36-40 }
  99. if (%JoinFlood) { did -ra $dname 42 %JoinFlood }
  100. else { did -ra $dname 42 3 | set %JoinFlood 3 }
  101. if (%JoinSec) { did -ra $dname 44 %JoinSec }
  102. else { did -ra $dname 44 3 | set %JoinSec 3 }
  103. if (%ConnectFlood) { did -ra $dname 2 %ConnectFlood }
  104. else { did -ra $dname 2 3 | set %ConnectFlood 3 }
  105. if (%ConnectSec) { did -ra $dname 4 %ConnectSec }
  106. else { did -ra $dname 4 4 | set %ConnectSec 4 }
  107. if (%NickFlood) { did -ra $dname 7 %NickFlood }
  108. else { did -ra $dname 7 3 | set %NickFlood 3 }
  109. if (%NickSec) { did -ra $dname 8 %NickSec }
  110. else { did -ra $dname 8 4 | set %NickSec 4 }
  111. if (%TextFlood) { did -ra $dname 12 %TextFlood }
  112. else { did -ra $dname 12 3 | set %TextFlood 3 }
  113. if (%TextSec) { did -ra $dname 13 %TextSec }
  114. else { did -ra $dname 13 4 | set %TextSec 4 }
  115. if (%NoticeFlood) { did -ra $dname 17 %NoticeFlood }
  116. else { did -ra $dname 17 3 | set %NoticeFlood 3 }
  117. if (%NoticeSec) { did -ra $dname 18 %NoticeSec }
  118. else { did -ra $dname 18 4 | set %NoticeSec 4 }
  119. if (%CtcpFlood) { did -ra $dname 22 %CtcpFlood }
  120. else { did -ra $dname 22 3 | set %CtcpFlood 3 }
  121. if (%CtcpSec) { did -ra $dname 23 %CtcpSec }
  122. else { did -ra $dname 23 4 | set %CtcpSec 4 }
  123. if (%DccFlood) { did -ra $dname 36 %DccFlood }
  124. else { did -ra $dname 36 3 | set %DccFlood 3 }
  125. if (%DccSec) { did -ra $dname 38 %DccSec }
  126. else { did -ra $dname 38 4 | set %DccSec 4 }
  127. if (%PunJoin) { did -c $dname 46 %PunJoin }
  128. else { did -c $dname 46 3 }
  129. if (%PunConnect) { did -c $dname 26 %PunConnect }
  130. else { did -c $dname 26 1 }
  131. if (%PunNicks) { did -c $dname 27 %PunNicks }
  132. else { did -c $dname 27 1 }
  133. if (%PunText) { did -c $dname 28 %PunText }
  134. else { did -c $dname 28 3 }
  135. if (%PunNotice) { did -c $dname 29 %PunNotice }
  136. else { did -c $dname 29 3 }
  137. if (%PunCtcp) { did -c $dname 30 %PunCtcp }
  138. else { did -c $dname 30 1 }
  139. if (%PunDcc) { did -c $dname 40 %PunDcc }
  140. else { did -c $dname 40 1 }
  141. }
  142.  
  143. on *:dialog:botnets:sclick:*:{
  144. if ($did == 33) && (!$dialog(serpro)) { dialog -m serpro serpro }
  145. elseif ($did == 47) {
  146. did -c $dname 46 3
  147. did -c $dname 26-27,30,40 1
  148. did -c $dname 28,29 3
  149. set %JoinFlood 3
  150. set %JoinSec 3
  151. set %ConnectFlood 3
  152. set %ConnectSec 4
  153. set %NickFlood 3
  154. set %NickSec 4
  155. set %NoticeFlood 3
  156. set %NoticeSec 4
  157. set %CtcpFlood 3
  158. set %CtcpSec 4
  159. set %DccFlood 3
  160. set %DccSec 4
  161. did -ra $dname 42,44,2,7,12,17,22,36 3
  162. did -ra $dname 4,8,13,18,23,38 4
  163. set %PunJoin 3
  164. set %PunConnect 1
  165. set %PunNicks 1
  166. set %PunText 3
  167. set %PunNotice 3
  168. set %PunCtcp 1
  169. set %PunDcc 1
  170. }
  171. elseif ($did == 41) {
  172. set %E.Join $iif($did(41).state,1,$null)
  173. did $iif(%E.Join,-e,-b) $dname 42-46
  174. }
  175. elseif ($did == 1) {
  176. set %E.Connect $iif($did(1).state,1,$null)
  177. did $iif(%E.Connect,-e,-b) $dname 2-5,26
  178. }
  179. elseif ($did == 6) {
  180. set %E.Nick $iif($did(6).state,1,$null)
  181. did $iif(%E.Nick,-e,-b) $dname 7-10,27
  182. }
  183. elseif ($did == 11) {
  184. set %E.Text $iif($did(11).state,1,$null)
  185. did $iif(%E.Text,-e,-b) $dname 12-15,28
  186. }
  187. elseif ($did == 16) {
  188. set %E.Notice $iif($did(16).state,1,$null)
  189. did $iif(%E.Notice,-e,-b) $dname 17-20,29
  190. }
  191. elseif ($did == 21) {
  192. set %E.Ctcp $iif($did(21).state,1,$null)
  193. did $iif(%E.Ctcp,-e,-b) $dname 22-25,30
  194. }
  195. elseif ($did == 35) {
  196. set %E.Dcc $iif($did(35).state,1,$null)
  197. did $iif(%E.Dcc,-e,-b) $dname 36-40
  198. }
  199. elseif ($did == 46) { set %PunJoin $did(46).sel }
  200. elseif ($did == 26) { set %PunConnect $did(26).sel }
  201. elseif ($did == 27) { set %PunNicks $did(27).sel }
  202. elseif ($did == 28) { set %PunText $did(28).sel }
  203. elseif ($did == 29) { set %PunNotice $did(29).sel }
  204. elseif ($did == 30) { set %PunCtcp $did(30).sel }
  205. elseif ($did == 40) { set %PunDcc $did(40).sel }
  206. }
  207.  
  208. on *:dialog:botnets:edit:*:{
  209. if ($did == 42) { set %JoinFlood $did(42) }
  210. elseif ($did == 44) { set %JoinSec $did(44) }
  211. elseif ($did == 2) { set %ConnectFlood $did(2) }
  212. elseif ($did == 4) { set %ConnectSec $did(4) }
  213. elseif ($did == 7) { set %NickFlood $did(7) }
  214. elseif ($did == 8) { set %NickSec $did(8) }
  215. elseif ($did == 12) { set %TextFlood $did(12) }
  216. elseif ($did == 13) { set %TextSec $did(13) }
  217. elseif ($did == 17) { set %NoticeFlood $did(17) }
  218. elseif ($did == 18) { set %NoticeSec $did(18) }
  219. elseif ($did == 22) { set %CtcpFlood $did(22) }
  220. elseif ($did == 23) { set %CtcpSec $did(23) }
  221. elseif ($did == 36) { set %DccFlood $did(36) }
  222. elseif ($did == 38) { set %DccSec $did(38) }
  223. }
  224.  
  225. on *:snotice:*Client connecting*:{
  226. var %reg = $server $+ $(|) $+ $network $+ $(|) $+ $serverip
  227. if ((!$read(serpro.txt,r,%reg)) || (!%E.Connect)) { return }
  228. var %ip = $iif($regex($10,/(\d+\.\d+\.\d+\.\d+)/),$regml(1),1)
  229. if (!$hget(Botnet,$9)) { hadd -mu [ $+ [ %ConnectSec ] ] Botnet $9 %ip }
  230. if ($hget(Botnet,0).item >= %ConnectFlood) {
  231. var %x 1
  232. while ($hget(Botnet,%x).item) {
  233. var %cn = $ifmatch
  234. dll WhileFix.dll WhileFix .
  235. if (%PunConnect == 2 || %PunConnect == 3) {
  236. var %i 1
  237. while ($chan(%i)) {
  238. dll WhileFix.dll WhileFix .
  239. if (%cn ison $chan(%i)) {
  240. if (%PunConnect == 2) && (($me isop $chan(%i)) || $regex($usermode,/[AoNO]/i)) { kick $chan(%i) %cn Abuse - Botnets Flood! }
  241. elseif (%PunConnect == 3) && (($me isop $chan(%i)) || $regex($usermode,/[AoNO]/i)) { ban -k $chan(%i) %cn Abuse - Botnets Flood! }
  242. }
  243. inc %i
  244. }
  245. }
  246. elseif (%PunConnect == 1) && ($regex($usermode,/[AoNO]/i)) { gline %cn - :Abuse - Botnets Flood }
  247. hdel -w Botnet %cn
  248. inc %x
  249. }
  250. }
  251. }
  252.  
  253. on !*:join:#:{
  254. var %reg = $server $+ $(|) $+ $network $+ $(|) $+ $serverip
  255. if ((!$read(serpro.txt,r,%reg)) || (!%E.Join)) { return }
  256. var %ip = $+($wildsite,/,$nick)
  257. if (!$hget(Jflood,$nick)) { hadd -mu [ $+ [ %JoinSec ] ] Jflood $nick %ip }
  258. if ($hget(Jflood,0).item >= %JoinFlood) {
  259. var %x 1
  260. while ($hget(Jflood,%x).item) {
  261. var %bm = $ifmatch
  262. dll WhileFix.dll WhileFix .
  263. if (%PunJoin == 1) && ($regex($usermode,/[AoNO]/i)) { gline %bm - :Abuse - Join Flood! }
  264. elseif (%PunJoin == 2) && (($me isop $chan) || $regex($usermode,/[AoNO]/i)) { kick # %bm Abuse - Join Flood! }
  265. elseif (%PunJoin == 3) && (($me isop $chan) || $regex($usermode,/[AoNO]/i)) { ban -k # %bm Abuse - Join Flood! }
  266. hdel -w Jflood %bm
  267. inc %x
  268. }
  269. }
  270. }
  271.  
  272. on *:text:*:*:{
  273. var %reg = $server $+ $(|) $+ $network $+ $(|) $+ $serverip
  274. if ((!$read(serpro.txt,r,%reg)) || (!%E.Text)) { return }
  275. var %hs = $+(a,.,$hash($strip($1-),32)), %tk = $+($wildsite,/,$nick)
  276. if (!$hget(%hs,%tk)) { hadd -mu3 %hs %tk $nick }
  277. if ($hget(%hs,0).item >= 3) {
  278. var %x 1
  279. while ($hget(%hs,%x).item) {
  280. var %tm = $ifmatch
  281. dll WhileFix.dll WhileFix .
  282. if (%PunText == 1) && ($regex($usermode,/[AoNO]/i)) { gline $gettok(%tm,2,47) - :Abuse - Text Flood! }
  283. elseif (%PunText == 2) && (($me isop $chan) || $regex($usermode,/[AoNO]/i)) { kick # $gettok(%tm,2,47) Abuse - Text Flood! }
  284. elseif (%PunText == 3) && (($me isop $chan) || $regex($usermode,/[AoNO]/i)) { ban -k # $gettok(%tm,2,47) Abuse - Text Flood! }
  285. hdel -w %hs %tm
  286. inc %x
  287. }
  288. }
  289. }
  290.  
  291. on *:notice:*:*:{
  292. var %reg = $server $+ $(|) $+ $network $+ $(|) $+ $serverip
  293. if ((!$read(serpro.txt,r,%reg)) || (!%E.Notice)) { return }
  294. var %hs = $+(a,.,$hash($strip($1-),32)), %tk = $+($wildsite,/,$nick)
  295. if (!$hget(%hs,%tk)) { hadd -mu3 %hs %tk $nick }
  296. if ($hget(%hs,0).item >= 3) {
  297. var %x 1
  298. while ($hget(%hs,%x).item) {
  299. var %nm = $ifmatch
  300. dll WhileFix.dll WhileFix .
  301. if (%PunText == 1) && ($regex($usermode,/[AoNO]/i)) { gline $gettok(%nm,2,47) - :Abuse - Notice Flood! }
  302. elseif (%PunText == 2) && (($me isop $chan) || $regex($usermode,/[AoNO]/i)) { kick # $gettok(%nm,2,47) Abuse - Notice Flood! }
  303. elseif (%PunText == 3) && (($me isop $chan) || $regex($usermode,/[AoNO]/i)) { ban -k # $gettok(%nm,2,47) Abuse - Notice Flood! }
  304. hdel -w %hs %nm
  305. inc %x
  306. }
  307. }
  308. }
  309.  
  310. ctcp *:*:*:{
  311. var %reg = $server $+ $(|) $+ $network $+ $(|) $+ $serverip
  312. if ((!$read(serpro.txt,r,%reg)) || (!%E.Ctcp)) { return }
  313. var %hs = $+(a,.,$hash($strip($1-),32)), %tk = $token($address($nick,5),2,33)
  314. if !$hget(%hs,%tk) { hadd -mu3 %hs %tk $nick }
  315. if $hget(%hs,0).item >= 3 {
  316. var %x 1
  317. while ($hget(%hs,%x).item) {
  318. var %cm = $ifmatch
  319. dll WhileFix.dll WhileFix .
  320. if (%PunText == 1) && ($regex($usermode,/[AoNO]/i)) { gline $gettok(%cm,2,47) - :Abuse - Ctcp Flood! }
  321. elseif (%PunText == 2) && (($me isop $chan) || $regex($usermode,/[AoNO]/i)) { kick # $gettok(%cm,2,47) Abuse - Ctcp Flood! }
  322. elseif (%PunText == 3) && (($me isop $chan) || $regex($usermode,/[AoNO]/i)) { ban -k # $gettok(%cm,2,47) Abuse - Ctcp Flood! }
  323. hdel -w %hs %cm
  324. inc %x
  325. }
  326. }
  327. }
  328.  
  329. on *:dccserver:*:{
  330. var %reg = $server $+ $(|) $+ $network $+ $(|) $+ $serverip
  331. if ((!$read(serpro.txt,r,%reg)) || (!%E.Dcc)) { return }
  332. var %hs = $+(a,.,$hash($strip($1-),32)), %tk = $token($address($nick,5),2,33)
  333. if !$hget(%hs,%tk) { hadd -mu3 %hs %tk $nick }
  334. if $hget(%hs,0).item >= 3 {
  335. var %x 1
  336. while ($hget(%hs,%x).item) {
  337. var %dm = $ifmatch
  338. dll WhileFix.dll WhileFix .
  339. if (%PunText == 2 || %PunText == 3) {
  340. var %i 1
  341. while ($chan(%i)) {
  342. dll WhileFix.dll WhileFix .
  343. if ($gettok(%dm,2,47) ison $chan(%i)) {
  344. if (%PunText == 2) && (($me isop $chan(%i)) || $regex($usermode,/[AoNO]/i)) { kick $chan(%i) $gettok(%dm,2,47) Abuse - Dcc Flood! }
  345. elseif (%PunText == 3) && (($me isop $chan(%i)) || $regex($usermode,/[AoNO]/i)) { ban -k $chan(%i) $gettok(%dm,2,47) Abuse - Dcc Flood! }
  346. }
  347. inc %i
  348. }
  349. }
  350. elseif (%PunText == 1) && ($regex($usermode,/[AoNO]/i)) { gline $gettok(%dm,2,47) - :Abuse - Dcc Flood }
  351. hdel -w %hs %dm
  352. inc %x
  353. }
  354. }
  355. }
  356.  
  357. on *:nick:{
  358. var %reg = $server $+ $(|) $+ $network $+ $(|) $+ $serverip
  359. if ((!$read(serpro.txt,r,%reg)) || (!%E.Nick)) { return }
  360. var %lx = $+($wildsite,/,$newnick)
  361. if (!$hget(cn,%lx)) { hadd -mu3 cn %lx $newnick }
  362. if ($hget(cn,0).item >= 4) {
  363. var %x 1
  364. while ($hget(cn,%x).item) {
  365. var %nm = $ifmatch
  366. dll WhileFix.dll WhileFix .
  367. if (%PunText == 2 || %PunText == 3) {
  368. var %i 1
  369. while ($chan(%i)) {
  370. dll WhileFix.dll WhileFix .
  371. if ($gettok(%nm,2,47) ison $chan(%i)) {
  372. if (%PunText == 2) && (($me isop $chan(%i)) || $regex($usermode,/[AoNO]/i)) { kick $chan(%i) $gettok(%nm,2,47) Abuse - Nicks-Change Flood! }
  373. elseif (%PunText == 3) && (($me isop $chan(%i)) || $regex($usermode,/[AoNO]/i)) { ban -k $chan(%i) $gettok(%nm,2,47) Abuse - Nicks-Change Flood! }
  374. }
  375. if ($me isop $chan(%i) && $gettok($hget(cn,%x).item,2,47) ison $chan(%i)) { ban -k $chan(%i) $gettok($hget(cn,%x).item,2,47) Nick-Change Flood }
  376. inc %i
  377. }
  378. }
  379. elseif (%PunText == 1) && ($regex($usermode,/[AoNO]/i)) { gline $gettok(%nm,2,47) - :Abuse - Nick-Change Flood }
  380. hdel -w cn %nm
  381. inc %x
  382. }
  383. }
  384. }
  385.  
  386. menu * {
  387. -
  388. Server Protection:if (!$dialog(botnets)) { dialog -m botnets botnets }
  389. -
  390. }
Add Comment
Please, Sign In to add comment