'2019/03'에 해당되는 글 94건

  1. 2019.03.14 AndroidManifest.xml (binary) 디코더
  2. 2019.03.14 postgresql WAL?
  3. 2019.03.14 js 난독화
  4. 2019.03.14 youtube videoplayback 관련 URL
  5. 2019.03.14 squid hierarchy
  6. 2019.03.14 squid url_rewrite_program
  7. 2019.03.13 disk error recovery - TLER(WD)
  8. 2019.03.13 node.js 사용자 모듈 만들기
  9. 2019.03.13 iscsi mdadm
  10. 2019.03.12 sqlite primary key
Programming/android2019. 3. 14. 16:02

apk 안에들어있는 녀석은 이진화 되어있어서 볼 수 없는데(그럼 xml이라고 하지말던가!)

axmldec 받아서 apk 를 지정해주면 xml로 뱉어내준다. (xml 파일을 압축 풀어서 하는게 아님)


[링크 : https://github.com/ytsutano/axmldec]

  [링크 : https://android.stackexchange.com/questions/197182/apks-androidmanifest-xml-looks-to-be-binary]

'Programming > android' 카테고리의 다른 글

ubuntu android studio  (0) 2019.06.10
안드로이드 무선 디버깅(adb wifi)  (0) 2019.03.14
android REST client  (0) 2019.02.07
안드로이드 주기적 작업  (0) 2019.01.25
액티비티 인텐트  (0) 2019.01.25
Posted by 구차니

서버를 보다보니 뭔가가 주기적으로 IO를 일으키는게 보여서

프로세스 확인해보니 특정 VM

특정 VM에다가 iotop 깔아서 보니 아래 녀석이 튀어나온다.

% postgres: wal writer process

% postgres: checkpointer process

% postgres: autovacuum worker process   dbname


그래서 WAL이 먼가 찾아보니 Write Ahead Logging의 약자라고..

WAL을 쓰면 하드에 쓰는 주기가 줄어든다고 하는데..

[링크 : http://postgresql.kr/docs/9.6/wal-intro.html]


[링크 : https://www.postgresql.org/docs/9.6/wal-intro.html]


체크포인트는 더티를 쓰는 거고(write back에 가깝나?)

 At checkpoint time, all dirty data pages are flushed to disk and a special checkpoint record is written to the log file.

[링크 : https://www.postgresql.org/docs/9.2/wal-configuration.html]

[링크 : https://www.postgresql.org/docs/8.2/wal-configuration.html]


얘는 garbage collector 인거 같네

 VACUUM -- garbage-collect and optionally analyze a database

[링크 : https://www.postgresql.org/docs/8.2/sql-vacuum.html]


[링크 : https://www.postgresql.org/docs/8.2/runtime-config-autovacuum.html]

[링크 : https://www.postgresql.org/docs/8.2/routine-vacuuming.html]



읽으려니 눈에 안들어 오네.. ㅠㅠ

[링크 : https://www.cybertec-postgresql.com/en/postgresql-writer-and-wal-writer-processes-explained/]

'프로그램 사용 > postgreSQL' 카테고리의 다른 글

postgresql password chg  (0) 2019.06.04
postgresql 계정은 있는데 로그인 안될때  (0) 2019.03.20
postgresql encoding / collate  (0) 2019.03.08
postgresql 설치(centos)  (0) 2019.03.08
postgreSQL centos 패키지  (0) 2019.02.01
Posted by 구차니

패킹 혹은 난독화라고 해야 하려나?

패킹은 단순하게 base62로 인코딩 한 것을 eval을 통해서 실행하는 구조인 거라

난독화라 하긴 애매한 녀석이고


짧은 녀석을 패킹하니 오히려 더 데이터가 많아지는 현상이 발생!

var aasdfasdf = 'asdfasfasdf';

console.log("aasdfasdf :"+aasdfasdf); 


대충봐도 어떤 구조인지 그냥 눈에 보이는 느낌적인 느낌?

eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('1 0=\'2\';3.4("0 :"+0);',5,5,'aasdfasdf|var|asdfasfasdf|console|log'.split('|'),0,{})) 


[링크 : https://fimtrus.tistory.com/entry/자바스크립트-난독화패킹-언패킹]

  [링크 : http://dean.edwards.name/packer/]

  [링크 : https://www.strictly-software.com/unpacker#unpacker]

[링크 : https://xetown.com/questions/494426]

[링크 : https://12bme.tistory.com/357]


한 10만원 하는 프로그램이 쩐다고(압축율에서)

[링크 : https://allroundplaying.tistory.com/59]


[링크 : https://obfuscator.io/] 얜 무료


원리관련

[링크 : https://4rgos.tistory.com/2]

Posted by 구차니

흐음...

여러개 패킷을 까본건 아니지만 캐시에서 다른걸로 인식하는 이유가 저 망할 cpn 값 때문인 듯..

https://r2---sn-ab02a0nfpgxapox-jwwe7.googlevideo.com/videoplayback?source=youtube&ms=au%2Conr&mt=1552538122&

mv=m&id=o-ALgIWMfOrFHHMwZnmn-TneMiQB_DBuam4C3gy0uXrNt3&requiressl=yes&dur=478.244&mm=31%2C26&

mn=sn-ab02a0nfpgxapox-jwwe7%2Csn-oguelne7&pl=22&ip=211.237.16.76&

sparams=aitags%2Cclen%2Cdur%2Cei%2Cgcr%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cexpire&signature

=E9FA7DEB837FF2931C1BBDF8A75CC08AA6381D.553ACDD01BBD44D14946BB8D37C5B285DD807580&gcr=kr

&ipbits=0&expire=1552559810&lmt=1548316020126515&initcwndbps=728750&

aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C394%2C395%2C396%2C397&

mime=video%2Fmp4&itag=396&key=yt6&gir=yes&clen=16011686&keepalive=yes&txp=5532432&fvip=2&

ei=YtqJXMbHJKeGs8IPgp6B4AQ&

c=WEB&alr=yes&

cpn=zCV8-pls_I8uiHHw&

cver=2.20190313&

range=0-90603&

altitags=395%2C394&rn=1&rbuf=0

https://r2---sn-ab02a0nfpgxapox-jwwe7.googlevideo.com/videoplayback?source=youtube&ms=au%2Conr&mt=1552538122&

mv=m&id=o-ALgIWMfOrFHHMwZnmn-TneMiQB_DBuam4C3gy0uXrNt3&requiressl=yes&dur=478.244&mm=31%2C26&

mn=sn-ab02a0nfpgxapox-jwwe7%2Csn-oguelne7&pl=22&ip=211.237.16.76&

sparams=aitags%2Cclen%2Cdur%2Cei%2Cgcr%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cexpire&signature

=E9FA7DEB837FF2931C1BBDF8A75CC08AA6381D.553ACDD01BBD44D14946BB8D37C5B285DD807580&gcr=kr

&ipbits=0&expire=1552559810&lmt=1548316020126515&initcwndbps=728750&

aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C394%2C395%2C396%2C397&

mime=video%2Fmp4&itag=396&key=yt6&gir=yes&clen=16011686&keepalive=yes&txp=5532432&fvip=2&

ei=YtqJXMbHJKeGs8IPgp6B4AQ&

c=WEB&alr=yes&

cpn=naxiChjHuGyejORl&

cver=2.20190313&

range=0-90603&

altitags=395%2C394&rn=1&rbuf=0


[링크 : https://www.youtube.com/watch?v=lBSC3rUWGtY]


+

크롬에서 개발자도구로 검색해보니 base.js 에서 cpn을 생성하는 부분을 발견..

Client Playback Nonce 줄여서 cpn

g.h.Wj = function(a) {

        lja(this, a);

        if ("html5.invalidstate" != a.errorCode && "fmt.unplayable" != a.errorCode && "fmt.unparseable" != a.errorCode || !WI(this, a.errorCode, a.details)) {

            var b = /^pp/.test(this.g.clientPlaybackNonce);

            if (kja(a)) {

                a.details.sts = "17968";

                if (YI(this)) {

                    g.U(this.l, 4) || !this.fa("html5_suspended_reload_killswitch") && g.U(this.l, 512) ? (this.Mc = !0, cI(this)) : (this.o && (a.g && (a.details.e = a.errorCode, a.errorCode = "qoe.restart", a.g = !1), this.o.onError(a.errorCode, Tw(a.details))), ZI(this));

                    return

                }

                a: if (!(6048E5 >

                        g.P() - this.A.vh)) {

                    try {

                        window.location.reload(!0);

                        break a

                    } catch (c) {}

                    this.fa("tvhtml5_retire_old_players") && g.Iy(this.A) && aJ(this)

                }

            }

            if ($I(a) && this.g.va && this.g.va.i) {

                if (this.o) this.o.onError(a.errorCode, Tw(a.details));

                this.Ya("highrepfallback", "1", !0);

                !this.fa("html5_hr_logging") && /^hr/.test(this.g.clientPlaybackNonce) && btoa && this.Ya("afmts", btoa(this.g.adaptiveFormats));

                zha(this.g);

                aI(this);

                cI(this);

                VI(this);

                this.playVideo()

            } else a.g ? (b = this.u ? this.u.B.o : null, b = $I(a) && b && b.isLocked() ? "FORMAT_UNAVALIABLE" :

                void 0, g.lI(this, a.errorCode, b, Tw(a.details))) : this.o && (this.o.onError(a.errorCode, Tw(a.details)), b && "manifest.net.connect" == a.errorCode && (a = "https://www.youtube.com/generate_204?cpn=" + this.g.clientPlaybackNonce + "&t=" + g.P(), (new IF(a, "manifest", (0, g.y)(function(c) {

                this.Ya("pathprobe", c)

            }, this), (0, g.y)(function(c) {

                this.onError(c.errorCode, Tw(c.details))

            }, this.o))).send()))

        }

    }; 


Posted by 구차니
프로그램 사용/squid2019. 3. 14. 13:01

두개가 연관이 있는 것 같으면서도 다른거 같은데


계층을 두어 관리하는 이유는 (캐시 계층)

squid 하나가 전체를 캐싱하는게 아니라 부모나 친척 노드에서 분산해서 캐시를 저장하기 위함으로 보인다.

[링크 : https://wiki.squid-cache.org/Features/CacheHierarchy]


그리고 그 계층과는 다르게 데이터를 분석함으로서

어떤 계층으로 나누어서 캐싱을 할지에 대한게 HTTP 프로토콜 레벨에서의 계층으로 나누고

그 계층에서 열외되는 애들은 캐싱을 하지 않도록 한다는 내용

What makes a request hierarchic

The purpose of cache hierarchy is to maximize the chance of finding objects in siblings, so a set of heuristics is applied to try and determine in advance whether an object is likely to be cacheable. A few objects are not cacheable, and are thus not hierarchic. Those are:

  • reload requests
  • cache validations with non-Squid ICP peers
  • requests for HTTP methods other than GETHEAD or TRACE

  • authenticated requests 


[링크 : https://wiki.squid-cache.org/KnowledgeBase/HierarchyControl]


'프로그램 사용 > squid' 카테고리의 다른 글

lynx proxy  (0) 2019.03.27
url_rewriter squid  (0) 2019.03.15
squid url_rewrite_program  (0) 2019.03.14
squid log code  (0) 2019.03.01
squid hier/none direct 관련 설정  (0) 2019.02.27
Posted by 구차니
프로그램 사용/squid2019. 3. 14. 11:19

예전에 찾던 것 중에 php를 통해 무언가를 쓰는게 있었는데

얘 명칭이 helper multiplexer인 듯.

근데 어떤 포맷으로 데이터를 넘겨서 실행하게 하는지에 대해서는 안보이네?


2.4 Helper Multiplexer

The helper multiplexer's purpose is to relieve some of the burden Squid has when dealing with slow helpers. It does so by acting as a middleman between squid and the actual helpers, talking to Squid via the multiplexed concurrent variant of the helper protocol and to the helpers via the non-concurrent variant.

Helpers are started on demand, and in theory the muxer can handle up to 1k helpers per instance. It's up to squid to decide how many helpers to start.

The muxer knows nothing about the actual messages being passed around, and as such can't really (yet?) compensate for broken helpers. It is not yet able to manage dying helpers, but it will.

To configure the multiplexer add its binary name (usually /usr/share/libexec/helper-mux.pl) in front of the name of whichever helper is being multiplexed. It takes the helper binary path and parameters as its own command parameters. The concurrency setting already existing in Squid is used to configure how many child helpers it may run.

For example, a traditional configuration is

        url_rewrite_program /your/redirector.sh
        url_rewrite_children 5
   
the alternative multiplexer configuration is:
        url_rewrite_program /usr/share/libexec/helper-mux.pl /your/redirector.sh
        url_rewrite_children 1 concurrency=5
   

Helpers which are already concurrent protocol enabled gain little benefit from the multiplexer on most systems. However on some systems where Squid spawning helpers causes excess memory usage the reduction in direct helper spawned by Squid can result in a great reduction in resource use.

The helper can be controlled using various signals:

  • SIGHUP: dump the state of all helpers to STDERR

[링크 : ftp://ftp.arnes.si/packages/squid/squid-3.2.14-RELEASENOTES.html]


 # OPTIONS FOR URL REWRITING

# ----------------------------------------------------------------------------- # TAG: storeurl_rewrite_program # Specify the location of the executable for the Store URL rewriter. # The Store URL rewriter allows URLs to be "normalised" ; mapping # multiple URLs to a single URL representation for cache operations. # # For example, if you request an object at: # # http://srv1.example.com/image.gif # # and a subsequent request for: # # http://srv2.example.com/image.gif # # then Squid will treat these both as different URLs and cache them # seperately. # # This is almost the normal case, but an increasing number of sites # distribute the same content between multiple frontend hosts. # The Store URL rewriter allows you to rewrite these URLs to one URL # to use for cache operations, but not -fetches-. Fetches are still # made from the original site, but stored with the store URL rewritten # URL as the store key. # # For each requested URL rewriter will receive on line with the format # # URL <SP> client_ip "/" fqdn <SP> user <SP> method <SP> urlgroup # [<SP> kvpairs] <NL> # # In the future, the rewriter interface will be extended with # key=value pairs ("kvpairs" shown above). Rewriter programs # should be prepared to receive and possibly ignore additional # whitespace-separated tokens on each input line. # # And the rewriter may return a rewritten URL. The other components of # the request line does not need to be returned (ignored if they are). # # By default, a Store URL rewriter is not used. # # Please note - the normal URL rewriter rewrites Squid's _destination_ # URL - ie, what it fetches. The Store URL rewriter rewrites Squid's # _store_ URL - ie, what it uses to store and retrieve objects. # #Default: # none


#  TAG: url_rewrite_program
#	Specify the location of the executable for the URL rewriter.
#	Since they can perform almost any function there isn't one included.
#
#	For each requested URL rewriter will receive on line with the format
#
#	URL <SP> client_ip "/" fqdn <SP> user <SP> method <SP> urlgroup
#	 [<SP> kvpairs] <NL>
#
#	In the future, the rewriter interface will be extended with
#	key=value pairs ("kvpairs" shown above).  Rewriter programs
#	should be prepared to receive and possibly ignore additional
#	whitespace-separated tokens on each input line.
#
#	And the rewriter may return a rewritten URL. The other components of
#	the request line does not need to be returned (ignored if they are).
#
#	The rewriter can also indicate that a client-side redirect should
#	be performed to the new URL. This is done by prefixing the returned
#	URL with "301:" (moved permanently) or 302: (moved temporarily).
#
#	It can also return a "urlgroup" that can subsequently be matched
#	in cache_peer_access and similar ACL driven rules. An urlgroup is
#	returned by prefixing the returned URL with "!urlgroup!".
#
#	By default, a URL rewriter is not used.
#
#Default: 

# none 

[링크 : http://alter.org.ua/soft/win/squid_url_rewrite/squid.conf]


[링크 : https://wiki.squid-cache.org/Features/HelperMultiplexer]

'프로그램 사용 > squid' 카테고리의 다른 글

url_rewriter squid  (0) 2019.03.15
squid hierarchy  (0) 2019.03.14
squid log code  (0) 2019.03.01
squid hier/none direct 관련 설정  (0) 2019.02.27
squid용 인증서 관련 (인증서 변환하기)  (0) 2019.02.25
Posted by 구차니
하드웨어/Storage2019. 3. 13. 16:58

TLER 라는 단어 발견

[링크 : http://2cpu.co.kr/lec/2969]


검색!

WD RED 계열(NAS용) 에서 지원하는 기능으로 에러 발생시 질질 끄는게 아니라 나 에러요~ 하고

리포팅 해서 무시하고 다른걸 쓰던가 하는 등의 기능을 할 수 있도록 하는 듯.

Seagate: ERC (Error Recovery Control)

WD: TLER (Time-Limited Error Recovery)

HGST: CCTL (Command Completion Time Limit) 

[링크 : http://cafe.daum.net/_c21_/bbs_search_read?grpid=1TSa0&fldid=X6io&datanum=32]

[링크 : https://en.wikipedia.org/wiki/Error_recovery_control]

[링크 : https://www.clien.net/service/board/lecture/12311180]

'하드웨어 > Storage' 카테고리의 다른 글

D-Link DNS-343 대실망쇼 -_-  (0) 2020.09.08
시놀로지 로그인 시도 차단하기  (2) 2019.07.30
2.5인치 SAS/SATA 트레이  (0) 2019.02.28
시게이트 SSHD 스펙  (0) 2019.01.16
synology 로그..  (0) 2018.09.18
Posted by 구차니
Programming/node.js2019. 3. 13. 13:47

전에 적었나? 기억 안나니 다시 씀


express를 쓰다 보면 가장 마지막 줄에

module.exports = router; 

요런게 보이는데 모듈로 정의해주는 녀석이다.


여러가지 방법들이 보이는데, 취향대로 쓰면 될 듯

(개인적으로는 작성하고 모듈로 변환하는 쪽이라서 가장 아래꺼를 주로 쓰게 될 듯)

export.func_name = function () {}


module.exports = {

   funcname : function() {}

};


function funcname() {};

module.exports = {

   funcname : funcname

}; 


[링크 : https://hongku.tistory.com/92]

[링크 : https://winmargo.tistory.com/173] DAO

[링크 : https://jiwondh.github.io/2017/01/17/create-module/]

[링크 : https://doitnow-man.tistory.com/161]

'Programming > node.js' 카테고리의 다른 글

node.js unit test  (0) 2019.03.25
node.js http cache proxy  (0) 2019.03.20
ckeditor 와 php, node.js 연동  (0) 2019.03.11
floala 에디터 + node.js  (0) 2019.03.08
wysiwyg editor / node.js  (0) 2019.02.26
Posted by 구차니
하드웨어/RAID2019. 3. 13. 08:24

iscsi를 통해 ethernet으로 SAN을 구성하고

mdadm으로 SCSI RAID를 구축, 스토리지 서버 팜(?)을 만드는 듯


[링크 : https://wiki.alpinelinux.org/wiki/ISCSI_Raid_and_Clustered_File_Systems]

[링크 : https://www.mylinuxplace.com/distributed-raid-over-iscsi/]

Posted by 구차니
프로그램 사용/sqlite2019. 3. 12. 16:43

mysql을 이렇게 써본적이 없어서 모르겠는데..

pk를 자동증가로 설정하면 pk 라서 일단 중복을 체크하는 듯.

정상적이긴 한데.. 자동 증가면 그냥 값을 무시하는게 편리하지 않았을까..


[링크 : https://thinking-jmini.tistory.com/10]

'프로그램 사용 > sqlite' 카테고리의 다른 글

연습용 Database (SQLite)  (2) 2019.12.18
sqlite memory cache  (0) 2019.05.21
sqlite dateime  (0) 2018.11.27
sqlite3 도움말  (0) 2017.04.02
라즈베리 sqlite 버전  (0) 2017.04.02
Posted by 구차니