Сейчас на форуме: user99 (+2 невидимых)

 eXeL@B —› Оффтоп —› UPXALL
Посл.ответ Сообщение

Ранг: 49.8 (посетитель), 56thx
Активность: 0.090
Статус: Участник

Создано: 14 июня 2012 17:37
· Личное сообщение · #1

Наткнулся на сабж. Представляю Вашему вниманию:
Code:
  1. This is the first beta version of UPXALL. UPXALL is a Lua script that
  2. simplifies the compression of all files in a directory and all subdirectories
  3. with UPX.
  4.  
  5. Just run "UPXALL Windows.bat" or "UPXALL Linux.sh" and then drag and drop the
  6. folder that you want to compress. Strike enter and select a compression method.
  7. Strike enter and leave it working on every file. UPXALL first decompresses all
  8. files and then it compresses them with the compression method you chose.
  9.  
  10. Known bugs:
  11.  
  12. 1. There is something wrong when there are parentheses in a filename. The file
  13.    won't be touched.
  14. 2. Th windows version will not display the final compression ratio after
  15.    finishing
  16.    
  17.    
  18. No copyright is held. Just don't blame me if you mess up.


Запускается черезе батник:
Code:
  1. @echo off
  2. .\lua\lua5.1.3.exe upxall.lua WINDOWS

Сам луа-скрипт:
Code:
  1. UPXWINDOWS=".\UPX\upx.exe"
  2. UPXLINUX="./UPX/upx"
  3.  
  4. io.stdout:setvbuf("no")
  5.  
  6. function getsizelinux()
  7.          h2=io.popen("du -sb "..dir,"r")
  8.          ret=string.match(h2:read("*a"),"^(%d+)%s")
  9.          return ret
  10. end
  11. function getsizewindows()
  12.          --WTF? No du equivalent in windows! :-P
  13. end
  14.  
  15. print("UPXALL by Tritonio")
  16. print("http://inshame.blogspot.com")
  17. print("No copyright. Do whatever you like, just don't blame me.")
  18.  
  19. print("\nDrag the application directory on this window or type the full path.")
  20. dir=io.read()
  21. print("\n1. LZMA compression (fast)\n2. Ultra-Brute (Very Slow)\n3. Decompress only\nMake a selection:")
  22. level=io.read()
  23. if level=="3" then level=nil decomp=true end
  24. if level=="1" then level="--lzma" else level="--ultra-brute" end
  25.  
  26. if arg[1]=="WINDOWS" then
  27.          if string.sub(dir,1,1)~='"' then dir='"'..dir..'"' end
  28.          h=io.popen("dir /s /b "..dir,"r")
  29.          line=h:read()
  30.          while line do
  31.                  if string.sub(line,1,1)~='"' then line='"'..line..'"' end
  32.                  print("Packing: "..line)
  33.                  os.execute(UPXWINDOWS.." -d -qqq "..line)
  34.                  if not decomp then os.execute(UPXWINDOWS.." "..level.." -qqq "..line) end
  35.                  line=h:read()
  36.          end
  37. else
  38.          if string.sub(dir,1,1)~="'" then dir="'"..dir.."'" end
  39.          oldsize=getsizelinux()
  40.          h=io.popen("find "..dir,"r")
  41.          line=h:read()
  42.          while line do
  43.                  if string.sub(line,1,1)~="'" then line="'"..line.."'" end
  44.                  print("Packing: "..line)
  45.                  os.execute(UPXLINUX.." -d -qqq "..line)
  46.                  if not decomp then os.execute(UPXLINUX.." "..level.." -qqq "..line) end
  47.                  line=h:read()
  48.          end
  49.          newsize=getsizelinux()
  50.          print("Old size: "..oldsize.." New size: "..newsize.." Ratio: "..math.floor(newsize/oldsize*10000)/100 .."%")
  51. end
  52. h:close()
  53. print("Finished.")
  54. io.read()


Ваше мнение господа. Стоит ли, будет ли сильно влиять на производительность, велика ли вероятность краха системы. Буду рад любым конструктивным комментам.
С уважением.



Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 14 июня 2012 18:00
· Личное сообщение · #2

> Стоит ли
Нет. На приличных файлах стоит ЭЦП.

> будет ли сильно влиять на производительность
Нет. Размер образа в памяти не станет меньше чем при компиляции.

> велика ли вероятность краха системы
Маловероятно, нормальные файлы никто не даст попортить (не хватит прав, либо wfp).

-----
Shalom ebanats!




Ранг: 49.8 (посетитель), 56thx
Активность: 0.090
Статус: Участник

Создано: 15 июня 2012 12:34
· Личное сообщение · #3

И если стоит ЭЦП то файл просто не запустится, да?
Попробую таки на виртуалке, потом отпишусь здесь)


 eXeL@B —› Оффтоп —› UPXALL

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати