Sign in to follow this  
Followers 0
Simucal

Monitor Script Usage

12 posts in this topic

I have a program/script currently released and I'm interested in adding a function in it that will report to me how many people at any given time are using it.

I was curious at how some of you might implement this. Do you think it (my script) should TCPConnect to a server I have setup here every x minutes and send some particular information.. and if my server doesn't receieve any info from any given person for x minutes then it will drop from the list? Ideally, I would like to be able to pull up a list and see who is using my program at any given time.

I'm not asking for any code, just some thoughts about implementation. What would you guys consider the best method to do something like this?

Thanks,

Sim


AutoIt Scripts:Aimbot: Proof of Concept - PixelSearching Aimbot with several search/autoshoot/lock-on techniques.Sliding Toolbar - Add a nice Sliding Toolbar to your next script. Click the link to see an animation of it in action!FontInfo UDF - Get list of system fonts, or search to see if a particular font is installed.Get Extended Property UDF - Retrieve a files extended properties (e.g., video/image dimensions, file version, bitrate of song/video, etc)

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

I have a program/script currently released and I'm interested in adding a function in it that will report to me how many people at any given time are using it.

I was curious at how some of you might implement this. Do you think it (my script) should TCPConnect to a server I have setup here every x minutes and send some particular information.. and if my server doesn't receieve any info from any given person for x minutes then it will drop from the list? Ideally, I would like to be able to pull up a list and see who is using my program at any given time.

I'm not asking for any code, just some thoughts about implementation. What would you guys consider the best method to do something like this?

Thanks,

Sim

Make sure you allow the user to say Yes! I want this, or no, f*** off. And make it very clear what is being sent. You should only send a key, say if you program was a sharware and requires a key to make the program fully active, you could send, the activation number and so on. Something like that would also be usefull for people who need to keep track of how many computers are using this lisence key for this program, and if it exceeds say 5 computers for their terms, disable the program and tell the user(s), you have void the terms etc. I'd be interested to see how you could do something like this. :)

Edit: Also, don't record the customer's IP address.

Edited by Bert

Share this post


Link to post
Share on other sites

Ok... anyone else?


AutoIt Scripts:Aimbot: Proof of Concept - PixelSearching Aimbot with several search/autoshoot/lock-on techniques.Sliding Toolbar - Add a nice Sliding Toolbar to your next script. Click the link to see an animation of it in action!FontInfo UDF - Get list of system fonts, or search to see if a particular font is installed.Get Extended Property UDF - Retrieve a files extended properties (e.g., video/image dimensions, file version, bitrate of song/video, etc)

Share this post


Link to post
Share on other sites

What you said was a good idea, and seems one of the only way's to go about this. Sorry if I rambled a bit... :) I myself cannot think of another way. :) Lets us know how you go!

Share this post


Link to post
Share on other sites

What do you think about php?

I am curently working on a program that uses serial keys etc.

This is how i did it: first register to the website and then you get a e-mail with the serial you enter the serial and then you can use the program :)

I use autoit, php and mysql

But i am not sure if i will release it here

Ps. sorry for my awesome English :)

Share this post


Link to post
Share on other sites

I'm with Bert: be sure to properly inform the user and get opt-in before doing such a thing. No matter how valuable your script was, slimy behavior on this would make me never trust your stuff again.

With that permission, you could do as indicated and have it phone home every time, or perhaps gather usage statistics and send only 10/20/50/100th execution, or some such.

:)


Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites

TimGames...that seems like a cool way to allow your program usage....Could you share it with me?

Share this post


Link to post
Share on other sites

Ideally, I would like to be able to pull up a list and see who is using my program at any given time.

I think you should forget the big brother approach. :)

Have a feature to check for updates. Do not post anything from the user, users machine or statistics about usage. The user should be able to turn of the feature. It will not give you exact numbers but probably close enough.

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

I think you should forget the big brother approach. :)

Have a feature to check for updates. Do not post anything from the user, users machine or statistics about usage. The user should be able to turn of the feature. It will not give you exact numbers but probably close enough.

I'm not trying to gather any personal (usuable at least) information from the user whatsoever. I also plan on telling them that my program reports anonymous usage information to me. They can then decide if they still want to use the script or not. My program has 660 regisistered users atm, but I'm really curious about how large the number of total users is when I take into account the people who never bothered to register/post.

I was more looking for any other considerations into my approach (technical) rather than moralistic warnings about wether or not to do it. I've already decided to do it.

One thing I considered was generating a unique hardware id for each user and encrypting that hardware id and sending me some sort of unique,encrypted,hash. Then I can keep a database of unique hash's and that will give me a rough estimate of the unique computers my script is installed on.

Any other thoughts/ideas?

Edited by Simucal

AutoIt Scripts:Aimbot: Proof of Concept - PixelSearching Aimbot with several search/autoshoot/lock-on techniques.Sliding Toolbar - Add a nice Sliding Toolbar to your next script. Click the link to see an animation of it in action!FontInfo UDF - Get list of system fonts, or search to see if a particular font is installed.Get Extended Property UDF - Retrieve a files extended properties (e.g., video/image dimensions, file version, bitrate of song/video, etc)

Share this post


Link to post
Share on other sites

here is a logger i made a time ago, i never tested it out well, but it works greath , I think :)

i think it could work 4 what u need

#include <IE.au3>
$siten = "http://www.mysite.com"
$site = "http://www.mysite.com/test.php" 
;"http://www.mysite.com/test.php?pass=admin"

$logtype = "&host=" & "stuff"
$compname = "&pc=" & @ComputerName
$winuserr = "&user=" & @UserName
$ip = "&ip=" & @IPAddress1  
$infox =  "&type=" & "stuff"
$inf1 = "&name=" & "stuff"
$filea0 = "&port=" & @ScriptDir
$version= "&version=" & FileGetVersion (@ScriptFullPath)
    
_logge()


func _logge()
    $varl = Ping("www.google.com",1000)
    If $varl Then
        ConsoleWrite("Online, roundtrip was:" & $varl & @LF)
        $conectionstat = 1
    Else
        ConsoleWrite ("offline No hacer nada"& @LF)
        $conectionstat = 0
    EndIf
    if $conectionstat = 1 then 
        $oIE = _IECreate ($siten, 0, 0, 1)
        sleep (1000)
        ConsoleWrite ($site&"?action=log" &$ip&$logtype&$compname&$winuserr&$infox&$inf1&$filea0&$version&@lf)
        _IENavigate ( $oIE, $site&"?action=log" &$ip&$logtype&$compname&$winuserr&$infox&$inf1&$filea0&$version, 1)
        ConsoleWrite (@Error&@lf)
        sleep (1000)
        _IEQuit ($oIE)
    EndIf 
EndFunc

the php script, i dont remember where i got it, by the way i tried with RAlogger wich is a cgi logger script but it didnt work as well as this one.

upload the php script with a clean txt file named log.txt or chance options in php script

<?php

    $view_pass = "admin";   
    $length = 100;           
    $ctrl_file = "log.txt";  
    
    if ($_GET["action"])
        $action = $_GET["action"];

    $datatime = date("H:i:s m/d/y");

    if ($action == "log"){
                echo "FUCK";     
        $daip = $_GET["ip"]."/".$_SERVER["REMOTE_ADDR"];
        
        $n_file_arry = array();

        $type = $_GET["type"];  
        $host = $_GET["host"]; 
        $port = $_GET["port"]; 
        $name = $_GET["name"]; 
        $pc   = $_GET["pc"];   
        $user = $_GET["user"];
                $version = "?";

        if ($_GET["version"])
            $version = $_GET["version"]; 
        
        $n_file_arry[0] = "<tr><td>$datatime</td><td>$user</td><td>$pc</td><td>$name</td><td>$daip</td><td>$port</td><td>$host</td><td>$type</td><td>$version</td></tr>\r\n";
  
        $file_arry = @file($ctrl_file);

        $counter = 0;
        
        while (list($key,$val) = each($file_arry)) {
            if ($val != ""){
                if ($key == $length-1) break;
                $val = str_replace(array("\r\n","\n","\r"), "", $val);
                $n_file_arry[$key+1] = $val."\r\n";
            }
        }

        $fp = @fopen("$ctrl_file", "w");
        @fputs($fp, join("", $n_file_arry));
        @fclose($fp);
        exit;
    } else {
        if ($view_pass != ""){
            $pass = $_GET["pass"];
            if ($pass != $view_pass){
?>
                <html>
                    <head>
                        <title>403 Forbidden</title>
                    </head>
                    <body>
                        <h1>403 Forbidden</h1>
                        <hr>
                        <font size="3">You are not authorized to view this page</font>
                    </body>
                </html>
<?php
                exit;
            }
        }

        if (!file_exists($ctrl_file)) {
            $datatime .= "<br><br><font color=\"#DD0000\">\"WARNING: '$ctrl_file' not found! Please manually create one in the same folder as this script and CHMOD to 646 or 777\"";
            $fp = @fopen($ctrl_file, "w");
            if (!$fp) { $datatime .= "<br>Tried to create '$ctrl_file' but couldnt"; }  else { fclose($fp); }
            $datatime .= "</font>";
        } else {
            if (!is_writable($ctrl_file)) $datatime .= "<br><br><font color=\"#DD0000\">\"'$ctrl_file' cant be opened for writing, please CHMOD it to 646 or 777\"";
        }   
    }
?>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>IP Log</title>
  </head>
  <style>
  <!--
    table {
          font-size: 10pt;
          background-color: #BFBFBF;
          padding: 5px;
          margin: 0px auto;
          align: center;
          }
    td {
         background-color: #E5E5E5;
         color: #1A1A1A;
         text-align: center;
         padding: 6px;
       }
    body {
         font-size: 10pt;
         font-family: verdana;
         color: #999999;
         background-color: #E5E5E5;
         margin: 3px;
     }
    .hand {text-decoration: none; cursor:hand}
    a {color: #999999}
  -->
  </style>
  <body>
    <div align="center">
      <p><h2>IP Log</h2></p>
      <?php echo "Current Server Time: $datatime"; ?><br><br>
      <table border="0">
        <tr>
          <td><strong>Logged Time</strong></td>
          <td><strong>User Name</strong></td>
          <td><strong>PC Name</strong></td>
          <td><strong>INFO1</strong></td>
          <td><strong>Remote Address</strong></td>
          <td><strong>Script Dir</strong></td>
          <td><strong>Someinfo</strong></td>
          <td><strong>someting</strong></td>
          <td><strong>vercion</strong></td>
        </tr>
        <?php
       @readFile($ctrl_file); 
        ?>
      </table>
      <br>
      <a class="hand" href="" target="_new"><b></b></a>
    </div>
  </body>
</html>

to view the logged data check the log.txt in the php server or open the logger with explorer this way

"http://www.mysite.com/test.php?pass=admin"

1 person likes this

Share this post


Link to post
Share on other sites

Spartacus... ?


[font="Verdana"]Valik:Get it straight - I'm not here to say please, I'm here to help - if my help's not appreciated then lotsa luck, gentlemen.[/font]

Share this post


Link to post
Share on other sites

Spartacus... ?

Yea


AutoIt Scripts:Aimbot: Proof of Concept - PixelSearching Aimbot with several search/autoshoot/lock-on techniques.Sliding Toolbar - Add a nice Sliding Toolbar to your next script. Click the link to see an animation of it in action!FontInfo UDF - Get list of system fonts, or search to see if a particular font is installed.Get Extended Property UDF - Retrieve a files extended properties (e.g., video/image dimensions, file version, bitrate of song/video, etc)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0