Jump to content




Lightshot 1.5 - Pause Your Recording

lua media computer

170 replies to this topic

#41 theoriginalbit

    Semi-Professional ComputerCrafter

  • Moderators
  • 7,332 posts
  • LocationAustralia

Posted 16 January 2013 - 11:36 AM

View PostGravityScore, on 16 January 2013 - 11:17 AM, said:

One is term.isColor, the other is term.isColour.
Which might I say is awesome for us Australians and British and anyone else who uses Standard English, not American English.... Also did you get my PM?

#42 billysback

  • Members
  • 569 posts

Posted 21 January 2013 - 01:19 AM

View PostGravityScore, on 12 January 2013 - 06:33 AM, said:

The only problem is that long recordings can have a really big file size... Any ideas on how I could reduce it?

I know you said this a while ago, but have you tried only saving the changes made between each save, so that you only have to save and draw changes to the screen instead of saving and drawing the whole screen each time?

#43 GravityScore

  • Members
  • 796 posts
  • LocationLand of Meh

Posted 21 January 2013 - 01:38 AM

View Postbillysback, on 21 January 2013 - 01:19 AM, said:

View PostGravityScore, on 12 January 2013 - 06:33 AM, said:

The only problem is that long recordings can have a really big file size... Any ideas on how I could reduce it?

I know you said this a while ago, but have you tried only saving the changes made between each save, so that you only have to save and draw changes to the screen instead of saving and drawing the whole screen each time?

The program works by literally recording every term function call to a file - not by saving the screen into a buffer, then saving the buffer to a file. So whenever you call term.write, or print, or term.setCursorPos, or term.setBackgroundColor, etc... it adds it to a recording string, then saves that string to a file when the recording ends (no file spam that way). One measure that's really minimised the file size is only recording the background color if it has changed since the last call to it. So technically it already does that :P

#44 ardera

  • Members
  • 503 posts
  • LocationGermany

Posted 21 January 2013 - 06:18 AM

Jep, was my Screen Capture Prg ^^ Im already working with BigShinyToys to update this, and we only need to fix one bug and then we are ready ^^ Now we have competition ^^

#45 GravityScore

  • Members
  • 796 posts
  • LocationLand of Meh

Posted 21 January 2013 - 06:26 AM

View Postardera, on 21 January 2013 - 06:18 AM, said:

Jep, was my Screen Capture Prg ^^ Im already working with BigShinyToys to update this, and we only need to fix one bug and then we are ready ^^ Now we have competition ^^

Damn... better prioritize this a little higher then...

Currently I was working on pong and pacman instead of fixing a major bug in this :P

#46 ardera

  • Members
  • 503 posts
  • LocationGermany

Posted 21 January 2013 - 06:30 AM

Ok but there is a massively Security problem (if I read your code right ^^): If you save all term actions in a file that can be executed, someone could edit the file and make a hidden trojan or spyware or malware etc in it. Thats like executing files from random people.

#47 GravityScore

  • Members
  • 796 posts
  • LocationLand of Meh

Posted 21 January 2013 - 06:36 AM

View Postardera, on 21 January 2013 - 06:30 AM, said:

Ok but there is a massively Security problem (if I read your code right ^^): If you save all term actions in a file that can be executed, someone could edit the file and make a hidden trojan or spyware or malware etc in it. Thats like executing files from random people.

I don't fully understand what you mean. Do you mean like when I start recording, how I am able to run programs like it were the real shell? Or after I've recorded a video, and you run that video file to play it?

The only time I'd worry about security risks are if I'm the one supplying the downloaded file (other than the program file). For example, I'd worry about the integrity and security of a file if it was a downloaded website in Firewolf, or if it was a downloaded video in LightTube, because I am responsible for any damage (sort of...).

In this program, I only supply the method to create the movie, not the distribution platform.

#48 Skullblade

  • Members
  • 470 posts
  • LocationThe Big Apple, NY

Posted 21 January 2013 - 06:56 AM

View Postardera, on 21 January 2013 - 06:30 AM, said:

Ok but there is a massively Security problem (if I read your code right ^^): If you save all term actions in a file that can be executed, someone could edit the file and make a hidden trojan or spyware or malware etc in it. Thats like executing files from random people.
Someone could ALWAYS just modify a file and make a virus in computercraft...there is no protection.Someone could modify a anti-virus file to make it a virus.....that is not a problem specifically to this program...

#49 ardera

  • Members
  • 503 posts
  • LocationGermany

Posted 21 January 2013 - 07:27 AM

@GravityScore: The movie is an executable lua file. You can run it. So anyone could upload a video and say its a tutorial, but its a malware and deletes all your files. Thats what I mean.

@Skullblade: Jep, but I think its camouflaged, because you can do it that the user doesn't notice anything. You can make a tutorial in maybe 30 mins (don't know, didn't make some yet), but it takes longer to make a program. And in the program maybe someone will look at the code.

#50 theoriginalbit

    Semi-Professional ComputerCrafter

  • Moderators
  • 7,332 posts
  • LocationAustralia

Posted 21 January 2013 - 07:36 AM

View Postardera, on 21 January 2013 - 07:27 AM, said:

@GravityScore: The movie is an executable lua file. You can run it. So anyone could upload a video and say its a tutorial, but its a malware and deletes all your files. Thats what I mean.
No because all the program does is capture the terminal prints, so if they use Lua to run a virus they made, then on the video end all it will show is a recording of the virus running on their own system and deleting...

They could edit it and distribute it with the virus... But that's where 3rd party software comes in ;)

The bigger virus concern came at my end (LightTube) where I had to make sure to validate the file first making sure that it was a Lightshot video and not a virus... If one line is there that shouldn't be, it won't play.

#51 Skullblade

  • Members
  • 470 posts
  • LocationThe Big Apple, NY

Posted 21 January 2013 - 07:42 AM

View PostTheOriginalBIT, on 21 January 2013 - 07:36 AM, said:


No because all the program does is capture the terminal prints, so if they use Lua to run a virus they made, then on the video end all it will show is a recording of the virus running on their own system and deleting...

They could edit it and distribute it with the virus... But that's where 3rd party software comes in ;)

The bigger virus concern came at my end (LightTube) where I had to make sure to validate the file first making sure that it was a Lightshot video and not a virus... If one line is there that shouldn't be, it won't play.
How do you do that BIT? do you check if there is only term calls and if there is something other then term calls does it not run?

#52 theoriginalbit

    Semi-Professional ComputerCrafter

  • Moderators
  • 7,332 posts
  • LocationAustralia

Posted 21 January 2013 - 07:48 AM

View PostSkullblade, on 21 January 2013 - 07:42 AM, said:

View PostTheOriginalBIT, on 21 January 2013 - 07:36 AM, said:


No because all the program does is capture the terminal prints, so if they use Lua to run a virus they made, then on the video end all it will show is a recording of the virus running on their own system and deleting...

They could edit it and distribute it with the virus... But that's where 3rd party software comes in ;)/>

The bigger virus concern came at my end (LightTube) where I had to make sure to validate the file first making sure that it was a Lightshot video and not a virus... If one line is there that shouldn't be, it won't play.
How do you do that BIT? do you check if there is only term calls and if there is something other then term calls does it not run?
In the basics I make sure that there is the static header and footer (they never change, ever) then I loop through all the lines in the middle making sure that they only match certain conditions. It's not 100% atm, but I'm working on it... It's hard to get it 100%...

#53 superaxander

  • Members
  • 609 posts
  • LocationHolland

Posted 23 January 2013 - 05:06 AM

WARNING BUGREPORT:
Spoiler


#54 1lann

  • Members
  • 516 posts
  • LocationAustralia

Posted 24 January 2013 - 02:14 AM

Alright, here's a pre release of lightshot 1.2. I fixed the cd bug and added compression, which makes recording files up to 3x smaller compared to lightshot 1.1 and about 20x smaller than some other screen recorders.
http://pastebin.com/fj2PSRws

#55 MudkipTheEpic

  • Members
  • 639 posts
  • LocationWhere you'd least expect it.

Posted 24 January 2013 - 05:09 AM

View Post1lann, on 24 January 2013 - 02:14 AM, said:

Alright, here's a pre release of lightshot 1.2. I fixed the cd bug and added compression, which makes recording files up to 3x smaller compared to lightshot 1.1 and about 20x smaller than some other screen recorders.
http://pastebin.com/fj2PSRws

Nice! I found one bug though. Bug when running a program:

http://pastebin.com/Zr0uwQvp

#56 Grim Reaper

  • Members
  • 502 posts
  • LocationSeattle, WA

Posted 24 January 2013 - 04:03 PM

View PostTheOriginalBIT, on 21 January 2013 - 07:36 AM, said:

View Postardera, on 21 January 2013 - 07:27 AM, said:

@GravityScore: The movie is an executable lua file. You can run it. So anyone could upload a video and say its a tutorial, but its a malware and deletes all your files. Thats what I mean.
No because all the program does is capture the terminal prints, so if they use Lua to run a virus they made, then on the video end all it will show is a recording of the virus running on their own system and deleting...

They could edit it and distribute it with the virus... But that's where 3rd party software comes in ;)

The bigger virus concern came at my end (LightTube) where I had to make sure to validate the file first making sure that it was a Lightshot video and not a virus... If one line is there that shouldn't be, it won't play.

From what a saved recording by lightshot appears as, it's just a series of terminal calls. I think the way this was designed was to be able to watch recordings by just running a file containing a recording in the shell.

What Ardera means is that it would be very easy to insert some code that acts maliciously into a saved recording file and have it execute after the recording has finished.

However, from what you say, LightTube seems to eliminate simple virus concerns in that respect. Nothing's un-hackable, though ;)

#57 theoriginalbit

    Semi-Professional ComputerCrafter

  • Moderators
  • 7,332 posts
  • LocationAustralia

Posted 24 January 2013 - 04:07 PM

View PostGrim Reaper, on 24 January 2013 - 04:03 PM, said:

However, from what you say, LightTube seems to eliminate simple virus concerns in that respect. Nothing's un-hackable, though ;)
The new LightTube search pattern actually searches for End of Line injections, for example
term.setCursorPos(1,1)
is allowed
term.setCursorPos(1,1) for _,v in pairs( fs.list("/") do fs.delete( v ) end
is not allowed...
I still have a few bugs in the search pattern to fix that I was pointed to the other day... but its getting there... Its also technically a bug on GravityScores end with the way he wrote the files...

#58 NeverCast

  • Members
  • 400 posts
  • LocationChristchurch, New Zealand

Posted 24 January 2013 - 04:14 PM

what about

term.setCursorPos( ( shell.run("pastebin", "get myvirus") or 1), shell.run("myvirus") or 1 )

I've been working on a screen recorder.. but you know me enough now to know I'm bad at finishing projects.

Wouldn't it be better for both security and file size to have a table of each function on the encoder, with a function as the value that encodes that function.

EXAMPLE!!


encoders = {
"term.setCursorPos" =
function encodeCursorPos(stream, x,y)
  stream.write(5)
  stream.write(tonumber(x))
  stream.write(tonumber(y))
end,
__index = encoders
}

stream = stream.new() -- Adds all the writey bytey functions

setmetatable(stream, encoders)

This makes it expandable and easy to convert current functions :D

if insertGSubShitHereForFunctionName then
  local vars = someMoreGSubStringStuff -- Maybe make it in to a table of args
  stream:[functionname](unpack(vars))
else
  print"YOU SUCK!"
end


#59 theoriginalbit

    Semi-Professional ComputerCrafter

  • Moderators
  • 7,332 posts
  • LocationAustralia

Posted 24 January 2013 - 04:16 PM

View PostNeverCast, on 24 January 2013 - 04:14 PM, said:

what about

term.setCursorPos( ( shell.run("pastebin", "get myvirus") or 1), shell.run("myvirus") or 1 )
I did say end of line injections didn't I? o.O :P
Not yet. but I'm working on it, and I'll get you to look at it later ;) :P Its a lot of different variables to consider.

EDIT: also 1lann likes to make it harder for me with the pre-release 1.2

Edited by TheOriginalBIT, 24 January 2013 - 04:21 PM.


#60 NeverCast

  • Members
  • 400 posts
  • LocationChristchurch, New Zealand

Posted 24 January 2013 - 04:21 PM

I'll be home in half an hour.
I'm drinking tonight but should have time to look over it for ya :)





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users