Hi all
I scanned several of my programs using the link in the above post and got false-positives on every
one I tested.
It seems that the same scanners are reporting the mal-ware. I guess I need to contact the vendors
and have them tested so that they can fix their scanners.
For anyone who uses QB64 and wants to test the false-positives I put together a small source code
example that I call sliders. This is a simple code block that draws several different sliders that can be
adjusted using the mouse.
Copy and save the code with a .BAS extension then compile it. Next test the .exe using the link in my
previous post.
Here are a couple pics showing the false-positives I got, 2 trojans. 41 of the 43 scanners do not report
any mal-ware. These false-positives can be verified using the code below. I never considered scanning
my own programs this way before as I know that they are 100% clean. Stoopendal's program may suffer
the same type of false-positives but I have not checked his program out so use at your own risk.
Anytime the program you scan is flagged as having malware the first thing you should do is open the windows
search tool and copy and paste the malware name into the search field. Choose all files and folders and then
in the advanced section select to search hidden files and folders then run the search. If the name shows up
somewhere on your computer then you should search online to find if it has been reported. Next open the run
option in windows and type in regedit. When it opens, click edit then find and type or copy and paste the file
name and then search the registry to see if it appears anywhere in the registry. If it does then the trojan, virus
etc.. is on your computer and needs to be removed. Don't make any changes to the registry just close it after
the search is finished then run your mal-ware removal tool to remove. These are just a couple things that can be
used to test if a flagged file is a positive or false-positive.
Here is the source code for the slider program that was flagged as having a trojan. Just copy the code and
paste it into notepad. Select the all files option and then save it as sliders.bas. Next using qb64, compile it
into a exe file. Note. the SDL DLL files must be in the same directory as the created exe in order for it to run.
P.S. This is not the slider program that I posted for download, just a couple sub's for adding sliders to a program.
Pic of sliders program
RL
DIM SHARED BX1 AS INTEGER 'LEFT X DRAW START CORD
DIM SHARED BX2 AS INTEGER 'RIGHT X DRAW END CORDS
DIM SHARED BX3 AS INTEGER 'X HEIGHT/WIDTH SLIDE BUTTON
DIM SHARED BY1 AS INTEGER 'TOP Y DRAW START POINT
DIM SHARED BY2 AS INTEGER 'BOTTOM DRAW Y END CORDS
DIM SHARED BY3 AS INTEGER 'Y HEIGHT/WIDTH SLIDE BUTTON
DIM SHARED FX1 AS INTEGER 'MOUSE X POSITION
DIM SHARED FY1 AS INTEGER 'MOUSE Y POSITION
DIM SHARED COL1 AS INTEGER 'BORDER OUTLINE COLOR
DIM SHARED COL2 AS INTEGER 'SLIDER FILL COLOR
DIM SHARED COL3 AS INTEGER 'SHADOW COLOR
DIM SHARED COL4 AS INTEGER 'SHADOW COLOR
DIM SHARED COL5 AS INTEGER 'SHADOW COLOR
DIM SHARED BC1 AS INTEGER 'SCREEN BACKGROUND COLOR
DIM SHARED V1 AS SINGLE 'SLIDER VALUE
DIM SHARED V2 AS INTEGER
BC1=29
FRONTEND
MAINLOOP:
DO:_LIMIT 100
DO WHILE _MOUSEINPUT
FX1 = _MOUSEX
FY1 = _MOUSEY
IF _MOUSEBUTTON(1) THEN LB% = -1 ELSE LB% = 0
IF _MOUSEBUTTON(2) THEN RB% = -1 ELSE RB% = 0
COLOR 0, 29
'VERT-SLIDERS
COL1=0:COL2=53:COL3=28:COL4=30:COL5=0
BX1=50:BX2=10:BX3=5:BY1=10:BY2=400:BY3=12:
IF FX1 >= (BX1-BX3) AND FX1 <= (BX1+BX2+BX3) AND FY1 >= (BY1-4) AND FY1 <= (BY2+4) AND LB%= -1 THEN VSLIDE
COL1=0:COL2=53:COL3=28:COL4=30:COL5=0
BX1=100:BX2=14:BX3=5:BY1=10:BY2=360:BY3=18:
IF FX1 >= (BX1-BX3) AND FX1 <= (BX1+BX2+BX3) AND FY1 >= (BY1-4) AND FY1 <= (BY2+4) AND LB%= -1 THEN VSLIDE
COL1=0:COL2=53:COL3=28:COL4=30:COL5=0
BX1=150:BX2=16:BX3=5:BY1=10:BY2=200:BY3=8:
IF FX1 >= (BX1-BX3) AND FX1 <= (BX1+BX2+BX3) AND FY1 >= (BY1-4) AND FY1 <= (BY2+4) AND LB%= -1 THEN VSLIDE
'HORZ-SLIDERS
COL1=0:COL2=53:COL3=28:COL4=30:COL5=0
BX1=250:BX2=700:BX3=4:BY1=60:BY2=65:BY3=5:
IF FX1 >= (BX1-5) AND FX1 <= (BX2+5) AND FY1 >= (BY1-BY3) AND FY1 <= (BY2+BY3) AND LB%= -1 THEN HSLIDE
COL1=0:COL2=53:COL3=28:COL4=30:COL5=0
BX1=250:BX2=700:BX3=12:BY1=175:BY2=200:BY3=0:
IF FX1 >= (BX1-5) AND FX1 <= (BX2+5) AND FY1 >= (BY1-BY3) AND FY1 <= (BY2+BY3) AND LB%= -1 THEN HSLIDE
COL1=0:COL2=53:COL3=28:COL4=30:COL5=0
BX1=250:BX2=500:BX3=10:BY1=275:BY2=285:BY3=5:
IF FX1 >= (BX1-5) AND FX1 <= (BX2+5) AND FY1 >= (BY1-BY3) AND FY1 <= (BY2+BY3) AND LB%= -1 THEN HSLIDE
COL1=0:COL2=53:COL3=28:COL4=30:COL5=0
BX1=280:BX2=550:BX3=20:BY1=400:BY2=410:BY3=15:
IF FX1 >= (BX1-5) AND FX1 <= (BX2+5) AND FY1 >= (BY1-BY3) AND FY1 <= (BY2+BY3) AND LB%= -1 THEN HSLIDE
LOOP
KEYPRESS$=""
KEYPRESS$=UCASE$(RIGHT$(INKEY$,1))
IF KEYPRESS$ <> "" THEN SYSTEM
LOOP
SUB FRONTEND
TITLE1$ = "QB64-SLIDERS"
_title TITLE1$
SCREEN _NEWIMAGE(864, 480,256):
_SCREENMOVE _MIDDLE
COLOR BC1,BC1
CLS
_font 8
COLOR COL1,BC1
_PRINTSTRING (2,454), "Move slides or"
_PRINTSTRING (2,464), "Press any key to exit"
'SLIDER COLORS
COL1=0:COL2=53:COL3=28:COL4=30:COL5=0
'STARTUP VERT-SLIDERS Note!! FY1's sets the startup position of the slide, these could be read from a ini file at startup
FY1=120
BX1=50:BX2=10:BX3=5:BY1=10:BY2=400:BY3=12:
VSLIDE
FY1=300
BX1=100:BX2=14:BX3=5:BY1=10:BY2=360:BY3=18:
VSLIDE
FY1=50
BX1=150:BX2=16:BX3=5:BY1=10:BY2=200:BY3=8:
VSLIDE
'STARTUP HORZ-SLIDERS Note!! FX1's sets the startup position of the slide, these could be read from a ini file at startup
FX1=380
BX1=250:BX2=700:BX3=4:BY1=60:BY2=65:BY3=5:
HSLIDE
FX1=525
BX1=250:BX2=700:BX3=12:BY1=175:BY2=200:BY3=0:
HSLIDE
FX1=310
BX1=250:BX2=500:BX3=10:BY1=275:BY2=285:BY3=5:
HSLIDE
FX1=375
BX1=280:BX2=550:BX3=20:BY1=400:BY2=410:BY3=15:
HSLIDE
END SUB
SUB HSLIDE
'IN CASE OF MOUSE OVERRUN
BX1=BX1+1
BX2=BX2-1
IF FX1 <= BX1+1 THEN FX1 = BX1+1
IF FX1 >= (BX2-(BX3+1)) THEN FX1 = (BX2-(BX3+1))
'GET SLIDER RANGE IN PIXELS
RXS=BX2-(BX1+BX3+1)
'SET RANGE TO 100 STEPS
V1=RXS/100
'GET BUTTON STARTING PLACE
BXS=BX1
'CLEAR OLD BUTTON POSITION
L1=BY1-BY3:COLOR BC1,BC1
DO WHILE L1 <= BY2+BY3
LINE (BX1+1,L1)-(BX2-1,L1)
L1=L1+1
LOOP
'PAINT NEW SLIDE
COLOR COL1
LINE (BX1,BY1)-(BX2,BY1)
LINE (BX2,BY1)-(BX2,BY2)
LINE (BX2,BY2)-(BX1,BY2)
LINE (BX1,BY2)-(BX1,BY1)
PAINT STEP (2,2),COL2,COL1
'SHADOW SLIDE
COLOR COL4
LINE (BX2,BY2)-(BX1,BY2)
LINE (BX2,BY1)-(BX2,BY2)
COLOR COL5
LINE (BX1,BY1)-(BX2,BY1)
LINE (BX1,BY2)-(BX1,BY1)
'INDICATOR LINES
L1=BX1:COLOR COL1,BC1
DO WHILE L1 <= BX2
LINE (L1,BY1-3)-(L1,BY1-9)
LINE (L1,BY2+3)-(L1,BY2+9)
L1=L1+CINT((BX2-BX1)/50)
LOOP
'RESET BX1 TO NEW POSITION
IF FX1 >= BX2-(BX3+1) THEN FX1 = BX2-(BX3+1)
IF FX1 <= BX1+1 THEN FX1=BX1+1
BX1=FX1
'DRAW BUTTON
L1=BY1-BY3:COLOR COL3
DO WHILE L1 <= BY2+BY3
LINE (BX1,L1)-(BX1+BX3,L1)
L1=L1+1
LOOP
'SHADOW BUTTOM
COLOR COL4
LINE (BX1,BY1-BY3)-(BX1+BX3,BY1-BY3)
LINE (BX1,BY1-BY3)-(BX1,BY2+BY3)
COLOR COL5
LINE (BX1,BY2+BY3)-(BX1+BX3,BY2+BY3)
LINE (BX1+BX3,BY2+BY3)-(BX1+BX3,BY1-BY3)
BXH=(BX1-BXS)
'PRINT SLIDE VALUE
COLOR COL1
V2=(BXH/V1)
SVALUE$=LTRIM$(RTRIM$(STR$(V2)))
COLOR COL1
_PRINTSTRING (BX2+6,BY1), SVALUE$ + " "
END SUB
SUB VSLIDE
'IN CASE OF MOUSE OVERRUN
IF FY1 < BY1+1 THEN FY1 = BY1+1
IF FY1 > BY2-1 THEN FY1 = BY2-1
'GET SLIDER RANGE IN PIXELS
PXS=(BY2-(BY1+BY3)-2)
V1=PXS/100
'START PRINT LOCATION CALC
POS1=BX1-1
POS1=POS1 + (BX2+BX3)/2
'CALCULATE SLIDER VALUE
BYH=BY1+1
BX2=BX2+BX1
'CLEAR OLD BUTTON POSITION
L1=(BX1-BX3):
COLOR BC1,BC1
DO WHILE L1 <= (BX2+BX3)
LINE (L1,BY1+1)-(L1,BY2-1)
L1=L1+1
LOOP
'PAINT NEW SLIDE
COLOR COL1
LINE (BX1,BY1)-(BX2,BY1)
LINE (BX2,BY1)-(BX2,BY2)
LINE (BX2,BY2)-(BX1,BY2)
LINE (BX1,BY2)-(BX1,BY1)
PAINT STEP (2,2),COL2,COL1
'SHADOW SLIDE
COLOR COL4
LINE (BX2,BY2)-(BX1,BY2)
LINE (BX2,BY1)-(BX2,BY2)
COLOR COL5
LINE (BX1,BY1)-(BX2,BY1)
LINE (BX1,BY2)-(BX1,BY1)
'INDICATOR LINES
L1=BY1:COLOR COL1,BC1
DO WHILE L1 <= BY2
LINE (BX1-10,L1)-(BX1-4,L1)
LINE (BX2+ 3,L1)-(BX2+9,L1)
L1=L1+CINT((BY2-BY1)/50)
LOOP
'RESET BX1 TO NEW VALUE
IF FY1 >= BY2-(BY3+1) THEN FY1 = BY2-(BY3+1)
IF FY1 <= BY1+1 THEN FY1=BY1+1
BY1=FY1
'DRAW BUTTON
L1=BX1-BX3:COLOR COL3
DO WHILE L1 <= BX2+BX3
LINE (L1,BY1+1)-(L1,BY1+BY3)
L1=L1+1
LOOP
'SHADOW BUTTOM
COLOR COL4
LINE (BX1-BX3,BY1+1)-(BX2+BX3,BY1+1)
LINE (BX1-BX3,BY1+BY3)-(BX1-BX3,BY1+1)
COLOR COL5
LINE (BX2+BX3,BY1+BY3)-(BX1-BX3,BY1+BY3)
LINE (BX2+BX3,BY1+1)-(BX2+BX3,BY1+BY3)
'CALCULATE SLIDER VALUE
COLOR COL1
V2=100-((FY1-BYH)/V1)
SVALUE$=LTRIM$(RTRIM$(STR$(V2)))
SVALUE$=" " + SVALUE$ + " "
'END PRINT POSITION CALC
POS1=POS1 - LEN(SVALUE$)*4
_PRINTSTRING (POS1,BY2+4), SVALUE$
END SUB