加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

保护自己的Flash程序(AS3) -- 基于socket方式传送swf文件

发布时间:2020-12-15 06:17:06 所属栏目:百科 来源:网络整理
导读:前段时间在flashseer看到有人提到:可以通过socket方式传送swf文件,让用户无法获取到swf文件... 当时还没有出as3的反编译,所以对程序的保护没有在意.随着反编译程序的平民化,不希望别人看到源代码的朋友就比较着急... 通过socket方式传送swf文件来避免泄漏源

前段时间在flashseer看到有人提到:可以通过socket方式传送swf文件,让用户无法获取到swf文件... 当时还没有出as3的反编译,所以对程序的保护没有在意.随着反编译程序的平民化,不希望别人看到源代码的朋友就比较着急...

通过socket方式传送swf文件来避免泄漏源代码的思路(只适用as3): 让主程序的loader(前台swf)通过socket连接到后台程序,然后请求需要的主程序文件.后台读取主程序数据通过socket发送给主程序的loader.前台swf适用Loader.loadBytes方法显示主程序文件.

下面是测试的源程序:

前台loader:

[java]? view plain copy
  1. //-------------??
  2. //Base64和StringUtil在网上自己找吧??
  3. import?Base64;??
  4. import?StringUtil;??
  5. var?socket?=?new?Socket();??
  6. socket.connect("localhost",?11915);??
  7. ??
  8. socket.addEventListener(Event.CLOSE,?closeHandler);??
  9. socket.addEventListener(Event.CONNECT,?connectHandler);??
  10. socket.addEventListener(IOErrorEvent.IO_ERROR,?ioErrorHandler);??
  11. socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR,?securityErrorHandler);??
  12. socket.addEventListener(ProgressEvent.SOCKET_DATA,?socketDataHandler);??
  13. var?response:String;??
  14. function?writeln(str:String):void?{??
  15. ?str?+=?"";??
  16. ?try?{??
  17. ??socket.writeUTFBytes(str);??
  18. ?}?catch?(e:IOError)?{??
  19. ??trace(e);??
  20. ?}??
  21. }??
  22. ??
  23. function?sendRequest():void?{??
  24. ?trace("sendRequest");??
  25. ?response?=?"";??
  26. ?writeln('bin');??
  27. ?socket.flush();??
  28. }??
  29. function?readResponse()://接受数据??
  30. ?var?str:String?=?socket.readUTFBytes(socket.bytesAvailable);??
  31. ?response?+=?str;??
  32. //当数据以end结束的时候,数据传输结束??
  33. ?if(StringUtil.endsWith(str,'end'))??
  34. ?{??
  35. ??response?=?response.substr(0,response.length-3);??
  36. //把字符串转换为ByteArray??
  37. ??var?ba?=?Base64.decodeToByteArray(response);??
  38. ??//trace('bytearray=====',ba);??
  39. ??var?l:Loader?=?new?Loader();??
  40. //从?ByteArray?对象中所存储的二进制数据中加载。??
  41. ??l.loadBytes(ba);??
  42. //trace(l.content);??
  43. ??addChild(l);??
  44. function?closeHandler(event:Event): ?trace("closeHandler:?"?+?event);??
  45. function?connectHandler(event:Event): ?trace("connectHandler:?"?+?event);??
  46. ?sendRequest();??
  47. function?ioErrorHandler(event:IOErrorEvent): ?trace("ioErrorHandler:?"?+?event);??
  48. function?securityErrorHandler(event:SecurityErrorEvent): ?trace("securityErrorHandler:?"?+?event);??
  49. function?socketDataHandler(event:ProgressEvent): ?trace("socketDataHandler:?"?+?event);??
  50. ?readResponse();??
  51. }??

?

socket(PHP):

[php]? copy
    <?php??
  1. //error_reporting(E_ALL);??
  2. error_reporting(0);??
  3. set_time_limit(0);??
  4. ob_implicit_flush();??
  5. $address?=?'localhost';??
  6. $port?=?11915;??
  7. if?(($sock?=?socket_create(AF_INET,?SOCK_STREAM,?SOL_TCP))?<?0)?{??
  8. echo?"socket_create()?failed:?reason:?"?.?socket_strerror($sock)?.?""n";??
  9. $ret?=?socket_bind($sock,?$address,0); background-color:inherit">$port))?<?0)?{??
  10. echo?"socket_bind()?failed:?reason:?"?.?socket_strerror($ret)?.?""n";??
  11. $ret?=?socket_listen( echo?"socket_listen()?failed:?reason:?"?.?socket_strerror( echo?"connect.";??
  12. do?{??
  13. $msgsock?=?socket_accept($sock))?<?0)?{??
  14. echo?"socket_accept()?failed:?reason:?"?.?socket_strerror($msgsock)?.?""n";??
  15. break;??
  16. ??socket_recv($msgsock,0); background-color:inherit">$buf,?2048,?0);??
  17. ??if?($buf?==?'')?{??
  18. socket_close($msgsock);??
  19. ????echo?"some?one?quit";??
  20. break;??
  21. ??else?if($buf?==?'bin')??
  22. ??{??
  23. //读取主程序数据??
  24. ???$f?=?fopen('main.swf','r');??
  25. ???$data?=?fread($f,filesize('main.swf'));??
  26. ???fclose($f);??
  27. //转换为字符串??
  28. ???//echo?base64_encode($data);??
  29. $talkback?=?base64_encode($data).'end';??
  30. ??}??
  31. //发送??
  32. socket_send($talkback,?strlen($talkback),0);??
  33. }?while?(true);??
  34. socket_close($msgsock);??
  35. $sock);??
  36. ?>???

转自:http://blog.csdn.net/b4362928/article/details/5017946

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读