เจนเฉ เจนเจฌเจฐ!
เจธเจพเจกเฉ เจเฉฐเจฎ เจตเจฟเฉฑเจ, เจธเจพเจกเฉ เจเฉฐเจชเจจเฉ เจ เจเจธเจฐ เจตเฉฑเจ-เจตเฉฑเจ เจธเจฅเจฟเจฐ เจเฉเจก เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเฉเจฒเจธ (SAST) เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเฉเฅค เจฌเจพเจเจธ เจฆเฉ เจฌเจพเจนเจฐ เจเจน เจธเจพเจฐเฉ เจเจธเจค เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเจจ. เจฌเฉเจธเจผเฉฑเจ, เจเจน เจธเจญ เจชเฉเจฐเฉเจเฉเจเจ เจ เจคเฉ เจเจธ เจตเจฟเฉฑเจ เจตเจฐเจคเฉเจเจ เจเจเจเจ เจคเจเจจเจพเจฒเฉเจเฉเจเจ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจพ เจนเฉ, เจจเจพเจฒ เจนเฉ เจเจน เจคเจเจจเจพเจฒเฉเจเฉ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจฆเฉ เจจเจฟเจฏเจฎเจพเจ เจฆเฉเจเจฐเจพ เจเจฟเฉฐเจจเฉ เจเฉฐเจเฉ เจคเจฐเฉเจนเจพเจ เจเจตเจฐ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ. เจฎเฉเจฐเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจเฉฑเจ SAST เจเฉเจฒ เจฆเฉ เจเฉเจฃ เจเจฐเจจ เจตเฉเจฒเฉ เจธเจญ เจคเฉเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจฎเจพเจชเจฆเฉฐเจกเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจนเฉ เจเจธเจจเฉเฉฐ เจคเฉเจนเจพเจกเฉเจเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเฉ เจ เจจเฉเจธเจพเจฐ เจ เจจเฉเจเฉเจฒเจฟเจค เจเจฐเจจ เจฆเฉ เจฏเฉเจเจคเจพ, เจ เจฐเจฅเจพเจค, เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจฒเจฟเจเจฃเจพ เจ เจคเฉ เจฌเจฆเจฒเจฃเจพ เจเจพเจ, เจเจฟเจตเฉเจ เจเจฟ เจเจนเจจเจพเจ เจจเฉเฉฐ เจ เจเจธเจฐ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ, เจเจธเจเจฎ เจชเฉเฉฑเจเจเจฟเฉฑเจเจพเจเฅค
เจ เจธเฉเจ เจ เจเจธเจฐ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจพเจ - เจเฉฑเจ เจฌเจนเฉเจค เจนเฉ เจฆเจฟเจฒเจเจธเจช เจ เจคเฉ เจธเจผเจเจคเฉเจธเจผเจพเจฒเฉ เจเฉเจก เจตเจฟเจธเจผเจฒเฉเจธเจผเจเฅค เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ เจฎเฉเจ เจเจธเจฆเฉ เจฒเจ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจฒเจฟเจเจฃ เจฆเฉ เจเจชเจฃเฉ เจ เจจเฉเจญเจต เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเจพเจเจเจพเฅค
เจตเจฟเจธเจผเจพ-เจธเฉเจเฉ
-
เจจเจฟเจฏเจฎเจพเจ เจฌเจพเจฐเฉ เจเจฎ เจเจพเจฃเจเจพเจฐเฉ -
เจธเจผเฉเจฐเฉเจเจค เจเจฐเจจ เจตเจพเจฒเจฟเจเจ เจฒเจ "เจกเจเจธเจผเจจเจฐเฉ"
เจเฉฐเจฆเจฐเจพเจเจผ
เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ, เจฎเฉเจ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฒเจ เจชเฉเจฐเจธเจผเจจ เจฒเจฟเจเจฃ เจฆเฉเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฌเจพเจฐเฉ เจฐเฉเจธเฉ เจตเจฟเฉฑเจ เจเฉเจ เจฒเฉเจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจฆเฉ เจธเจฟเจซเจพเจฐเจธเจผ เจเจฐเจจเจพ เจเจพเจนเจพเจเจเจพเฅค เจเจน เจธเจฟเจฐเจฒเฉเจ เจนเฉเจ 2019 เจฆเฉ เจ
เฉฐเจค เจตเจฟเฉฑเจ เจนเฉเจฌเจฐเฉ เจเฉฑเจคเฉ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจธเฉ:
เจเจน เจตเจฟเจธเจคเจพเจฐ เจตเจฟเฉฑเจ เจเจพเจเจ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเฉเจ เจเฉเจธเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจ CxQL (เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจเจฟเจเจฐเฉ เจฒเฉเจเจเฉเจเจ) เจตเจฟเฉฑเจ เจชเจนเจฟเจฒเฉเจเจ เจธเจตเจพเจฒเจพเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจฒเจฟเจเจฃเจพ เจนเฉ เจ เจคเฉ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจจเจฟเจฏเจฎ เจเจฟเจตเฉเจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเจจ เจฆเฉ เจฎเฉเจฒ เจธเจฟเจงเจพเจเจค เจฆเจฟเจเจพเจเจเจฆเจพ เจนเฉเฅค
เจฎเฉเจ เจเจธ เจตเจฟเฉฑเจ เจตเจฐเจฃเจจ เจเฉเจคเฉ เจเจ เจธเจผเจฌเจฆเจพเจ เจจเฉเฉฐ เจจเจนเฉเจ เจฆเฉเจนเจฐเจพเจตเจพเจเจเจพ, เจนเจพเจฒเจพเจเจเจฟ เจเฉเจ เจเฉฐเจเจฐเจธเฉเจเจธเจผเจจ เจ เจเฉ เจตเฉ เจฎเฉเจเฉเจฆ เจนเฉเจฃเจเฉ. เจฎเฉเจฐเฉ เจฒเฉเจ เจตเจฟเฉฑเจ เจฎเฉเจ "เจชเจเจตเจพเจจเจพเจ เจฆเจพ เจธเฉฐเจเฉเจฐเจนเจฟ" เจฆเฉ เจเฉฑเจ เจเจฟเจธเจฎ เจจเฉเฉฐ เจเฉฐเจชเจพเจเจฒ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจพเจเจเจพ, เจเจพเจธ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจฆเฉ เจนเฉฑเจฒเจพเจ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจเฉ เจฎเฉเจ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฆเฉ เจจเจพเจฒ เจฎเฉเจฐเฉ เจเฉฐเจฎ เจฆเฉเจฐเจพเจจ เจเจเจเจ เจนเจจเฅค เจฎเฉเจจเฉเฉฐ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ 'เจคเฉ เจเจชเจฃเฉ เจฆเจฟเจฎเจพเจ เจจเฉเฉฐ เจฐเฉเจ เจเจฐเจจเจพ เจชเจฟเจ. เจเจ เจตเจพเจฐ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจตเจฟเฉฑเจ เจฒเฉเฉเฉเจเจฆเฉ เจเจพเจฃเจเจพเจฐเฉ เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจธเฉ, เจ เจคเฉ เจเจ เจตเจพเจฐ เจเจน เจธเจฎเจเจฃเจพ เจตเฉ เจฎเฉเจธเจผเจเจฒ เจนเฉเฉฐเจฆเจพ เจธเฉ เจเจฟ เจเฉ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจฎเฉเจจเฉเฉฐ เจเจฎเฉเจฆ เจนเฉ เจเจฟ เจฎเฉเจฐเจพ เจคเจเจฐเจฌเจพ เจ เจคเฉ เจจเฉเจเจฆ เจฆเฉเจเจ เจฐเจพเจคเจพเจ เจตเจฟเจ เจฐเจฅ เจจเจนเฉเจ เจเจพเจฃเจเฉเจเจ, เจ เจคเฉ เจเจน "เจเจธเจเจฎ เจชเฉเฉฑเจเจเจฟเฉฑเจเจพเจ เจฆเฉ เจชเจเจตเจพเจจเจพเจ เจฆเจพ เจธเฉฐเจเฉเจฐเจนเจฟ" เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจ เจเฉฐเจเจฟเจเจ เจเจพเจ เจเฉเจ เจจเจฐเจต เจธเฉเฉฑเจฒเจพเจ เจฆเฉ เจฌเจเจค เจเจฐเฉเจเจพเฅค เจเจธ เจฒเจ, เจเจ เจธเจผเฉเจฐเฉ เจเจฐเฉเจ!
เจจเจฟเจฏเจฎเจพเจ เจฌเจพเจฐเฉ เจเจฎ เจเจพเจฃเจเจพเจฐเฉ
เจชเจนเจฟเจฒเจพเจ, เจเจ เจ เฉฑเจเฉ เจเฉ เจนเฉเจตเฉเจเจพ, เจเจธ เจฆเฉ เจฌเจฟเจนเจคเจฐ เจธเจฎเจ เจฒเจ, เจเฉเจ เจฌเฉเจจเจฟเจเจฆเฉ เจงเจพเจฐเจจเจพเจตเจพเจ เจ เจคเฉ เจจเจฟเจฏเจฎเจพเจ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจตเฉเจเฉเจเฅค เจ เจคเฉ เจเจน เจตเฉ เจเจฟเจเจเจเจฟ เจฆเจธเจคเจพเจตเฉเจเจผ เจเจธ เจฌเจพเจฐเฉ เจเฉเจ เจจเจนเฉเจ เจเจนเจฟเฉฐเจฆเฉ เจนเจจ เจเจพเจ เจขเจพเจเจเฉ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจซเฉเจฒเจฟเจ เจนเฉเจเจ เจนเฉ, เจเฉ เจเจฟ เจฌเจนเฉเจค เจธเฉเจตเจฟเจงเจพเจเจจเจ เจจเจนเฉเจ เจนเฉเฅค
-
เจจเจฟเจฏเจฎ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจเฉเจฃเฉ เจเจ เจชเฉเจฐเฉเจธเฉเจ (เจธเจฐเจเจฐเจฎ เจจเจฟเจฏเจฎเจพเจ เจฆเจพ เจเฉฑเจ เจธเจฎเฉเจน) เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจธเจเฉเจจเจฟเฉฐเจ เจฆเฉเจฐเจพเจจ เจฒเจพเจเฉ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจเฅค เจคเฉเจธเฉเจ เจ เจฃเจเจฟเจฃเจค เจชเฉเจฐเฉเจธเฉเจเจธ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ, เจ เจคเฉ เจเจนเจจเจพเจ เจฆเฉ เจฌเจฃเจคเจฐ เจเจฟเจตเฉเจ เจเจฐเจจเฉ เจนเฉ เจเจน เจคเฉเจนเจพเจกเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจพ เจนเฉเฅค เจคเฉเจธเฉเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจญเจพเจธเจผเจพ เจฆเฉเจเจฐเจพ เจธเจฎเฉเจน เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเจพเจ เจนเจฐเฉเจ เจชเฉเจฐเฉเจเฉเจเจ เจฒเจ เจชเฉเจฐเฉเจธเฉเฉฑเจ เจเฉเจฃ เจธเจเจฆเฉ เจนเฉเฅค เจเจฟเจฐเจฟเจเจธเจผเฉเจฒ เจจเจฟเจฏเจฎเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจธเจเฉเจจเจฟเฉฐเจ เจฆเฉ เจเจคเฉ เจ เจคเฉ เจธเจผเฉเฉฑเจงเจคเจพ เจจเฉเฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจเจฐเจฆเฉ เจนเฉเฅค
เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจเฉฐเจเจฐเจซเฉเจธ เจตเจฟเฉฑเจ เจชเฉเจฐเฉเจธเฉเจ เจธเฉเจ เจ เจช เจเจฐเจจเจพ
-
เจจเจฟเจฏเจฎ CxAuditor เจจเจพเจฎเจ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจเฉเจฒ เจตเจฟเฉฑเจ เจธเฉฐเจชเจพเจฆเจฟเจค เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจเฅค เจเจน เจเฉฑเจ เจกเฉเจธเจเจเจพเจช เจเจชเจฒเฉเจเฉเจธเจผเจจ เจนเฉ เจเฉ เจเฉเจเจฎเจพเจฐเจเจธ เจเจฒเจพเจเจฃ เจตเจพเจฒเฉ เจธเจฐเจตเจฐ เจจเจพเจฒ เจเฉเฉเจฆเฉ เจนเฉเฅค เจเจธ เจเฉเจฒ เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจฆเฉ เจขเฉฐเจ เจนเจจ: เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเจจเจพ เจ เจคเฉ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเฉเจคเฉ เจเจ เจธเจเฉเจจ เจฆเฉ เจจเจคเฉเจเจฟเจเจ เจฆเจพ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเจฐเจจเจพเฅค
CxAudit เจเฉฐเจเจฐเจซเฉเจธ
-
เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจตเจฟเฉฑเจ เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจญเจพเจธเจผเจพ เจฆเฉเจเจฐเจพ เจตเฉฐเจกเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจญเจพเจต, เจนเจฐเฉเจ เจญเจพเจธเจผเจพ เจฆเฉ เจเจชเจฃเฉ เจธเจตเจพเจฒเจพเจ เจฆเจพ เจธเฉเฉฑเจ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจเฉเจ เจเจฎ เจจเจฟเจฏเจฎ เจตเฉ เจนเจจ เจเฉ เจญเจพเจธเจผเจพ เจฆเฉ เจชเจฐเจตเจพเจน เจเฉเจคเฉ เจฌเจฟเจจเจพเจ เจฒเจพเจเฉ เจนเฉเฉฐเจฆเฉ เจนเจจ, เจเจน เจ เจเฉเจคเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจธเจตเจพเจฒ เจนเจจเฅค เจเจผเจฟเจเจฆเจพเจคเจฐ เจนเจฟเฉฑเจธเฉ เจฒเจ, เจฌเฉเจจเจฟเจเจฆเฉ เจธเจตเจพเจฒเจพเจ เจตเจฟเฉฑเจ เจ เจเจฟเจนเฉ เจเจพเจฃเจเจพเจฐเฉ เจฆเฉ เจเฉเจ เจเจฐเจจเจพ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเฉ เจฆเฉเจเฉ เจจเจฟเจฏเจฎ เจตเจฐเจคเจฆเฉ เจนเจจเฅค
เจญเจพเจธเจผเจพ เจฆเฉเจเจฐเจพ เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจตเฉฐเจกเจฃเจพ
-
เจจเจฟเจฏเจฎ "เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ" เจ เจคเฉ "เจจเจพเจจ-เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ" (เจเจเจเจผเฉเจเจฟเจเจเจก เจ เจคเฉ เจจเจพเจ เจเจเจเจผเฉเจเจฟเจเจเจฟเจก) เจนเจจเฅค เจฌเจฟเจฒเจเฉเจฒ เจธเจนเฉ เจจเจพเจฎ เจจเจนเฉเจ, เจฎเฉเจฐเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจชเจฐ เจเจน เจเจนเฉ เจนเฉ เจเฉ เจเจน เจนเฉเฅค เจคเจฒ เจฒเจพเจเจจ เจเจน เจนเฉ เจเจฟ "เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ" เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเจพ เจจเจคเฉเจเจพ UI เจตเจฟเฉฑเจ เจธเจเฉเจจ เจจเจคเฉเจเจฟเจเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเฉเจคเจพ เจเจพเจตเฉเจเจพ, เจ เจคเฉ "เจจเจพเจจ-เจเจเจเจผเฉเจเจฟเจเจเฉเจฌเจฒ" เจจเจฟเจฏเจฎเจพเจ เจฆเฉ เจฒเฉเฉ เจธเจฟเจฐเจซเจผ เจเจนเจจเจพเจ เจฆเฉ เจจเจคเฉเจเจฟเจเจ เจจเฉเฉฐ เจนเฉเจฐ เจฌเฉเจจเจคเฉเจเจ เจตเจฟเฉฑเจ เจตเจฐเจคเจฃ เจฒเจ เจนเฉ (เจธเจพเจฐ เจฐเฉเจช เจตเจฟเฉฑเจ, เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ)เฅค
เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ เจจเจฟเจฏเจฎ เจฆเฉ เจเจฟเจธเจฎ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจเจพ
-
เจคเฉเจธเฉเจ เจจเจตเฉเจ เจจเจฟเจฏเจฎ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ เจเจพเจ เจฎเฉเจเฉเจฆเจพ เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจ/เจฎเฉเฉ เจฒเจฟเจ เจธเจเจฆเฉ เจนเฉเฅค เจเฉฑเจ เจจเจฟเจฏเจฎ เจจเฉเฉฐ เจฎเฉเฉ เจฒเจฟเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจธเจจเฉเฉฐ เจเฉเจฐเฉ เจตเจฟเฉฑเจ เจฒเฉฑเจญเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจธเฉฑเจเจพ-เจเจฒเจฟเฉฑเจ เจเจฐเฉ เจ เจคเฉ เจกเฉเจฐเฉเจช-เจกเจพเจเจจ เจฎเฉเจจเฉ เจคเฉเจ "เจเจตเจฐเจฐเจพเจเจก" เจเฉเจฃเฉเฅค เจเฉฑเจฅเฉ เจเจน เจฏเจพเจฆ เจฐเฉฑเจเจฃเจพ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเฉ เจเจฟ เจจเจตเฉเจ เจจเจฟเจฏเจฎ เจธเจผเฉเจฐเฉ เจตเจฟเฉฑเจ เจชเฉเจฐเฉเจธเฉเจเจธ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจจเจนเฉเจ เจเฉเจคเฉ เจเจ เจนเจจ เจ เจคเฉ เจเจฟเจฐเจฟเจเจธเจผเฉเจฒ เจจเจนเฉเจ เจนเจจเฅค เจเจนเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจนเจจเจพเจ เจจเฉเฉฐ เจธเจพเจงเจจ เจตเจฟเฉฑเจ "เจชเฉเจฐเฉเจธเฉเจ เจฎเฉเจจเฉเจเจฐ" เจฎเฉเจจเฉ เจตเจฟเฉฑเจ เจเจฟเจฐเจฟเจเจธเจผเฉเจฒ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจฎเฉเฉ เจฒเจฟเจเฉ เจจเจฟเจฏเจฎ เจเจนเจจเจพเจ เจฆเฉเจเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจฌเจฐเจเจฐเจพเจฐ เจฐเฉฑเจเจฆเฉ เจนเจจ, เจฏเจพเจจเฉ เจเฉเจเจฐ เจจเจฟเจฏเจฎ เจเจฟเจฐเจฟเจเจธเจผเฉเจฒ เจธเฉ, เจคเจพเจ เจเจน เจ เจเจฟเจนเจพ เจนเฉ เจฐเจนเฉเจเจพ เจ เจคเฉ เจคเฉเจฐเฉฐเจค เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค
เจชเฉเจฐเฉเจธเฉเจ เจฎเฉเจจเฉเจเจฐ เจเฉฐเจเจฐเจซเฉเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจจเจตเฉเจ เจจเจฟเจฏเจฎ เจฆเฉ เจเจฆเจพเจนเจฐเจจ
-
เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจฆเฉ เจฆเฉเจฐเจพเจจ, เจฌเฉเจจเจคเฉเจเจ เจฆเจพ เจเฉฑเจ "เจฐเฉเฉฑเจ" เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ, เจเฉ เจเจฟ เจเจฟเจธ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจพ เจนเฉ. เจเจพเจฃเจเจพเจฐเฉ เจเจเฉฑเจ เฉ เจเจฐเจจ เจตเจพเจฒเฉ เจจเจฟเจฏเจฎ เจชเจนเจฟเจฒเจพเจ เจฒเจพเจเฉ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเจจ, เจ เจคเฉ เจเจน เจเฉ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจจ เจฆเฉเจเฉ. เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจจเจคเฉเจเจพ เจเฉเจธเจผ เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจเจธ เจฒเจ เจเฉเจเจฐ เจฎเฉเจเฉเจฆเจพ เจจเจฟเจฏเจฎ เจฆเฉ เจจเจคเฉเจเจฟเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ, เจคเจพเจ เจ เจเจฟเจนเจพ เจเจฐเจจเจพ เจฌเจฟเจนเจคเจฐ เจนเฉ, เจเจธ เจจเจพเจฒ เจธเจเฉเจจเจฟเฉฐเจ เจธเจฎเจพเจ เจเฉฑเจ เจเจพเจตเฉเจเจพเฅค
-
เจจเจฟเจฏเจฎ เจตเฉฑเจ-เจตเฉฑเจ เจชเฉฑเจงเจฐเจพเจ 'เจคเฉ เจฒเจพเจเฉ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจ:
-
เจชเฉเจฐเฉ เจธเจฟเจธเจเจฎ เจฒเจ - เจเจฟเจธเฉ เจตเฉ เจชเฉเจฐเฉเจเฉเจเจ เจฆเฉ เจธเจเฉเจจเจฟเฉฐเจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจตเฉเจเจพ
-
เจเฉเจฎ เจชเฉฑเจงเจฐ 'เจคเฉ (เจเฉเจฎ) - เจธเจฟเจฐเจซ เจเฉเจฃเฉ เจเจ เจเฉเจฎ เจตเจฟเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจจเฉเฉฐ เจธเจเฉเจจ เจเจฐเจจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจตเฉเจเจพเฅค
-
เจชเฉเจฐเฉเจเฉเจเจ เจชเฉฑเจงเจฐ 'เจคเฉ - เจเฉฑเจ เจเจพเจธ เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ
เจเจน เจชเฉฑเจงเจฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจเจพ เจเจฟเจธ 'เจคเฉ เจจเจฟเจฏเจฎ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ
เจธเจผเฉเจฐเฉเจเจค เจเจฐเจจ เจตเจพเจฒเจฟเจเจ เจฒเจ "เจกเจเจธเจผเจจเจฐเฉ"
เจ เจคเฉ เจฎเฉเจ เจเฉเจ เจเฉเจเจผเจพเจ เจจเจพเจฒ เจธเจผเฉเจฐเฉ เจเจฐเจพเจเจเจพ เจเฉ เจฎเฉเจฐเฉ เจธเจตเจพเจฒเจพเจ เจฆเจพ เจเจพเจฐเจจ เจฌเจฃเฉเจเจ, เจ เจคเฉ เจฎเฉเจ เจเจ เจคเจเจจเฉเจเจพเจ เจตเฉ เจฆเจฟเจเจพเจตเจพเจเจเจพ เจเฉ เจเฉเจตเจจ เจจเฉเฉฐ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจคเฉเจฐ 'เจคเฉ เจธเจฐเจฒ เจฌเจฃเจพเจเจฃเจเฉเจเจเฅค
เจธเฉเจเฉเจเจ เจฆเฉ เจจเจพเจฒ เจธเฉฐเจเจพเจฒเจจ
- ะฒััะธัะฐะฝะธะต ะพะดะฝะพะณะพ ะธะท ะดััะณะพะณะพ (list2 - list1)
* ะฟะตัะตัะตัะตะฝะธะต ัะฟะธัะบะพะฒ (list1 * list2)
+ ัะปะพะถะตะฝะธะต ัะฟะธัะบะพะฒ (list1 + list2)
& (ะปะพะณะธัะตัะบะพะต ะ) - ะพะฑัะตะดะธะฝัะตั ัะฟะธัะบะธ ะฟะพ ัะพะฒะฟะฐะดะตะฝะธั (list1 & list2), ะฐะฝะฐะปะพะณะธัะฝะพ ะฟะตัะตัะตัะตะฝะธั (list1 * list2)
| (ะปะพะณะธัะตัะบะพะต ะะะ) - ะพะฑัะตะดะธะฝัะตั ัะฟะธัะบะธ ะฟะพ ัะธัะพะบะพะผั ะฟะพะธัะบั (list1 | list2)
ะกะพ ัะฟะธัะบะฐะผะธ ะฝะต ัะฐะฑะพัะฐะตั: ^ && || % /
เจธเจพเจฐเฉเจเจ เจเจเจเจฎเจพเจ เจฒเฉฑเจญเฉเจเจ
เจธเจเฉเจจ เจเฉเจคเฉ เจญเจพเจธเจผเจพ เจฆเฉ เจ
เฉฐเจฆเจฐ, เจคเฉเจธเฉเจ เจฌเจฟเจฒเจเฉเจฒ เจเจนเจจเจพเจ เจธเจพเจฐเฉ เจคเฉฑเจคเจพเจ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจชเฉเจฐเจพเจชเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ เจเฉ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจจเฉ เจชเจเจพเจฃเฉ เจนเจจ (เจธเจเจฐเจฟเฉฐเจ, เจซเฉฐเจเจธเจผเจจ, เจเจฒเจพเจธเจพเจ, เจตเจฟเจงเฉเจเจ, เจเจฆเจฟ)เฅค เจเจน เจตเจธเจคเฉเจเจ เจฆเฉ เจเฉเจ เจฅเจพเจ เจนเฉ เจเจฟเจธ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ All
. เจญเจพเจต, เจเจฟเจธเฉ เจเจพเจธ เจจเจพเจฎ เจจเจพเจฒ เจเจฟเจธเฉ เจตเจธเจคเฉ เจฆเฉ เจเฉเจ เจเจฐเจจเจพ searchMe
, เจคเฉเจธเฉเจ เจเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจธเจพเจฐเฉเจเจ เจฒเฉฑเจญเฉเจเจ เจตเจธเจคเฉเจเจ เจตเจฟเฉฑเจ เจจเจพเจฎ เจฆเฉเจเจฐเจพ:
// ะขะฐะบะพะน ะทะฐะฟัะพั ะฒัะดะฐัั ะฒัะต ัะปะตะผะตะฝัั
result = All;
// ะขะฐะบะพะน ะทะฐะฟัะพั ะฒัะดะฐัั ะฒัะต ัะปะตะผะตะฝัั, ะฒ ะธะผะตะฝะธ ะบะพัะพััั
ะฟัะธัััััะฒัะตั โsearchMeโ
result = All.FindByName("searchMe");
เจชเจฐ, เจเฉเจเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจเจฟเจธเฉ เจนเฉเจฐ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจ เจเฉเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจเฉ เจเจฟเจธเฉ เจเจพเจฐเจจ เจเจฐเจเฉ เจธเจเฉเจจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจจเจนเฉเจ เจเฉเจคเฉ เจเจ เจธเฉ (เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ Android เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ groovy), เจคเฉเจธเฉเจ เจเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒ เจฐเจพเจนเฉเจ เจธเจพเจกเฉ เจเจฌเจเฉเจเจ เจธเจชเฉเจธ เจจเฉเฉฐ เจตเจงเจพ เจธเจเจฆเฉ เจนเฉ:
result = AllMembers.All.FindByName("searchMe");
เจตเจนเจพเจ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจฒเจ เจซเฉฐเจเจธเจผเจจ
เจเจน เจซเฉฐเจเจธเจผเจจ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจจเจฟเจฏเจฎเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเจจ เจ เจคเฉ เจเฉฑเจฅเฉ เจเจนเจจเจพเจ เจฆเฉ เจ เจฐเจฅเจพเจ เจฆเฉ เจเฉฑเจ เจเฉเจเฉ เจเฉเจ เจธเจผเฉเจ เจนเฉ:
// ะะฐะบะธะต ะดะฐะฝะฝัะต second ะฒะปะธััั ะฝะฐ first.
// ะััะณะธะผะธ ัะปะพะฒะฐะผะธ - ะขะ (second) ััะพ ะฒะปะธัะตั ะฝะฐ ะะะะฏ (first).
result = first.DataInfluencedBy(second);
// ะะฐะบะธะต ะดะฐะฝะฝัะต first ะฒะปะธััั ะฝะฐ second.
// ะััะณะธะผะธ ัะปะพะฒะฐะผะธ - ะฏ (first) ะฒะปะธัั ะฝะฐ ะขะ (second).
result = first.DataInfluencingOn(second);
เจซเจพเจเจฒ เจฆเจพ เจจเจพเจฎ/เจชเจพเจฅ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ
เจเฉฑเจฅเฉ เจเจ เจเฉเจฃ เจนเจจ เจเฉ เจเฉฑเจ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจฆเฉ เจจเจคเฉเจเจฟเจเจ เจคเฉเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจ (เจเจธ เจซเจพเจเจฒ เจฆเจพ เจจเจพเจฎ เจเจฟเจธ เจตเจฟเฉฑเจ เจเจเจเจฐเฉ เจชเจพเจ เจเจ เจธเฉ, เจธเจคเจฐ, เจเจฆเจฟ), เจชเจฐ เจฆเจธเจคเจพเจตเฉเจเจผ เจเจน เจจเจนเฉเจ เจฆเฉฑเจธเจฆเฉ เจนเจจ เจเจฟ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจนเฉ เจ เจคเฉ เจเจฟเจตเฉเจ เจตเจฐเจคเจฃเจพ เจนเฉเฅค เจเจธ เจฒเจ, เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจฒเจพเจเจจเจชเฉเจฐเจพเจเจฎเจพ เจธเฉฐเจชเฉฑเจคเฉ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจ เจคเฉ เจธเจพเจจเฉเฉฐ เจฒเฉเฉเฉเจเจฆเฉเจเจ เจตเจธเจคเฉเจเจ เจเจธ เจฆเฉ เจ เฉฐเจฆเจฐ เจธเจฅเจฟเจค เจนเฉเจฃเจเฉเจเจ:
// ะะปั ะฟัะธะผะตัะฐ ะฝะฐะนะดะตะผ ะฒัะต ะผะตัะพะดั
CxList methods = Find_Methods();
// ะ ะผะตัะพะดะฐั
ะฝะฐะนะดะตะผ ะฟะพ ะธะผะตะฝะธ ะผะตัะพะด scope
CxList scope = methods.FindByName("scope");
// ะขะฐะบะธะผ ะพะฑัะฐะทะพะผ ะผะพะถะพ ะฟะพะปััะธัั ะฟััั ะบ ัะฐะนะปั
string current_filename = scope.GetFirstGraph().LinePragma.FileName;
// ะ ะฒะพั ัะฐะบะธะผ - ัััะพะบั, ะณะดะต ะฝะฐัะปะพัั ััะฐะฑะฐััะฒะฐะฝะธะต
int current_line = scope.GetFirstGraph().LinePragma.Line;
// ะญัะธ ะฟะฐัะฐะผะตััั ะผะพะถะฝะพ ะธัะฟะพะปัะทะพะฒะฐัั ะฟะพ ัะฐะทะฝะพะผั
// ะะฐะฟัะธะผะตั ะฟะพะปััะธัั ะฒัะต ะพะฑัะตะบัั ะฒ ัะฐะนะปะต
CxList inFile = All.FindByFileName(current_filename);
// ะะปะธ ะฝะฐะนัะธ ััะพ ะฟัะพะธัั
ะพะดะธั ะฒ ะบะพะฝะบัะตัะฝะพะน ัััะพะบะต
CxList inLine = inFile.FindByPosition(current_line);
เจเจน เจงเจฟเจเจจ เจตเจฟเฉฑเจ เจฐเฉฑเจเจฃ เจฏเฉเจ เจนเฉ เจเจฟ FileName
เจ
เจธเจฒ เจตเจฟเฉฑเจ เจซเจพเจเจฒ เจฆเจพ เจฎเจพเจฐเจ เจฐเฉฑเจเจฆเจพ เจนเฉ, เจเจฟเจเจเจเจฟ เจ
เจธเฉเจ เจตเจฟเจงเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจนเฉ GetFirstGraph
.
เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจจเจคเฉเจเจพ
CxQL เจฆเฉ เจ
เฉฐเจฆเจฐ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจตเฉเจฐเฉเจเจฌเจฒ เจนเฉ result
, เจเฉ เจคเฉเจนเจพเจกเฉ เจฒเจฟเจเจคเฉ เจจเจฟเจฏเจฎ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเจพ เจจเจคเฉเจเจพ เจตเจพเจชเจธ เจเจฐเจฆเจพ เจนเฉเฅค เจเจน เจคเฉเจฐเฉฐเจค เจธเจผเฉเจฐเฉ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจคเฉเจธเฉเจ เจเจธ เจตเจฟเฉฑเจ เจตเจฟเจเจเจพเจฐเจฒเฉ เจจเจคเฉเจเฉ เจฒเจฟเจ เจธเจเจฆเฉ เจนเฉ, เจเจนเจจเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฆเฉ เจ
เจคเฉ เจธเฉเจงเจพเจฐเจฆเฉ เจนเฉเจ เจเจฟเจตเฉเจ เจคเฉเจธเฉเจ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเฉเฅค เจชเจฐ, เจเฉเจเจฐ เจจเจฟเจฏเจฎ เจฆเฉ เจ
เฉฐเจฆเจฐ เจเจธ เจตเฉเจฐเฉเจเจฌเจฒ เจเจพเจ เจซเฉฐเจเจธเจผเจจ เจฒเจ เจเฉเจ เจ
เจธเจพเจเจจเจฎเฉเจเจ เจจเจนเฉเจ เจนเฉ return
- เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจจเจคเฉเจเจพ เจนเจฎเฉเจธเจผเจพ เจเจผเฉเจฐเฉ เจนเฉเจตเฉเจเจพเฅค
เจนเฉเจ เจฆเจฟเฉฑเจคเฉ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจ เจฎเจฒ เจฆเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ เจธเจพเจจเฉเฉฐ เจเฉเจ เจตเฉ เจตเจพเจชเจธ เจจเจนเฉเจ เจเจฐเฉเจเฉ เจ เจคเฉ เจนเจฎเฉเจธเจผเจพ เจเจพเจฒเฉ เจฐเจนเฉเจเฉ:
// ะะฐั
ะพะดะธะผ ัะปะตะผะตะฝัั foo
CxList libraries = All.FindByName("foo");
เจชเจฐ, เจเจพเจฆเฉ เจตเฉเจฐเฉเจเจฌเจฒ เจจเจคเฉเจเฉ เจจเฉเฉฐ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจจเจคเฉเจเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจคเฉเจ เจฌเจพเจ เจฆ, เจ เจธเฉเจ เจฆเฉเจเจพเจเจเฉ เจเจฟ เจเจน เจเจพเจฒ เจธเจพเจจเฉเฉฐ เจเฉ เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเฉ:
// ะะฐั
ะพะดะธะผ ัะปะตะผะตะฝัั foo
CxList libraries = All.FindByName("foo");
// ะัะฒะพะดะธะผ, ะบะฐะบ ัะตะทัะปััะฐั ะฒัะฟะพะปะฝะตะฝะธั ะฟัะฐะฒะธะปะฐ
result = libraries
// ะะปะธ ะตัะต ะบะพัะพัะต
result = All.FindByName("foo");
เจนเฉเจฐ เจจเจฟเจฏเจฎเจพเจ เจฆเฉ เจจเจคเฉเจเจฟเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ
เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจตเจฟเฉฑเจ เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจจเจฟเจฏเจฎเจค เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจธเจฎเจพเจจ เจเจฟเจนเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเฉฑเจ เจจเจฟเจฏเจฎ เจฒเจฟเจเจฃ เจตเฉเจฒเฉ, เจคเฉเจธเฉเจ เจนเฉเจฐ เจธเจตเจพเจฒเจพเจ เจฆเฉ เจจเจคเฉเจเจฟเจเจ เจฆเฉ เจเฉฐเจเฉ เจคเจฐเฉเจนเจพเจ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจนเจฐ เจตเจพเจฐ เจเฉเจก เจตเจฟเฉฑเจ เจธเจพเจฐเฉเจเจ เจตเจฟเจงเฉ เจเจพเจฒเจพเจ เจฆเฉ เจเฉเจ เจเจฐเจจ เจฆเฉ เจเฉเจ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ, เจธเจฟเจฐเจซเจผ เจฒเฉเฉเฉเจเจฆเฉ เจจเจฟเจฏเจฎ เจจเฉเฉฐ เจเจพเจฒ เจเจฐเฉ:
// ะะพะปััะฐะตะผ ัะตะทัะปััะฐั ะฒัะฟะพะปะฝะตะฝะธั ะดััะณะพะณะพ ะฟัะฐะฒะธะปะฐ
CxList methods = Find_Methods();
// ะัะตะผ ะฒะฝัััะธ ะผะตัะพะด foo.
// ะัะพัะพะน ะฟะฐัะฐะผะตัั false ะพะทะฝะฐัะฐะตั, ััะพ ะธัะตะผ ะฑะตะท ััะฒััะฒะธัะตะปัะฝะพััะธ ะบ ัะตะณะธัััั
result = methods.FindByShortName("foo", false);
เจเจน เจชเจนเฉเฉฐเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจก เจจเฉเฉฐ เจเฉเจเจพ เจเจฐเจจ เจ เจคเฉ เจจเจฟเจฏเจฎ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจธเจฎเฉเจ เจจเฉเฉฐ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจฃ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจเจพเจเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉเฅค
เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจฆเจพ เจนเฉฑเจฒ
เจฒเจพเจเจฟเฉฐเจ
เจเฉเจฒ เจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจเจ เจตเจพเจฐ เจฒเฉเฉเฉเจเจฆเฉ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจจเฉเฉฐ เจคเฉเจฐเฉฐเจค เจฒเจฟเจเจฃเจพ เจธเฉฐเจญเจต เจจเจนเฉเจ เจนเฉเฉฐเจฆเจพ เจ เจคเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจตเฉฑเจ-เจตเฉฑเจ เจตเจฟเจเจฒเจชเจพเจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจฆเฉ เจนเฉเจ เจชเฉเจฐเจฏเฉเจ เจเจฐเจจเจพ เจชเฉเจเจฆเจพ เจนเฉเฅค เจ เจเจฟเจนเฉ เจเฉเจธ เจฒเจ, เจเฉเจฒ เจฒเฉเจเจฟเฉฐเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉ, เจเจฟเจธ เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ:
// ะะฐั
ะพะดะธะผ ััะพ-ัะพ
CxList toLog = All.FindByShortName("log");
// ะคะพัะผะธััะตะผ ัััะพะบั ะธ ะพัะฟัะฐะฒะปัะตะผ ะฒ ะปะพะณ
cxLog.WriteDebugMessage (โnumber of DOM elements =โ + All.Count);
เจชเจฐ เจเจน เจฏเจพเจฆ เจฐเฉฑเจเจฃ เจฏเฉเจ เจนเฉ เจเจฟ เจเจน เจตเจฟเจงเฉ เจธเจฟเจฐเจซ เจเจจเจชเฉเจ เจตเจเฉเจ เจธเจตเฉเจเจพเจฐ เจเจฐเจฆเฉ เจนเฉ เจธเจคเจฐ, เจเจธ เจฒเจ เจชเจนเจฟเจฒเฉ เจเจพเจฐเจตเจพเจ เจฆเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ เจฒเฉฑเจญเฉ เจเจ เจคเฉฑเจคเจพเจ เจฆเฉ เจชเฉเจฐเฉ เจธเฉเจเฉ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจจเจพ เจธเฉฐเจญเจต เจจเจนเฉเจ เจนเฉเจตเฉเจเจพเฅค เจฆเฉเจเจพ เจตเจฟเจเจฒเจช, เจเฉ เจกเฉเจฌเฉฑเจเจฟเฉฐเจ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจธเจฎเฉเจ-เจธเจฎเฉเจ 'เจคเฉ เจเฉฑเจ เจเจพเจฆเฉ เจตเฉเจฐเฉเจเจฌเจฒ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจเจพ เจนเฉ result
เจชเฉเฉฑเจเจเจฟเฉฑเจ เจฆเจพ เจจเจคเฉเจเจพ เจ
เจคเฉ เจตเฉเจเฉ เจเจฟ เจเฉ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจเจน เจชเจนเฉเฉฐเจ เจฌเจนเฉเจค เจธเฉเจตเจฟเจงเจพเจเจจเจ เจจเจนเฉเจ เจนเฉ; เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจเจฟ เจเฉเจก เจตเจฟเฉฑเจ เจเจธเจฆเฉ เจจเจพเจฒ เจเฉเจ เจเจตเจฐเจฐเจพเจเจก เจเจพเจ เจเจชเจฐเฉเจธเจผเจจ เจจเจนเฉเจ เจนเจจ result
เจเจพเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเฉเจก 'เจคเฉ เจเจฟเฉฑเจชเจฃเฉ เจเจฐเฉเฅค เจเจพเจ เจคเฉเจธเฉเจ, เจฎเฉเจฐเฉ เจตเจพเจเจ, เจเฉฑเจ เจฐเฉเจกเฉเจฎเฉเจก เจจเจฟเจฏเจฎ เจคเฉเจ เจ
เจเจฟเจนเฉเจเจ เจเจ เจเจพเจฒเจพเจ เจจเฉเฉฐ เจนเจเจพเจเจฃเจพ เจญเฉเฉฑเจฒ เจธเจเจฆเฉ เจนเฉ เจ
เจคเฉ เจนเฉเจฐเจพเจจ เจนเฉ เจธเจเจฆเฉ เจนเฉ เจเจฟ เจเฉเจ เจตเฉ เจเฉฐเจฎ เจเจฟเจเจ เจจเจนเฉเจ เจเจฐเจฆเจพเฅค
เจเฉฑเจ เจนเฉเจฐ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจขเฉฐเจ เจขเฉฐเจ เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจจ เจฒเจ เจนเฉ return
เจฒเฉเฉเฉเจเจฆเฉ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจฆเฉ เจจเจพเจฒ. เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจจเจฟเจฏเจฎ เจฆเจพ เจ
เจฎเจฒ เจเจคเจฎ เจนเฉ เจเจพเจตเฉเจเจพ เจ
เจคเฉ เจ
เจธเฉเจ เจเจน เจตเฉเจเจฃ เจฆเฉ เจฏเฉเจ เจนเฉเจตเจพเจเจเฉ เจเจฟ เจ
เจธเฉเจ เจเฉ เจฒเจฟเจเจฟเจ เจเจธ เจฆเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ เจเฉ เจนเฉเจเจ:
// ะะฐั
ะพะดะธะผ ััะพ-ัะพ
CxList toLog = All.FindByShortName("log");
// ะัะฒะพะดะธะผ ัะตะทัะปััะฐั ะฒัะฟะพะปะฝะตะฝะธั
return toLog
//ะัะต, ััะพ ะฝะฐะฟะธัะฐะฝะพ ะดะฐะปััะต ะฝะต ะฑัะดะตั ะฒัะฟะพะปะฝะตะฝะพ
result = All.DataInfluencedBy(toLog)
เจฒเจพเจเจเจจ เจธเจฎเฉฑเจธเจฟเจ
เจ เจเจฟเจนเฉเจเจ เจธเจฅเจฟเจคเฉเจเจ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ เจเจฆเฉเจ เจคเฉเจธเฉเจ CxAudit เจเฉเจฒ (เจเฉ เจจเจฟเจฏเจฎ เจฒเจฟเจเจฃ เจฒเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ) เจคเฉฑเจ เจจเจนเฉเจ เจชเจนเฉเฉฐเจ เจธเจเจฆเฉเฅค เจเจธเจฆเฉ เจเจ เจเจพเจฐเจจ เจนเฉ เจธเจเจฆเฉ เจนเจจ, เจเจฟเจธ เจตเจฟเฉฑเจ เจเฉเจฐเฉเจธเจผ, เจ เจเจพเจจเจ เจตเจฟเฉฐเจกเฉเจเจผ เจ เฉฑเจชเจกเฉเจ, BSOD เจ เจคเฉ เจนเฉเจฐ เจ เจฃเจเจฟเจเจธเฉเจเจ เจธเจฅเจฟเจคเฉเจเจ เจธเจผเจพเจฎเจฒ เจนเจจ เจเฉ เจธเจพเจกเฉ เจเฉฐเจเจฐเฉเจฒ เจคเฉเจ เจฌเจพเจนเจฐ เจนเจจเฅค เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจเจ เจตเจพเจฐ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจ เจงเฉเจฐเจพ เจธเฉเจธเจผเจจ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฒเฉเจเจเจจ เจเจฐเจจ เจคเฉเจ เจฐเฉเจเจฆเจพ เจนเฉเฅค เจเจธ เจจเฉเฉฐ เจ เฉเจ เจเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจ เจธเจตเจพเจฒ เจเจฒเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ:
8.6 เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฒเจ:
// ะัะพะฒะตััะตะผ, ััะพ ะตััั ะทะฐะปะพะณะธะฝะตะฝัะต ะฟะพะปัะทะพะฒะฐัะตะปะธ, ะฒัะฟะพะปะฝะธะฒ ะทะฐะฟัะพั ะฒ ะะ
SELECT COUNT(*) FROM [CxDB].[dbo].LoggedinUser WHERE [ClientType] = 6;
// ะัะปะธ ััะพ-ัะพ ะตััั, ะฐ ะฝะฐ ัะฐะผะพะผ ะดะตะปะต ะดะฐะถะต ะตัะปะธ ะธ ะฝะตั, ะฟะพะฟัะพะฑะพะฒะฐัั ะฒัะฟะพะปะฝะธัั ะทะฐะฟัะพั
DELETE FROM [CxDB].[dbo].LoggedinUser WHERE [ClientType] = 6;
8.6 เจคเฉเจ เจฌเจพเจ เจฆ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฒเจ:
// ะัะพะฒะตััะตะผ, ััะพ ะตััั ะทะฐะปะพะณะธะฝะตะฝัะต ะฟะพะปัะทะพะฒะฐัะตะปะธ, ะฒัะฟะพะปะฝะธะฒ ะทะฐะฟัะพั ะฒ ะะ
SELECT COUNT(*) FROM LoggedinUser WHERE (ClientType = 'Audit');
// ะัะปะธ ััะพ-ัะพ ะตััั, ะฐ ะฝะฐ ัะฐะผะพะผ ะดะตะปะต ะดะฐะถะต ะตัะปะธ ะธ ะฝะตั, ะฟะพะฟัะพะฑะพะฒะฐัั ะฒัะฟะพะปะฝะธัั ะทะฐะฟัะพั
DELETE FROM [CxDB].[dbo].LoggedinUser WHERE (ClientType = 'Audit');
เจฒเจฟเจเจฃ เจฆเฉ เจจเจฟเจฏเจฎ
เจนเฉเจฃ เจ เจธเฉเจ เจธเจญ เจคเฉเจ เจฆเจฟเจฒเจเจธเจช เจนเจฟเฉฑเจธเฉ เจคเฉ เจเจเจเจฆเฉ เจนเจพเจ. เจเจฆเฉเจ เจคเฉเจธเฉเจ CxQL เจตเจฟเฉฑเจ เจจเจฟเจฏเจฎ เจฒเจฟเจเจฃเจพ เจธเจผเฉเจฐเฉ เจเจฐเจฆเฉ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจ เจเจธเจฐ เจเฉฐเจจเฉ เจเจผเจฟเจเจฆเจพ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจฆเฉ เจเจฎเฉ เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจนเฉ เจเจฟเฉฐเจจเฉ เจเจฟ เจเฉเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจฆเฉเจเจ เจเฉเจ เจเฉเจตเจค เจเจฆเจพเจนเจฐเจฃเจพเจ เจ เจคเฉ เจชเฉเจฐเจธเจผเจจเจพเจ เจฆเฉ เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเจพ เจตเจฐเจฃเจจ เจเจฐเจจ เจฒเจเฅค
เจฎเฉเจ เจเจนเจจเจพเจ เจฒเจ เจเฉเจตเจจ เจจเฉเฉฐ เจฅเฉเฉเจพ เจเจธเจพเจจ เจฌเจฃเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจพเจเจเจพ เจเฉ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจ เจกเฉเจฌเจเฉ เจฒเจเจพเจเจฃเจพ เจธเจผเฉเจฐเฉ เจเจฐ เจฐเจนเฉ เจนเจจ เจ เจคเฉ เจเฉเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจฒเจ เจเจธเจเจฎ เจชเฉเฉฑเจเจเจฟเฉฑเจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉเจเจ เจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจฆเฉเจตเจพเจเจเจพเฅค เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉเจ เจเจพเจซเจผเฉ เจเจฎ เจนเจจ เจ เจคเฉ เจคเฉเจนเจพเจกเฉ เจเฉฐเจชเจจเฉ เจตเจฟเฉฑเจ เจ เจฎเจฒเฉ เจคเฉเจฐ 'เจคเฉ เจฌเจฟเจจเจพเจ เจเจฟเจธเฉ เจฌเจฆเจฒเจพเจ เจฆเฉ เจตเจฐเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจ, เจฆเฉเจธเจฐเฉ เจตเจงเฉเจฐเฉ เจเจพเจธ เจนเจจ, เจชเจฐ เจเจนเจจเจพเจ เจจเฉเฉฐ เจคเฉเจนเจพเจกเฉเจเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเฉ เจ เจจเฉเจเฉเจฒ เจเฉเจก เจจเฉเฉฐ เจฌเจฆเจฒ เจเฉ เจตเฉ เจตเจฐเจคเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจเจธ เจฒเจ, เจเฉฑเจฅเฉ เจเจน เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจนเจจ เจเจฟเจจเฉเจนเจพเจ เจฆเจพ เจธเจพเจจเฉเฉฐ เจ เจเจธเจฐ เจธเจพเจนเจฎเจฃเจพ เจเจฐเจจเจพ เจชเฉเจเจฆเจพ เจนเฉ:
เจเฉเจฃเฉเจคเฉ: เจจเจฟเจฏเจฎ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจจเจคเฉเจเจฟเจเจ เจตเจฟเฉฑเจ เจเจ เจชเฉเจฐเจตเจพเจน เจนเจจ เจ เจคเฉ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจฆเฉเจเฉ เจฆเจพ เจเจฒเฉเจนเจฃเจพ เจนเฉ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจจเฉเฉฐ เจเฉฑเจก เจฆเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจนเฉฑเจฒ: เจฆเจฐเจ เจธเจฒ, เจเจ เจตเจพเจฐ เจเฉเจเจฎเจพเจฐเจเจธ เจเจ เจกเฉเจเจพ เจชเฉเจฐเจตเจพเจน เจฆเจฟเจเจพเจเจเจฆเจพ เจนเฉ เจเฉ เจเจตเจฐเจฒเฉเจช เจนเฉ เจธเจเจฆเจพ เจนเฉ เจ เจคเฉ เจฆเฉเจเจฟเจเจ เจฆเจพ เจเฉเจเจพ เจฐเฉเจช เจนเฉ เจธเจเจฆเจพ เจนเฉเฅค เจ เจเจฟเจนเฉ เจฎเจพเจฎเจฒเจฟเจเจ เจฒเจ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ เจคเจฐเฉเจเจพ เจนเฉ เจเจเจพเจเฅค เจชเฉเจฐเจพเจฎเฉเจเจฐ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจฟเจเจ, เจเจน เจธเจญ เจคเฉเจ เจเฉเจเจพ เจเจพเจ เจฒเฉฐเจฌเจพ เจตเจนเจพเจ เจเฉเจฃเฉเจเจพ:
// ะััะฐะฒะธัั ัะพะปัะบะพ ะดะปะธะฝะฝัะต Flow
result = result.ReduceFlow(CxList.ReduceFlowType.ReduceSmallFlow);
// ะััะฐะฒะธัั ัะพะปัะบะพ ะบะพัะพัะบะธะต Flow
result = result.ReduceFlow(CxList.ReduceFlowType.ReduceBigFlow);
เจเฉเจฃเฉเจคเฉ: เจธเฉฐเจตเฉเจฆเจจเจธเจผเฉเจฒ เจกเฉเจเจพ เจฆเฉ เจธเฉเจเฉ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจเจฐเฉ เจเจฟเจธ 'เจคเฉ เจเฉเจฒ เจชเฉเจฐเจคเฉเจเจฟเจฐเจฟเจ เจเจฐเจฆเจพ เจนเฉ
เจนเฉฑเจฒ: เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฆเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจจเจฟเจฏเจฎ เจนเจจ, เจเจฟเจจเฉเจนเจพเจ เจฆเฉ เจจเจคเฉเจเฉ เจเจ เจนเฉเจฐ เจธเจตเจพเจฒเจพเจ เจฆเฉเจเจฐเจพ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเจจเฅค เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉเจ เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจคเฉเจนเจพเจกเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจ เจเจพเจธ เจกเฉเจเจพ เจฆเฉ เจจเจพเจฒ เจชเฉเจฐเจ เจเจฐเจเฉ, เจคเฉเจธเฉเจ เจเจชเจฃเฉ เจธเจเฉเจจ เจจเจคเฉเจเจฟเจเจ เจจเฉเฉฐ เจคเฉเจฐเฉฐเจค เจธเฉเจงเจพเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจคเฉเจนเจพเจจเฉเฉฐ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ เจนเฉเจ เจพเจ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจจเจฟเจฏเจฎ เจนเฉ:
เจเจจเจฐเจฒ_เจชเจฐเจพเจเจตเฉเจธเฉ_เจเจฒเฉฐเจเจฃ_เจธเฉเจเฉ
เจเจ เจเจ เจตเฉเจฐเฉเจเจฌเจฒ เจเฉเฉเฉเจ เจเฉ เจธเจพเจกเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจตเจฟเฉฑเจ เจธเฉฐเจตเฉเจฆเจจเจธเจผเฉเจฒ เจเจพเจฃเจเจพเจฐเฉ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฒเจ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเจจ:
// ะะพะปััะฐะตะผ ัะตะทัะปััะฐั ะฒัะฟะพะปะฝะตะฝะธั ะฑะฐะทะพะฒะพะณะพ ะฟัะฐะฒะธะปะฐ
result = base.General_privacy_violation_list();
// ะัะตะผ ัะปะตะผะตะฝัั, ะบะพัะพััะต ะฟะพะฟะฐะดะฐัั ะฟะพะด ะฟัะพัััะต ัะตะณัะปััะฝัะต ะฒััะฐะถะตะฝะธั. ะะพะถะฝะพ ะดะพะฟะพะปะฝะธัั ั
ะฐัะฐะบัะตัะฝัะผะธ ะดะปั ะฒะฐั ะฟะฐััะตัะฝะฐะผะธ.
CxList personalList = All.FindByShortNames(new List<string> {
"*securityToken*", "*sessionId*"}, false);
// ะะพะฑะฐะฒะปัะตะผ ะบ ะบะพะฝะตัะฝะพะผั ัะตะทัะปััะฐัั
result.Add(personalList);
เจเฉเจฃเฉเจคเฉ: เจชเจพเจธเจตเจฐเจกเจพเจ เจจเจพเจฒ เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจฆเฉ เจธเฉเจเฉ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจเจฐเฉ
เจนเฉฑเจฒ: เจฎเฉเจ เจเฉเจก เจตเจฟเฉฑเจ เจชเจพเจธเจตเจฐเจก เจจเฉเฉฐ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจจ เจ เจคเฉ เจเจธ เจตเจฟเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒ เจจเจพเจตเจพเจ เจฆเฉ เจเฉฑเจ เจธเฉเจเฉ เจเฉเฉเจจ เจฒเจ เจฎเฉเจขเจฒเฉ เจจเจฟเจฏเจฎ เจตเฉฑเจฒ เจคเฉเจฐเฉฐเจค เจงเจฟเจเจจ เจฆเฉเจฃ เจฆเฉ เจธเจฟเจซเจพเจฐเจธเจผ เจเจฐเจพเจเจเจพ เจเฉ เจคเฉเจนเจพเจกเฉ เจเฉฐเจชเจจเฉ เจตเจฟเฉฑเจ เจเจฎ เจคเฉเจฐ 'เจคเฉ เจตเจฐเจคเฉ เจเจพเจเจฆเฉ เจนเจจเฅค
เจชเจพเจธเจตเจฐเจก_เจชเฉเจฐเจพเจเจตเฉเจธเฉ_เจเจฒเฉฐเจเจฃ_เจธเฉเจเฉ
CxList allStrings = All.FindByType("String");
allStrings.Add(All.FindByType(typeof(StringLiteral)));
allStrings.Add(Find_UnknownReference());
allStrings.Add(All.FindByType(typeof (Declarator)));
allStrings.Add(All.FindByType(typeof (MemberAccess)));
allStrings.Add(All.FindByType(typeof(EnumMemberDecl)));
allStrings.Add(Find_Methods().FindByShortName("get*"));
// ะะพะฟะพะปะฝัะตะผ ะดะตัะพะปัะฝัะน ัะฟะธัะพะบ ะฟะตัะตะผะตะฝะฝัั
List < string > pswdIncludeList = new List<string>{"*password*", "*psw", "psw*", "pwd*", "*pwd", "*authKey*", "pass*", "cipher*", "*cipher", "pass", "adgangskode", "benutzerkennwort", "chiffre", "clave", "codewort", "contrasena", "contrasenya", "geheimcode", "geslo", "heslo", "jelszo", "kennwort", "losenord", "losung", "losungswort", "lozinka", "modpas", "motdepasse", "parol", "parola", "parole", "pasahitza", "pasfhocal", "passe", "passord", "passwort", "pasvorto", "paswoord", "salasana", "schluessel", "schluesselwort", "senha", "sifre", "wachtwoord", "wagwoord", "watchword", "zugangswort", "PAROLACHIAVE", "PAROLA CHIAVE", "PAROLECHIAVI", "PAROLE CHIAVI", "paroladordine", "verschluesselt", "sisma",
"pincode",
"pin"};
List < string > pswdExcludeList = new List<string>{"*pass", "*passable*", "*passage*", "*passenger*", "*passer*", "*passing*", "*passion*", "*passive*", "*passover*", "*passport*", "*passed*", "*compass*", "*bypass*", "pass-through", "passthru", "passthrough", "passbytes", "passcount", "passratio"};
CxList tempResult = allStrings.FindByShortNames(pswdIncludeList, false);
CxList toRemove = tempResult.FindByShortNames(pswdExcludeList, false);
tempResult -= toRemove;
tempResult.Add(allStrings.FindByShortName("pass", false));
foreach (CxList r in tempResult)
{
CSharpGraph g = r.data.GetByIndex(0) as CSharpGraph;
if(g != null && g.ShortName != null && g.ShortName.Length < 50)
{
result.Add(r);
}
}
เจเฉเจฃเฉเจคเฉ: เจตเจฐเจคเฉ เจเจ เจซเจฐเฉเจฎเจตเจฐเจ เจธเจผเจพเจฎเจฒ เจเจฐเฉ เจเฉ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฆเฉเจเจฐเจพ เจธเจฎเจฐเจฅเจฟเจค เจจเจนเฉเจ เจนเจจ
เจนเฉฑเจฒ: เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจตเจฟเฉฑเจ เจธเจพเจฐเฉเจเจ เจชเฉเฉฑเจเจเจฟเฉฑเจเจพเจ เจญเจพเจธเจผเจพ เจฆเฉเจเจฐเจพ เจตเฉฐเจกเฉเจเจ เจเจเจเจ เจนเจจ, เจเจธเจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ เจนเจฐเฉเจ เจญเจพเจธเจผเจพ เจฒเจ เจจเจฟเจฏเจฎ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจนเฉเจ เจพเจ เจ เจเจฟเจนเฉ เจจเจฟเจฏเจฎเจพเจ เจฆเฉเจเจ เจเฉเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจนเจจเฅค
เจเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ เจเฉ เจฎเจฟเจเจฐเฉ เจเจพเจฐเจเจธเจผเฉเจฒเจคเจพ เจจเฉเฉฐ เจชเฉเจฐเจ เจเจพเจ เจฌเจฆเจฒเจฆเฉเจเจ เจนเจจ, เจคเจพเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฌเฉเจจเจฟเจเจฆเฉ เจจเจฟเจฏเจฎ เจตเจฟเฉฑเจ เจเจธเจพเจจเฉ เจจเจพเจฒ เจเฉเฉเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจซเจฟเจฐ เจนเจฐ เจเฉเจ เจเฉ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉ เจเจน เจคเฉเจฐเฉฐเจค เจจเจตเฉเจ เจเจพเจฃ-เจชเจเจพเจฃ เจฌเจพเจฐเฉ เจเจพเจฃ เจเจพเจตเฉเจเจพเฅค เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจฆเฉ เจคเฉเจฐ 'เจคเฉ, เจเจเจกเจฐเฉเจเจก เจตเจฟเฉฑเจ เจฒเฉเจเจเจจ เจเจฐเจจ เจฒเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจเจฟเฉฐเจฌเจฐ เจ เจคเฉ เจฒเฉเจเฉ เจนเจจเฅค เจฌเฉเจจเจฟเจเจฆเฉ เจชเฉเจเฉเจ เจตเจฟเฉฑเจ, เจเฉเจฐ-เจธเจฟเจธเจเจฎ เจเจพเจฒเจพเจ เจฆเฉ เจชเจเจพเจฃ เจเจฐเจจ เจฒเจ เจเฉเจ เจจเจฟเจฏเจฎ เจจเจนเฉเจ เจนเจจ, เจเจธเจฒเจ เจเฉเจเจฐ เจเฉเจ เจชเจพเจธเจตเจฐเจก เจเจพเจ เจธเฉเจธเจผเจจ เจชเจเจพเจฃเจเจฐเจคเจพ เจฒเฉเจ เจตเจฟเฉฑเจ เจเจเจเจฆเจพ เจนเฉ, เจคเจพเจ เจธเจพเจจเฉเฉฐ เจเจธ เจฌเจพเจฐเฉ เจชเจคเจพ เจจเจนเฉเจ เจนเฉเจตเฉเจเจพเฅค เจเจ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจจเจฟเจฏเจฎเจพเจ เจตเจฟเฉฑเจ เจ เจเจฟเจนเฉเจเจ เจตเจฟเจงเฉเจเจ เจฆเฉเจเจ เจชเจฐเจฟเจญเจพเจธเจผเจพเจตเจพเจ เจเฉเฉเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจเฅค
เจเฉเจธเจ เจเฉเจก เจเจฆเจพเจนเจฐเจจ เจเฉ เจฒเฉเจเจฟเฉฐเจ เจฒเจ เจเจฟเฉฐเจฌเจฐ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉ:
package com.death.timberdemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import timber.log.Timber;
public class MainActivity extends AppCompatActivity {
private static final String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Timber.e("Error Message");
Timber.d("Debug Message");
Timber.tag("Some Different tag").e("And error message");
}
}
เจ เจคเฉ เจเฉฑเจฅเฉ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฒเจ เจเฉฑเจ เจฌเฉเจจเจคเฉ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจนเฉ, เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจคเฉเจ เจกเฉเจเจพ เจฒเจ เจเฉฑเจ เจเจเจเจผเจฟเจ เจชเฉเจเจเฉฐเจ เจตเจเฉเจ เจเจฟเฉฐเจฌเจฐ เจตเจฟเจงเฉเจเจ เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจจ เจฆเฉ เจชเจฐเจฟเจญเจพเจธเจผเจพ เจเฉเฉเจจ เจฆเฉ เจเจเจฟเจ เจฆเฉเจตเฉเจเฉ:
เจเจเจกเจฐเจพเจเจก เจเจเจเจชเฉเฉฑเจ เจฒเฉฑเจญเฉ
// ะะพะปััะฐะตะผ ัะตะทัะปััะฐั ะฒัะฟะพะปะฝะตะฝะธั ะฑะฐะทะพะฒะพะณะพ ะฟัะฐะฒะธะปะฐ
result = base.Find_Android_Outputs();
// ะะพะฟะพะปะฝัะตะผ ะฒัะทะพะฒะฐะผะธ, ะบะพัะพััะต ะฟัะธั
ะพะดัั ะธะท ะฑะธะฑะปะธะพัะตะบะธ Timber
CxList timber = All.FindByExactMemberAccess("Timber.*") +
All.FindByShortName("Timber").GetMembersOfTarget();
// ะะพะฑะฐะฒะปัะตะผ ะบ ะบะพะฝะตัะฝะพะผั ัะตะทัะปััะฐัั
result.Add(timber);
เจ เจคเฉ เจคเฉเจธเฉเจ เจเฉเจเจเจขเฉ เจจเจฟเจฏเจฎ เจตเจฟเฉฑเจ เจตเฉ เจธเจผเจพเจฎเจฒ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจชเจฐ เจเจน เจธเจฟเฉฑเจงเฉ เจคเฉเจฐ 'เจคเฉ เจเจเจกเจฐเฉเจเจก เจตเจฟเฉฑเจ เจฒเฉเจเจฟเฉฐเจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉ:
FindAndroidLog_Outputs
// ะะพะปััะฐะตะผ ัะตะทัะปััะฐั ะฒัะฟะพะปะฝะตะฝะธั ะฑะฐะทะพะฒะพะณะพ ะฟัะฐะฒะธะปะฐ
result = base.Find_Android_Log_Outputs();
// ะะพะฟะพะปะฝัะตะผ ะฒัะทะพะฒะฐะผะธ, ะบะพัะพััะต ะฟัะธั
ะพะดัั ะธะท ะฑะธะฑะปะธะพัะตะบะธ Timber
result.Add(
All.FindByExactMemberAccess("Timber.*") +
All.FindByShortName("Timber").GetMembersOfTarget()
);
เจจเจพเจฒ เจนเฉ, เจเฉเจเจฐ เจเจเจกเจฐเฉเจเจก เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจจ getInputData
:
FindAndroidRead
// ะะพะปััะฐะตะผ ัะตะทัะปััะฐั ะฒัะฟะพะปะฝะตะฝะธั ะฑะฐะทะพะฒะพะณะพ ะฟัะฐะฒะธะปะฐ
result = base.Find_Android_Read();
// ะะพะฟะพะปะฝัะตะผ ะฒัะทะพะฒะพะผ ััะฝะบัะธะธ getInputData, ะบะพัะพัะฐั ะธัะฟะพะปัะทัะตััั ะฒ WorkManager
CxList getInputData = All.FindByShortName("getInputData");
// ะะพะฑะฐะฒะปัะตะผ ะบ ะบะพะฝะตัะฝะพะผั ัะตะทัะปััะฐัั
result.Add(getInputData.GetMembersOfTarget());
เจเฉเจฃเฉเจคเฉ: เจเจเจเจเจธ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจฒเจ เจชเจฒเจฟเจธเจ เจตเจฟเฉฑเจ เจธเฉฐเจตเฉเจฆเจจเจธเจผเฉเจฒ เจกเฉเจเจพ เจฆเฉ เจเฉเจ เจเฉเจคเฉ เจเจพ เจฐเจนเฉ เจนเฉ
เจนเฉฑเจฒ: iOS เจ เจเจธเจฐ เจตเฉฑเจ-เจตเฉฑเจ เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจ เจคเฉ เจฎเฉเฉฑเจฒเจพเจ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฒเจ .plist เจเจเจธเจเฉเจเจธเจผเจจ เจจเจพเจฒ เจตเจฟเจธเจผเฉเจธเจผ เจซเจพเจเจฒเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเฉเฅค เจเจนเจจเจพเจ เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจชเจพเจธเจตเจฐเจก, เจเฉเจเจจ, เจเฉเฉฐเจเฉเจเจ เจ เจคเฉ เจนเฉเจฐ เจธเฉฐเจตเฉเจฆเจจเจธเจผเฉเจฒ เจกเฉเจเจพ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฆเฉ เจธเจฟเจซเจพเจฐเจธเจผ เจจเจนเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ, เจเจฟเจเจเจเจฟ เจเจนเจจเจพเจ เจจเฉเฉฐ เจฌเจฟเจจเจพเจ เจเจฟเจธเฉ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจกเจฟเจตเจพเจเจธ เจคเฉเจ เจเจเจธเจเจฐเฉเจเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจชเจฒเจฟเจธเจ เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจ เจเจฟเจนเฉเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจนเจจ เจเฉ เจจเฉฐเจเฉ เจ เฉฑเจ เจฒเจ เจธเจชเฉฑเจธเจผเจ เจจเจนเฉเจ เจนเจจ, เจชเจฐ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฒเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจนเจจเฅค เจเจ เจเฉฑเจ เจจเจฟเจฏเจฎ เจฒเจฟเจเฉเจ เจเฉ เจธเจพเจจเฉเฉฐ เจฒเฉเฉเฉเจเจฆเฉ เจกเฉเจเจพ เจฆเฉ เจเฉเจ เจเจฐเฉเจเจพ เจ เจคเฉ เจธเจพเจจเฉเฉฐ เจฆเฉฑเจธเฉเจเจพ เจเจฟ เจเฉ เจชเจพเจธเจตเจฐเจก เจเจพเจ เจเฉเจเจจเจพเจ เจฆเจพ เจเจฟเจคเฉ เจเจผเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค
เจ เจเจฟเจนเฉ เจซเจพเจเจฒ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ, เจเจฟเจธ เจตเจฟเฉฑเจ เจฌเฉเจเจเจเจก เจธเฉเจตเจพ เจจเจพเจฒ เจธเฉฐเจเจพเจฐ เจฒเจ เจเฉฑเจ เจเฉเจเจจ เจนเฉ:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DeviceDictionary</key>
<dict>
<key>phone</key>
<string>iPhone 6s</string>
</dict>
<key>privatekey</key>
<string>MIICXAIBAAKBgQCqGKukO1De7zhZj6+</string>
</dict>
</plist>
เจ เจคเฉ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฒเจ เจเฉฑเจ เจจเจฟเจฏเจฎ, เจเจฟเจธ เจตเจฟเฉฑเจ เจเจ เจธเฉเจเจฎเจคเจพเจตเจพเจ เจนเจจ เจเฉ เจฒเจฟเจเจฃ เจตเฉเจฒเฉ เจงเจฟเจเจจ เจตเจฟเฉฑเจ เจฐเฉฑเจเจฃเฉเจเจ เจเจพเจนเฉเจฆเฉเจเจ เจนเจจ:
// ะัะฟะพะปัะทัะตะผ ัะตะทัะปััะฐั ะฒัะฟะพะปะฝะตะฝะธั ะฟัะฐะฒะธะปะฐ ะฟะพ ะฟะพะธัะบั ัะฐะนะปะพะฒ plist, ััะพะฑั ัะผะตะฝััะธัั ะฒัะตะผั ัะฐะฑะพัั ะฟัะฐะฒะธะปะฐ ะธ
CxList plist = Find_Plist_Elements();
// ะะฝะธัะธะฐะปะธะทะธััะตะผ ะฝะพะฒัั ะฟะตัะตะผะตะฝะฝัั
CxList dictionarySettings = All.NewCxList();
// ะขะตะฟะตัั ะดะพะฑะฐะฒะธะผ ะฟะพะธัะบ ะฒัะตั
ะธะฝัะตัะตััััะธั
ะฝะฐั ะทะฝะฐัะตะฝะธะน. ะ ะดะฐะปัะฝะตะนัะตะผ ะผะพะถะฝะพ ัะฐััะธัััั ััะพั ัะฟะธัะพะบ.
// ะะปั ะฟะพะธัะบะฐ ะทะฝะฐัะตะฝะธะน, ะบะฐะบ ะฝะธ ัััะฐะฝะฝะพ, ะธัะฟะพะปัะทัะตััั FindByMemberAccess - ะฟะพะธัะบ ะพะฑัะฐัะตะฝะธะน ะบ ะผะตัะพะดะฐะผ. ะัะพัะพะน ะฟะฐัะฐะผะตัั ะฒะฝัััะธ ััะฝะบัะธะธ, false, ะพะทะฝะฐัะฐะตั, ััะพ ะฟะพะธัะบ ะฝะตััะฒััะฒะธัะตะปะตะฝ ะบ ัะตะณะธัััั
dictionarySettings.Add(plist.FindByMemberAccess("privatekey", false));
dictionarySettings.Add(plist.FindByMemberAccess("privatetoken", false));
// ะะปั ะบะพััะตะบัะฝะพะณะพ ะฟะพะธัะบะฐ ะธะท-ะทะฐ ะพัะพะฑะตะฝะฝะพััะตะน ััััะบัััั plist - ะฝัะถะฝะพ ะธัะบะฐัั ะฟะพ ัะธะฟั "If statement"
CxList ifStatements = plist.FindByType(typeof(IfStmt));
// ะะพะฑะฐะฒะปัะตะผ ะฒ ัะตะทัะปััะฐั, ะฟะตัะตะด ััะธะผ ะฟะพะปััะธะฒ ัะพะดะธัะตะปััะบะธะน ัะทะตะป - ะดะปั ะฟัะฐะฒะธะปัะฝะพะณะพ ะพัะพะฑัะฐะถะตะฝะธั
result = dictionarySettings.FindByFathers(ifStatements);
เจเฉเจฃเฉเจคเฉ: XML เจตเจฟเฉฑเจ เจเจพเจฃเจเจพเจฐเฉ เจฒเฉฑเจญเจฃเจพ
เจนเฉฑเจฒ: XML เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจ เจคเฉ เจฎเฉเฉฑเจฒเจพเจ, เจเฉเจเจธ, เจเฉเจฃเจพเจ เจ เจคเฉ เจนเฉเจฐ เจฌเจนเฉเจค เจเฉเจ เจฆเฉ เจเฉเจ เจเจฐเจจ เจฒเจ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจธเฉเจตเจฟเจงเจพเจเจจเจ เจซเฉฐเจเจธเจผเจจ เจนเจจเฅค เจชเจฐ, เจฌเจฆเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจฆเจธเจคเจพเจตเฉเจเจผ เจตเจฟเฉฑเจ เจเฉฑเจ เจเจฒเจคเฉ เจธเฉ เจเจฟเจธ เจเจพเจฐเจจ เจเฉฑเจ เจตเฉ เจเจฆเจพเจนเจฐเจฃ เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐเจฆเฉเฅค เจเจธ เจคเฉฑเจฅ เจฆเฉ เจฌเจพเจตเจเฉเจฆ เจเจฟ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจฆเฉ เจจเจตเฉเจจเจคเจฎ เจธเฉฐเจธเจเจฐเจฃ เจตเจฟเฉฑเจ เจเจธ เจจเฉเจเจธ เจจเฉเฉฐ เจเจคเจฎ เจเจฐ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจนเฉ, เจเฉเจเจฐ เจคเฉเจธเฉเจ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจฆเฉ เจชเฉเจฐเจพเจฃเฉ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉ เจคเจพเจ เจธเจพเจตเจงเจพเจจ เจฐเจนเฉเฅค
เจเฉฑเจฅเฉ เจฆเจธเจคเจพเจตเฉเจเจผเจพเจ เจคเฉเจ เจเฉฑเจ เจเจฒเจค เจเจฆเจพเจนเจฐเจจ เจนเฉ:
// ะะพะด ัะฐะฑะพัะฐัั ะฝะต ะฑัะดะตั
result = All.FindXmlAttributesByNameAndValue("*.app", 8, โidโ, "error- section", false, true);
เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจฆเฉ เจจเจคเฉเจเฉ เจตเจเฉเจ, เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจเจฒเจคเฉ เจชเฉเจฐเจพเจชเจค เจนเฉเจตเฉเจเฉ All
เจ
เจเจฟเจนเจพ เจเฉเจ เจคเจฐเฉเจเจพ เจจเจนเฉเจ เจนเฉ... เจ
เจคเฉ เจเจน เจธเฉฑเจ เจนเฉ, เจเจฟเจเจเจเจฟ XML เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผ, เจตเฉฑเจเจฐเฉ เจเจฌเจเฉเจเจ เจธเจชเฉเจธ เจนเฉ - cxXPath
. เจเจเจกเจฐเฉเจเจก เจตเจฟเฉฑเจ เจเฉฑเจ เจธเฉเจเจฟเฉฐเจ เจฒเฉฑเจญเจฃ เจฒเจ เจธเจนเฉ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจเจน เจนเฉ เจเฉ HTTP เจเฉเจฐเฉเจซเจฟเจ เจฆเฉ เจตเจฐเจคเฉเจ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉ:
// ะัะฐะฒะธะปัะฝัะน ะฒะฐัะธะฐะฝั ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ cxXPath
result = cxXPath.FindXmlAttributesByNameAndValue("*.xml", 8, "cleartextTrafficPermitted", "true", false, true);
เจเจ เจเจธ เจจเฉเฉฐ เจฅเฉเฉเจพ เจนเฉเจฐ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจ เจตเฉเจเฉเจ, เจเจฟเจเจเจเจฟ เจธเจพเจฐเฉ เจซเฉฐเจเจธเจผเจจเจพเจ เจฒเจ เจธเฉฐเจเฉเจเจธ เจธเจฎเจพเจจ เจนเฉ, เจเจฆเฉเจ เจคเฉเจธเฉเจ เจเฉฑเจ เจฆเจพ เจชเจคเจพ เจฒเจเจพ เจฒเจฟเจ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจฒเฉเฉเฉเจเจฆเฉ เจเฉฑเจ เจจเฉเฉฐ เจเฉเจฃเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจธ เจฒเจ, เจเฉเจฐเจฎเจตเจพเจฐ เจชเฉเจฐเจพเจฎเฉเจเจฐเจพเจ เจฆเฉ เจ เจจเฉเจธเจพเจฐ:
-
"*.xml"
- เจเฉเจเฉเจเจ เจเจพเจฃ เจตเจพเจฒเฉเจเจ เจซเจพเจเจฒเจพเจ เจฆเจพ เจฎเจพเจธเจ -
8
โ เจเจธ เจญเจพเจธเจผเจพ เจฆเฉ เจเจเจกเฉ เจเจฟเจธ เจฒเจ เจจเจฟเจฏเจฎ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจฟเจ เจนเฉ -
"cleartextTrafficPermitted"
- xml เจตเจฟเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจฆเจพ เจจเจพเจฎ -
"true"
โ เจเจธ เจเฉเจฃ เจฆเจพ เจฎเฉเฉฑเจฒ -
false
- เจเฉเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ เจจเจฟเจฏเจฎเจค เจธเจฎเฉเจเจฐเจจ เจฆเฉ เจตเจฐเจคเฉเจ -
true
โ เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจเฉเจ เจเฉเจธ เจจเฉเฉฐ เจจเจเจผเจฐเจ เฉฐเจฆเจพเจเจผ เจเจฐเจเฉ เจเฉเจคเฉ เจเจพเจตเฉเจเฉ, เจฏเจพเจจเฉ เจเฉเจธ-เจธเฉฐเจตเฉเจฆเจจเจธเจผเฉเจฒ
เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจฆเฉ เจคเฉเจฐ 'เจคเฉ, เจ
เจธเฉเจ เจเฉฑเจ เจจเจฟเจฏเจฎ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจคเฉ เจนเฉ เจเฉ เจเจฒเจค เจฆเฉ เจชเจเจพเจฃ เจเจฐเจฆเจพ เจนเฉ, เจธเฉเจฐเฉฑเจเจฟเจ เจฆเฉเจฐเจฟเจธเจผเจเฉเจเฉเจฃ เจคเฉเจ, เจเจเจกเจฐเฉเจเจก เจตเจฟเฉฑเจ เจจเฉเฉฑเจเจตเจฐเจ เจเจจเฉเจเจธเจผเจจ เจธเฉเจเจฟเฉฐเจเจพเจ เจเฉ HTTP เจชเฉเจฐเฉเจเฉเจเฉเจฒ เจฐเจพเจนเฉเจ เจธเจฐเจตเจฐ เจจเจพเจฒ เจธเฉฐเจเจพเจฐ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเฉเจเจ เจนเจจเฅค เจเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจตเจพเจฒเฉ เจธเฉเจเจฟเฉฐเจ เจฆเฉ เจเจฆเจพเจนเจฐเจจ cleartextTrafficPermitted
เจ
เจฐเจฅ เจฆเฉ เจจเจพเจฒ true
:
<network-security-config>
<domain-config>
<domain includeSubdomains="true">example.com</domain>
<trust-anchors>
<certificates src="@raw/my_ca"/>
</trust-anchors>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">secure.example.com</domain>
</domain-config>
</domain-config>
</network-security-config>
เจเฉเจฃเฉเจคเฉ: เจซเจพเจเจฒ เจจเจพเจฎ/เจชเจพเจฅ เจฆเฉเจเจฐเจพ เจจเจคเฉเจเจฟเจเจ เจจเฉเฉฐ เจธเฉเจฎเจฟเจค เจเจฐเฉ
เจนเฉฑเจฒ: เจเจเจกเจฐเฉเจเจก เจฒเจ เจเฉฑเจ เจฎเฉเจฌเจพเจเจฒ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจตเจฟเจเจพเจธ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจตเฉฑเจกเฉ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจตเจฟเฉฑเจ, เจธเจพเจจเฉเฉฐ เจจเจฟเจฏเจฎ เจฆเฉ เจเจฒเจค เจธเจเจพเจฐเจพเจคเจฎเจเจคเจพเจตเจพเจ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจเจฐเจจเจพ เจชเจฟเจ เจนเฉ เจเฉ เจ
เจธเจชเจธเจผเจเจคเจพ เจธเฉเจเจฟเฉฐเจ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจฆเจพ เจนเฉเฅค เจคเฉฑเจฅ เจเจน เจนเฉ เจเจฟ เจฌเจพเจเจธ เจฆเฉ เจฌเจพเจนเจฐ เจจเจฟเจฏเจฎ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจเฉเจ เจเจฐเจฆเจพ เจนเฉ build.gradle
เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฆเฉ เจฐเฉเจฒเฉเจเจผ เจธเฉฐเจธเจเจฐเจฃ เจฒเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจธเฉเจเจฟเฉฐเจเฅค
เจชเจฐ เจตเฉฑเจกเฉ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจตเจฟเฉฑเจ เจเจ เจตเจพเจฐ เจเจพเจเจฒเจก เจซเจพเจเจฒเจพเจ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ build.gradle
, เจเฉ เจเจฟ เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจฆเจพ เจนเจตเจพเจฒเจพ เจฆเจฟเฉฐเจฆเฉ เจนเจจเฅค เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจเจน เจนเฉ เจเจฟ เจญเจพเจตเฉเจ เจเจน เจซเจพเจเจฒเจพเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉเจฃ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเฉเจเจ เจจเจนเฉเจ เจนเจจ, เจชเจฐ เจธเฉฐเจเจฒเจจ เจฆเฉ เจฆเฉเจฐเจพเจจ เจชเฉเจฐเฉเจเจ เจ
เจธเฉเจเจฌเจฒเฉ เจซเจพเจเจฒ เจฆเฉเจเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจฒเจพเจเฉ เจเฉเจคเฉเจเจ เจเจพเจฃเจเฉเจเจ.
เจเจธ เจคเจฐเฉเจนเจพเจ, เจเฉฐเจฎ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจเจพเจเจฒเจก เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจเจฐเจฟเจเจฐเจพเจ เจจเฉเฉฐ เจเฉฑเจเจฃเจพ เจนเฉเฅค เจเจนเจจเจพเจ เจจเฉเฉฐ เจฒเจพเจเจจ เจฆเฉ เจฎเฉเจเฉเจฆเจเฉ เจฆเฉเจเจฐเจพ เจชเจเจพเจฃเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ apply 'com.android.library'
.
เจซเจพเจเจฒ เจคเฉเจ เจเจฆเจพเจนเจฐเจจ เจเฉเจก build.gradle
, เจเฉ เจเจฟ เจเฉเฉฐเจเจฒเจฆเจพเจฐเจคเจพ เจฆเฉ เจฒเฉเฉ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจฆเจพ เจนเฉ:
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
...
}
buildTypes {
release {
minifyEnabled true
...
}
}
}
dependencies {
...
}
เจซเจพเจเจฒ เจเจฆเจพเจนเจฐเจจ build.gradle
เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเฉฑเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฒเจ เจเจฟเจธ เจตเจฟเฉฑเจ เจเจน เจธเฉเจเจฟเฉฐเจ เจจเจนเฉเจ เจนเฉ:
apply plugin: 'android-library'
dependencies {
compile 'com.android.support:support-v4:18.0.+'
}
android {
compileSdkVersion 14
buildToolsVersion '17.0.0'
...
}
เจ เจคเฉ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฒเจ เจจเจฟเจฏเจฎ:
ProGuardObfuscationNotInUse
// ะะพะธัะบ ะผะตัะพะดะฐ release ััะตะดะธ ะฒัะตั
ะผะตัะพะดะพะฒ ะฒ Gradle ัะฐะนะปะฐั
CxList releaseMethod = Find_Gradle_Method("release");
// ะัะต ะพะฑัะตะบัั ะธะท ัะฐะนะปะพะฒ build.gradle
CxList gradleBuildObjects = Find_Gradle_Build_Objects();
// ะะพะธัะบ ัะพะณะพ, ััะพ ะฝะฐั
ะพะดะธััั ะฒะฝัััะธ ะผะตัะพะดะฐ "release" ััะตะดะธ ะฒัะตั
ะพะฑัะตะบัะพะฒ ะธะท ัะฐะนะปะพะฒ build.gradle
CxList methodInvokesUnderRelease = gradleBuildObjects.FindByType(typeof(MethodInvokeExpr)).GetByAncs(releaseMethod);
// ะัะตะผ ะฒะฝัััะธ gradle-ัะฐะนะปะพะฒ ัััะพะบั "com.android.library" - ััะพ ะทะฝะฐัะธั, ััะพ ะดะฐะฝะฝัะน ัะฐะนะป ะพัะฝะพัะธััั ะบ ะฑะธะฑะปะธะพัะตะบะต ะธ ะตะณะพ ะฝะตะพะฑั
ะพะดะธะผะพ ะธัะบะปััะธัั ะธะท ะฟัะฐะฒะธะปะฐ
CxList android_library = gradleBuildObjects.FindByName("com.android.library");
// ะะฝะธัะธะฐะปะธะทะฐัะธั ะฟัััะพะณะพ ะผะฐััะธะฒะฐ
List<string> libraries_path = new List<string> {};
// ะัะพั
ะพะดะธะผ ัะตัะตะท ะฒัะต ะฝะฐะนะดะตะฝะฝัะต "ะดะพัะตัะฝะธะต" ัะฐะนะปั
foreach(CxList library in android_library)
{
// ะะพะปััะฐะตะผ ะฟััั ะบ ะบะฐะถะดะพะผั ัะฐะนะปั
string file_name_library = library.GetFirstGraph().LinePragma.FileName;
// ะะพะฑะฐะฒะปัะตะผ ะตะณะพ ะฒ ะฝะฐั ะผะฐััะธะฒ
libraries_path.Add(file_name_library);
}
// ะัะตะผ ะฒัะต ะฒัะทะพะฒั ะฒะบะปััะตะฝะธั ะพะฑัััะบะฐัะธะธ ะฒ ัะตะปะธะทะฝัั
ะฝะฐัััะพะนะบะฐั
CxList minifyEnabled = methodInvokesUnderRelease.FindByShortName("minifyEnabled");
// ะะพะปััะฐะตะผ ะฟะฐัะฐะผะตััั ััะธั
ะฒัะทะพะฒะพะฒ
CxList minifyValue = gradleBuildObjects.GetParameters(minifyEnabled, 0);
// ะัะตะผ ััะตะดะธ ะฝะธั
ะฒะบะปััะตะฝะฝัะต
CxList minifyValueTrue = minifyValue.FindByShortName("true");
// ะะตะผะฝะพะณะพ ะผะฐะณะธะธ, ะตัะปะธ ะฝะต ะฝะฐัะปะธ ััะฐะฝะดะฐััะฝัะผ ัะฟะพัะพะฑะพะผ :D
if (minifyValueTrue.Count == 0) {
minifyValue = minifyValue.FindByAbstractValue(abstractValue => abstractValue is TrueAbstractValue);
} else {
// ะ ะตัะปะธ ะฒัั-ัะฐะบะธ ะฝะฐัะปะธ, ัะพ ะฟัะตะดัะดััะธะน ัะตะทัะปััะฐั ะธ ะพััะฐะฒะปัะตะผ
minifyValue = minifyValueTrue;
}
// ะัะปะธ ะฝะต ะฝะฐัะปะพัั ัะฐะบะธั
ะผะตัะพะดะพะฒ
if (minifyValue.Count == 0)
{
// ะะปั ะฑะพะปะตะต ะบะพััะตะบัะฝะพะณะพ ะพัะพะฑัะฐะถะตะฝะธั ะผะตััะฐ ััะฐะฑะฐััะฒะฐะฝะธั ะฒ ัะฐะนะปะต ะธัะตะผ ะธะปะธ buildTypes ะธะปะธ android
CxList tempResult = All.NewCxList();
CxList buildTypes = Find_Gradle_Method("buildTypes");
if (buildTypes.Count > 0) {
tempResult = buildTypes;
} else {
tempResult = Find_Gradle_Method("android");
}
// ะะปั ะบะฐะถะดะพะณะพ ะธะท ะฝะฐะนะดะตะฝะฝัั
ะผะตัั ััะฐะฑะฐััะฒะฐะฝะธั ะฟัะพั
ะพะดะธะผ ะธ ะพะฟัะตะดะตะปัะตะผ, ะดะพัะตัะฝะธะน ะธะปะธ ะพัะฝะพะฒะฝะพะน ัะฐะนะปั ัะฑะพัะบะธ
foreach(CxList res in tempResult)
{
// ะะฟัะตะดะตะปัะตะผ, ะฒ ะบะฐะบะพะผ ัะฐะนะปะต ะฑัะป ะฝะฐะนะดะตะฝ buildType ะธะปะธ android ะผะตัะพะดั
string file_name_result = res.GetFirstGraph().LinePragma.FileName;
// ะัะปะธ ัะฐะบะพะณะพ ัะฐะนะปะฐ ะฝะตั ะฒ ะฝะฐัะตะผ ัะฟะธัะบะต "ะดะพัะตัะฝะธั
" ัะฐะนะปะพะฒ - ะทะฝะฐัะธั ััะพ ะพัะฝะพะฒะฝะพะน ัะฐะนะป ะธ ะตะณะพ ะผะพะถะฝะพ ะดะพะฑะฐะฒะธัั ะฒ ัะตะทัะปััะฐั
if (libraries_path.Contains(file_name_result) == false){
result.Add(res);
}
}
}
เจเจน เจชเจนเฉเฉฐเจ เจเจพเจซเจผเฉ เจตเจฟเจเจชเจ เจ เจคเฉ เจเจชเจฏเฉเจเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ เจจเจพ เจธเจฟเจฐเจซเจผ เจเจเจกเจฐเฉเจเจก เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจฒเจ, เจธเจเฉเจ เจนเฉเจฐ เจฎเจพเจฎเจฒเจฟเจเจ เจฒเจ เจตเฉ เจเจฆเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเจน เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเฉฐเจฆเฉ เจนเฉ เจเจฟ เจเฉ เจจเจคเฉเจเจพ เจเจฟเจธเฉ เจเจพเจธ เจซเจพเจเจฒ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉเฅค
เจเฉเจฃเฉเจคเฉ: เจเฉเจเจฐ เจธเฉฐเจเฉเจเจธ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจธเจฎเจฐเจฅเจฟเจค เจจเจนเฉเจ เจนเฉ เจคเจพเจ เจคเฉเจเฉ เจงเจฟเจฐ เจฆเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฒเจ เจธเจฎเจฐเจฅเจจ เจธเจผเจพเจฎเจฒ เจเจฐเฉ
เจนเฉฑเจฒ: เจเฉเจก เจฒเจฟเจเจฃ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจตเจฟเฉฑเจ เจตเจฐเจคเฉ เจเจพเจฃ เจตเจพเจฒเฉ เจตเฉฑเจ-เจตเฉฑเจ เจซเจฐเฉเจฎเจตเจฐเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจธเจฟเจฐเจซเจผ เจเจพเจฐเจ เจคเฉเจ เจฌเจพเจนเจฐ เจนเฉเฅค เจฌเฉเจธเจผเฉฑเจ, เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจนเจฎเฉเจธเจผเจพ เจเจนเจจเจพเจ เจฆเฉ เจนเฉเจเจฆ เจฌเจพเจฐเฉ เจจเจนเฉเจ เจเจพเจฃเจฆเจพ เจนเฉ, เจ เจคเฉ เจธเจพเจกเจพ เจเฉฐเจฎ เจเจธเจจเฉเฉฐ เจเจน เจธเจฎเจเจฃเจพ เจธเจฟเจเจพเจเจฃเจพ เจนเฉ เจเจฟ เจเฉเจ เจตเจฟเจงเฉเจเจ เจเจพเจธ เจคเฉเจฐ 'เจคเฉ เจเจธ เจขเจพเจเจเฉ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเจจเฅค เจเจ เจตเจพเจฐ เจเจน เจเจธ เจคเฉฑเจฅ เจฆเฉเจเจฐเจพ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเจฟ เจซเจฐเฉเจฎเจตเจฐเจ เจซเฉฐเจเจธเจผเจจ เจจเจพเจฎเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจจ เจเฉ เจฌเจนเฉเจค เจเจฎ เจนเฉเฉฐเจฆเฉ เจนเจจ เจ เจคเฉ เจเจฟเจธเฉ เจเจพเจธ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจจเจพเจฒ เจเจฟเจธเฉ เจเจพเจธ เจเจพเจฒ เจฆเฉ เจธเจฌเฉฐเจง เจจเฉเฉฐ เจธเจชเฉฑเจธเจผเจ เจคเฉเจฐ 'เจคเฉ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจเจพ เจ เจธเฉฐเจญเจต เจนเฉเฉฐเจฆเจพ เจนเฉเฅค
เจฎเฉเจธเจผเจเจฒ เจเจน เจนเฉ เจเจฟ เจ เจเจฟเจนเฉเจเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจฆเฉ เจธเฉฐเจเฉเจเจธ เจจเฉเฉฐ เจนเจฎเฉเจธเจผเจพ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจชเจเจพเจฃเจฟเจ เจจเจนเฉเจ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจตเฉฑเจกเฉ เจเจฟเจฃเจคเฉ เจตเจฟเฉฑเจ เจเจฒเจค เจธเจเจพเจฐเจพเจคเจฎเจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจคเฉเจ เจฌเจเจฃ เจฒเจ เจชเฉเจฐเจฏเฉเจ เจเจฐเจจเจพ เจชเฉเจเจฆเจพ เจนเฉเฅค เจธเจเฉเจจเจฟเฉฐเจ เจธเจผเฉเฉฑเจงเจคเจพ เจตเจฟเฉฑเจ เจธเฉเจงเจพเจฐ เจเจฐเจจ เจ เจคเฉ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจฒเจ เจเจ เจตเจฟเจเจฒเจช เจนเจจ:
-
เจชเจนเจฟเจฒเจพ เจตเจฟเจเจฒเจช, เจ เจธเฉเจ เจฏเจเฉเจจเฉ เจคเฉเจฐ 'เจคเฉ เจเจพเจฃเจฆเฉ เจนเจพเจ เจเจฟ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉฑเจ เจเจพเจธ เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ เจ เจคเฉ เจเฉเจฎ เจชเฉฑเจงเจฐ 'เจคเฉ เจจเจฟเจฏเจฎ เจฒเจพเจเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจชเจฐ เจเฉเจเจฐ เจเฉเจฎ เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจชเจนเฉเฉฐเจ เจ เจชเจฃเจพเจเจฃ เจฆเจพ เจซเฉเจธเจฒเจพ เจเจฐเจฆเฉ เจนเฉ เจเจพเจ เจเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจจเจพเจฎ เจเจตเจฐเจฒเฉเจช เจนเฉเฉฐเจฆเฉ เจนเจจ, เจคเจพเจ เจ เจธเฉเจ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจเฉเจ เฉเจเจ เจธเจเจพเจฐเจพเจคเจฎเจเจคเจพเจตเจพเจ เจฆเฉ เจเฉฑเจ เจฌเจนเฉเจค เจนเฉ เจธเฉเจนเจพเจตเจฃเฉ เจคเจธเจตเฉเจฐ เจชเฉเจฐเจพเจชเจค เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค
-
เจฆเฉเจเจพ เจตเจฟเจเจฒเจช เจเจนเจจเจพเจ เจซเจพเจเจฒเจพเจ เจฆเฉ เจเฉเจ เจเจฐเจจเจพ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจธเจชเจธเจผเจ เจคเฉเจฐ 'เจคเฉ เจเจฏเจพเจค เจเฉเจคเฉ เจเจ เจนเฉเฅค เจเจธ เจชเจนเฉเฉฐเจ เจจเจพเจฒ, เจ เจธเฉเจ เจจเจฟเจธเจผเจเจค เจนเฉ เจธเจเจฆเฉ เจนเจพเจ เจเจฟ เจธเจพเจจเฉเฉฐ เจฒเฉเฉเฉเจเจฆเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจเจธ เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจฌเจฟเจฒเจเฉเจฒ เจตเจฐเจคเฉ เจเจ เจนเฉเฅค
-
เจ เจคเฉ เจคเฉเจเจพ เจตเจฟเจเจฒเจช เจเจชเจฐเฉเจเจค เจฆเฉเจจเจพเจ เจชเจนเฉเฉฐเจเจพเจ เจจเฉเฉฐ เจเจเฉฑเจ เฉ เจตเจฐเจคเจฃเจพ เจนเฉเฅค
เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจฆเฉ เจคเฉเจฐ 'เจคเฉ, เจเจ เจเฉฑเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจจเฉเฉฐ เจตเฉเจเฉเจ เจเฉ เจคเฉฐเจ เจเฉฑเจเจฐเจพเจ เจตเจฟเฉฑเจ เจเฉฐเจเฉ เจคเจฐเฉเจนเจพเจ เจเจพเจฃเฉ เจเจพเจเจฆเฉ เจนเฉ $
, เจเฉ เจเจฟ เจเฉฑเจ เจชเฉเจฐเฉเจซเจพเจฐเจฎเจก SQL เจชเฉเฉฑเจเจเจฟเฉฑเจ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจจเฉเฉฐ เจฌเจฆเจฒเจฆเจพ เจนเฉเฅค เจญเจพเจต, เจ
เจธเจฒ เจตเจฟเฉฑเจ, เจเจน Java เจตเจฟเฉฑเจ เจคเจฟเจเจฐ เจธเจเฉเจเจฎเฉเจเจ เจฆเจพ เจธเจฟเฉฑเจงเจพ เจเจจเจพเจฒเจพเจ เจนเฉเฅค เจชเจฐ, เจเฉเจเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ SQL เจชเฉเฉฑเจเจเจฟเฉฑเจ เจจเฉเฉฐ เจเจคเฉเจธเจผเฉเจฒ เจฐเฉเจช เจตเจฟเฉฑเจ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉเจเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจพเจฐเจฃเฉ เจฆเฉ เจจเจพเจฎ เจชเจพเจธ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจเจชเจฐเฉเจเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ #$
, เจเฉ เจธเจฟเฉฑเจงเฉ เจคเฉเจฐ 'เจคเฉ เจชเฉเฉฑเจเจเจฟเฉฑเจ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจจเฉเฉฐ เจฌเจฆเจฒ เจฆเฉเจตเฉเจเจพ (เจฒเจเจญเจ เจธเจคเจฐ เจเฉเฉเจจ เจตเจพเจเจ)เฅค
เจจเจฎเฉเจจเจพ เจเฉเจก:
// ะ ะพะฑัะตะผ ัะปััะฐะต - ะทะฝะฐัะตะฝะธั, ะบะพะฝััะพะปะธััะตะผัะต ะฟะพะปัะทะพะฒะฐัะตะปะตะผ
val table = "coffees"
sql"select * from #$table where name = $name".as[Coffee].headOption
เจเฉเจเจฎเจพเจฐเจเจธ เจจเฉเฉฐ เจ
เจเฉ เจคเฉฑเจ เจเจน เจจเจนเฉเจ เจชเจคเจพ เจนเฉ เจเจฟ เจธเจชเจฒเฉเจธเจฟเฉฐเจ เจฒเจฟเจเจฐเจฒ เจตเฉเจฒเจฏเฉเจเจผ เจ
เจคเฉ เจธเจเจฟเฉฑเจช เจเจชเจฐเฉเจเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจเฉเจเจฃเจพ เจนเฉ #$
, เจคเจพเจ เจเจ เจเจธเจจเฉเฉฐ เจธเฉฐเจญเจพเจตเฉ SQL เจเฉฐเจเฉเจเจธเจผเจจเจพเจ เจฆเฉ เจชเจเจพเจฃ เจเจฐเจจ เจ
เจคเฉ เจเฉเจก เจตเจฟเฉฑเจ เจธเจนเฉ เจธเจฅเจพเจจเจพเจ เจจเฉเฉฐ เจเจเจพเจเจฐ เจเจฐเจจ เจฒเจ เจธเจฟเจเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจ:
// ะะฐั
ะพะดะธะผ ะฒัะต ะธะผะฟะพััั
CxList imports = All.FindByType(typeof(Import));
// ะัะตะผ ะฟะพ ะธะผะตะฝะธ, ะตััั ะปะธ ะฒ ะธะผะฟะพััะฐั
slick
CxList slick = imports.FindByShortName("slick");
// ะะตะบะพัะพััะน ัะปะฐะณ, ะพะฟัะตะดะตะปัััะธะน, ััะพ ะธะผะฟะพัั ะฑะธะฑะปะธะพัะตะบะธ ะฒ ะบะพะดะต ะฟัะธัััััะฒัะตั
// ะะปั ะฑะพะปะตะต ัะพัะฝะพะณะพ ะพะฟัะตะดะตะปะตะฝะธั - ะผะพะถะฝะพ ะฟัะธะผะตะฝะธัั ะฟะพะดั
ะพะด ั ะธะผะตะฝะตะผ ัะฐะนะปะฐ
bool not_empty_list = false;
foreach (CxList r in slick)
{
// ะัะปะธ ะฒัััะตัะธะปะธ ะธะผะฟะพัั, ััะธัะฐะตะผ, ััะพ slick ะธัะฟะพะปัะทัะตััั
not_empty_list = true;
}
if (not_empty_list) {
// ะัะตะผ ะฒัะทะพะฒั, ะฒ ะบะพัะพััะต ะฟะตัะตะดะฐะตััั SQL-ัััะพะบะฐ
CxList sql = All.FindByShortName("sql");
sql.Add(All.FindByShortName("sqlu"));
// ะะฟัะตะดะตะปัะตะผ ะดะฐะฝะฝัะต, ะบะพัะพััะต ะฟะพะฟะฐะดะฐัั ะฒ ััะธ ะฒัะทะพะฒั
CxList data_sql = All.DataInfluencingOn(sql);
// ะขะฐะบ ะบะฐะบ ัะธะฝัะฐะบะธั ะฝะต ะฟะพะดะดะตัะถะธะฒะฐะตััั, ะผะพะถะฝะพ ะฟัะธะผะตะฝะธัั ะฟะพะดั
ะพะด ั ัะตะณัะปััะฝัะผะธ ะฒััะฐะถะตะฝะธัะผะธ
// RegExp ััะพะธั ะธัะฟะพะปัะทะพะฒะฐัั ะบัะฐะนะฝะต ะพััะพัะพะถะฝะพ ะธ ะฝะต ะฟัะธะผะตะฝััั ะตะณะพ ะฝะฐ ะฑะพะปััะพะผ ะบะพะปะธัะตััะฒะต ะดะฐะฝะฝัั
, ัะฐะบ ะบะฐะบ ััะพ ะผะพะถะตั ัะธะปัะฝะพ ะฟะพะฒะปะธััั ะฝะฐ ะฟัะพะธะทะฒะพะดะธัะตะปัะฝะพััั
CxList find_possible_inj = data_sql.FindByRegex(@"#$", true, true, true);
// ะะทะฑะฐะฒะปัะตะผัั ะพั ะปะธัะฝะธั
ััะฐะฑะฐััะฒะฐะฝะธะน, ะตัะปะธ ะพะฝะธ ะตััั ะธ ะฒัะฒะพะดะธะผ ะฒ ัะตะทัะปััะฐั
result = find_possible_inj.FindByType(typeof(BinaryExpr));
}
เจเฉเจฃเฉเจคเฉ: เจเจชเจจ-เจธเฉเจฐเจธ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจตเจฟเฉฑเจ เจตเจฐเจคเฉ เจเจ เจเจฎเจเจผเฉเจฐ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจเฉเจ เจเจฐเฉ
เจนเฉฑเจฒ: เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจเฉฐเจชเจจเฉเจเจ เจตเจฟเจเจธเจค เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจตเจฟเฉฑเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจฆเฉ เจเจฎเจเจผเฉเจฐ เจธเฉฐเจธเจเจฐเจฃเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจฆเจพ เจชเจคเจพ เจฒเจเจพเจเจฃ เจฒเจ เจเจชเจจ-เจธเฉเจฐเจธ เจฎเจพเจจเฉเจเจฐเจฟเฉฐเจ เจเฉเจฒ (OSA เจ เจญเจฟเจเจธ) เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉเจเจ เจนเจจเฅค เจเจ เจตเจพเจฐ เจ เจเจฟเจนเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจธเฉฐเจธเจเจฐเจฃ เจตเจฟเฉฑเจ เจ เฉฑเจชเจกเฉเจ เจเจฐเจจเจพ เจธเฉฐเจญเจต เจจเจนเฉเจ เจนเฉเฉฐเจฆเจพเฅค เจเฉเจ เจฎเจพเจฎเจฒเจฟเจเจ เจตเจฟเฉฑเจ เจเจพเจฐเจเจธเจผเฉเจฒ เจธเฉเจฎเจพเจตเจพเจ เจนเจจ, เจฆเฉเจเจฟเจเจ เจตเจฟเฉฑเจ เจเฉเจ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจธเฉฐเจธเจเจฐเจฃ เจจเจนเฉเจ เจนเฉเฅค เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, SAST เจ เจคเฉ OSA เจ เจญเจฟเจเจธเจพเจ เจฆเจพ เจธเฉเจฎเฉเจฒ เจเจน เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจ เจตเจฟเฉฑเจ เจฎเจฆเจฆ เจเจฐเฉเจเจพ เจเจฟ เจเจน เจเจพเจฐเจ เจเฉ เจเจฎเจเจผเฉเจฐเฉ เจฆเจพ เจธเจผเฉเจธเจผเจฃ เจเจฐเจฆเฉ เจนเจจ เจเฉเจก เจตเจฟเฉฑเจ เจจเจนเฉเจ เจตเจฐเจคเฉ เจเจ เจนเจจเฅค
เจชเจฐ เจเจ เจตเจพเจฐ, เจเจพเจธ เจคเฉเจฐ 'เจคเฉ JavaScript 'เจคเฉ เจตเจฟเจเจพเจฐ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจเจน เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจฎเจพเจฎเฉเจฒเฉ เจเฉฐเจฎ เจจเจนเฉเจ เจนเฉ เจธเจเจฆเจพ เจนเฉเฅค เจนเฉเจ เจพเจ เจเฉฑเจ เจนเฉฑเจฒ เจนเฉ, เจธเจผเจพเจเจฆ เจเจฆเจฐเจธเจผ เจจเจนเฉเจ, เจชเจฐ เจซเจฟเจฐ เจตเฉ เจเฉฐเจฎ เจเจฐ เจฐเจฟเจนเจพ เจนเฉ, เจเฉฐเจชเฉเจจเฉเจเจ เจตเจฟเฉฑเจ เจเจฎเจเจผเฉเจฐเฉเจเจ เจฆเฉ เจเจฆเจพเจนเจฐเจฃ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ lodash
เจขเฉฐเจเจพเจ เจตเจฟเฉฑเจ template
ะธ *set
.
เจเฉฑเจ JS เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจธเฉฐเจญเจพเจตเฉ เจคเฉเจฐ 'เจคเฉ เจเจฎเจเจผเฉเจฐ เจเฉเจก เจฆเฉ เจเจพเจเจ เจฆเฉเจเจ เจเจฆเจพเจนเจฐเจจเจพเจ:
/**
* Template example
*/
'use strict';
var _ = require("./node_modules/lodash.js");
// Use the "interpolate" delimiter to create a compiled template.
var compiled = _.template('hello <%= js %>!');
console.log(compiled({ 'js': 'lodash' }));
// => 'hello lodash!'
// Use the internal `print` function in "evaluate" delimiters.
var compiled = _.template('<% print("hello " + js); %>!');
console.log(compiled({ 'js': 'lodash' }));
// => 'hello lodash!'
เจ เจคเฉ เจเจฆเฉเจ เจธเจฟเฉฑเจงเฉ html เจตเจฟเฉฑเจ เจเฉเฉเจฆเฉ เจนเฉ:
<!DOCTYPE html>
<html>
<head>
<title>Lodash Tutorial</title>
<script src="./node_modules/lodash.js"></script>
<script type="text/javascript">
// Lodash chunking array
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let c1 = _.template('<% print("hello " + js); %>!');
console.log(c1);
let c2 = _.template('<% print("hello " + js); %>!');
console.log(c2);
</script>
</head>
<body></body>
</html>
เจ เจธเฉเจ เจเจชเจฃเฉ เจธเจพเจฐเฉ เจเจฎเจเจผเฉเจฐ เจขเฉฐเจเจพเจ เจฆเฉ เจคเจฒเจพเจธเจผ เจเจฐ เจฐเจนเฉ เจนเจพเจ, เจเฉ เจเจฟ เจเจฎเจเจผเฉเจฐเฉเจเจ เจตเจฟเฉฑเจ เจธเฉเจเฉเจฌเฉฑเจง เจนเจจ:
// ะัะตะผ ะฒัะต ัััะพะบะธ: ะฒ ะบะพัะพััั
ะฒัััะตัะฐะตััั ัััะพะบะฐ lodash (ะฟัะตะดะฟะพะปะฐะณะฐะตะผ, ััะพ ััะพ ะพะฑััะฒะปะตะฝะธะต ะธะผะฟะพััะฐ ะฑะธะฑะปะธะพัะตะบะธ
CxList lodash_strings = Find_String_Literal().FindByShortName("*lodash*");
// ะัะตะผ ะฒัะต ะดะฐะฝะฝัะต: ะบะพัะพััะต ะฒะทะฐะธะผะพะดะตะนััะฒััั ั ััะธะผะธ ัััะพะบะฐะผะธ
CxList data_on_lodash = All.InfluencedBy(lodash_strings);
// ะะฐะดะฐะตะผ ัะฟะธัะพะบ ััะทะฒะธะผัั
ะผะตัะพะดะพะฒ
List<string> vulnerable_methods = new List<string> {"template", "*set"};
// ะัะตะผ ะฒัะต ะฝะฐัะธ ััะทะฒะธะผัะต ะผะตัะพะดั, ะบะพัะพััะต ะฟะตัะตัะธัะปะตะฝะฝั ะฒ ััะทะฒะธะผะพัััั
ะธ ะพััะธะปัััะพะฒัะฒะฐะตะผ ะธั
ัะพะปัะบะพ ัะฐะผ, ะณะดะต ะพะฝะธ ะฒัะทัะฒะฐะปะธัั
CxList vulnerableMethods = All.FindByShortNames(vulnerable_methods).FindByType(typeof(MethodInvokeExpr));
//ะะฐั
ะพะดะธะผ ะฒัะต ะดะฐะฝะฝัะต: ะบะพัะพััะต ะฒะทะฐะธะผะพะดะตะนััะฒััั ั ะดะฐะฝะฝัะผะธ ะผะตัะพะดะฐะผะธ
CxList vulnFlow = All.InfluencedBy(vulnerableMethods);
// ะัะปะธ ะตััั ะฟะตัะตัะตัะตะฝะธะต ะฟะพ ััะธะผ ะดะฐะฝะฝัะผ - ะบะปะฐะดะตะผ ะฒ ัะตะทัะปััะฐั
result = vulnFlow * data_on_lodash;
// ะคะพัะผะธััะตะผ ัะฟะธัะพะบ ะฟััะตะน ะฟะพ ะบะพัะพััะผ ะผั ัะถะต ะฟัะพัะปะธ, ััะพะฑั ัะธะปัััะพะฒะฐัั ะฒ ะดะฐะปัะฝะตะนัะตะผ ะดัะฑะปะธ
List<string> lodash_result_path = new List<string> {};
foreach(CxList lodash_result in result)
{
// ะัะตัะตะดะฝะพะน ัะฐะท ะฟะพะปััะฐะตะผ ะฟััะธ ะบ ัะฐะนะปะฐะผ
string file_name = lodash_result.GetFirstGraph().LinePragma.FileName;
lodash_result_path.Add(file_name);
}
// ะะฐะปััะต ะธะดะตั ัะฐััั ะพัะฝะพัััะฐััั ะบ html ัะฐะนะปะฐะผ, ัะฐะบ ะบะฐะบ ะฒ ะฝะธั
ะผั ะฝะต ะผะพะถะตะผ ะฟัะพัะปะตะดะธัั ะพัะบัะดะฐ ะธะผะตะฝะฝะพ ะธะดะตั ะฒัะทะพะฒ
// ะคะพัะผะธััะตะผ ะผะฐััะธะฒ ะฟััะตะน ัะฐะนะปะพะฒ, ััะพะฑั ะฑััั ัะฒะตัะตะฝะฝัะผะธ, ััะพ ััะฐะฑะฐััะฒะฐะฝะธั ััะทะฒะธะผัั
ะผะตัะพะดะพะฒ ะฑัะปะธ ะธะผะตะฝะฝะพ ะฒ ัะตั
ัะฐะนะปะฐั
, ะฒ ะบะพัะพััั
ะพะฑััะฒะปะตะฝ lodash
List<string> lodash_path = new List<string> {};
foreach(CxList string_lodash in lodash_strings)
{
string file_name = string_lodash.GetFirstGraph().LinePragma.FileName;
lodash_path.Add(file_name);
}
// ะะตัะตะฑะธัะฐะตะผ ะฒัะต ััะทะฒะธะผัะต ะผะตัะพะดั ะธ ัะฑะตะถะดะฐะตะผัั, ััะพ ะพะฝะธ ะฒัะทะฒะฐะฝั ะฒ ัะตั
ะถะต ัะฐะนะปะฐั
, ััะพ ะธ ะพะฑััะฒะปะตะฝะธะต/ะฒะบะปััะตะฝะธะต lodash
foreach(CxList method in vulnerableMethods)
{
string file_name_method = method.GetFirstGraph().LinePragma.FileName;
if (lodash_path.Contains(file_name_method) == true && lodash_result_path.Contains(file_name_method) == false){
result.Add(method);
}
}
// ะฃะฑะธัะฐะตะผ ะฒัะต UknownReferences ะธ ะพััะฐะฒะปัะตะผ ัะฐะผัะน "ะดะปะธะฝะฝัะน" ะธะท ะฟััะตะน, ะตัะปะธ ัะฐะบะธะต ะฒัััะตัะฐัััั
result = result.ReduceFlow(CxList.ReduceFlowType.ReduceSmallFlow) - result.FindByType(typeof(UnknownReference));
เจเฉเจฃเฉเจคเฉ: เจเจชเจฒเฉเจเฉเจธเจผเจจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจธเจฐเจเฉเจซเจฟเจเฉเจเจพเจ เจฆเฉ เจเฉเจ เจเฉเจคเฉ เจเจพ เจฐเจนเฉ เจนเฉ
เจนเฉฑเจฒ: เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ, เจเจพเจธ เจเจฐเจเฉ เจฎเฉเจฌเจพเจเจฒ เจฒเจ, เจตเฉฑเจ-เจตเฉฑเจ เจธเจฐเจตเจฐเจพเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐเจจ เจเจพเจ SSL-เจชเจฟเจจเจฟเฉฐเจ เจฆเฉ เจชเฉเจธเจผเจเฉ เจเจฐเจจ เจฒเจ เจธเจฐเจเฉเจซเจฟเจเฉเจ เจเจพเจ เจเฉเฉฐเจเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจ เจธเจงเจพเจฐเจจ เจจเจนเฉเจ เจนเฉเฅค เจธเฉเจฐเฉฑเจเจฟเจ เจฆเฉ เจจเจเจผเจฐเฉเจ เจคเฉเจ, เจเฉเจก เจตเจฟเฉฑเจ เจ เจเจฟเจนเฉเจเจ เจเฉเจเจผเจพเจ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจเจพ เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจ เจญเจฟเจเจธ เจจเจนเฉเจ เจนเฉเฅค เจเจ เจเฉฑเจ เจจเจฟเจฏเจฎ เจฒเจฟเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเจ เจเฉ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจธเจฎเจพเจจ เจซเจพเจเจฒเจพเจ เจฆเฉ เจเฉเจ เจเจฐเฉเจเจพ:
// ะะฐะนะดะตะผ ะฒัะต ัะตััะธัะธะบะฐัั ะฟะพ ะผะฐัะบะต ัะฐะนะปะฐ
CxList find_certs = All.FindByShortNames(new List<string> {"*.der", "*.cer", "*.pem", "*.key"}, false);
// ะัะพะฒะตัะธะผ, ะณะดะต ะฒ ะฟัะธะปะพะถะตะฝะธะธ ะพะฝะธ ะธัะฟะพะปัะทััััั
CxList data_used_certs = All.DataInfluencedBy(find_certs);
// ะ ะดะปั ะผะพะฑะธะปัะฝัั
ะฟัะธะปะพะถะตะฝะธะน - ะผะพะถะตะผ ะฟะพะธัะบะฐัั ะผะตัะพะดั, ะณะดะต ะฒัะทัะฒะฐะตััั ััะตะฝะธะต ัะตััะธัะธะบะฐัะพะฒ
// ะะปั ะดััะณะธั
ะฟะปะฐััะพัะผ ะธ ะฟัะธะปะพะถะตะฝะธะน ะผะพะณัั ะฑััั ัะฐะทะปะธัะฝัะต ะผะตัะพะดั
CxList methods = All.FindByMemberAccess("*.getAssets");
// ะะตัะตัะตัะตะฝะธะต ะผะฝะพะถะตััะฒ ะดะฐัั ะฝะฐะผ ัะตะทัะปััะฐั ะฟะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธั ะปะพะบะฐะปัะฝัั
ัะตััะธัะธะบะฐัะพะฒ ะฒ ะฟัะธะปะพะถะตะฝะธะธ
result = methods * data_used_certs;
เจเฉเจฃเฉเจคเฉ: เจเจชเจฒเฉเจเฉเจธเจผเจจ เจตเจฟเฉฑเจ เจธเจฎเจเฉเจคเจพ เจเฉเจคเฉ เจเฉเจเจจเจพเจ เจจเฉเฉฐ เจฒเฉฑเจญเจฃเจพ
เจนเฉฑเจฒ: เจเฉเจก เจตเจฟเฉฑเจ เจฎเฉเจเฉเจฆ เจธเจฎเจเฉเจคเจพ เจเฉเจคเฉ เจเฉเจเจจเจพเจ เจเจพเจ เจนเฉเจฐ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจเจพเจฃเจเจพเจฐเฉ เจจเฉเฉฐ เจฐเฉฑเจฆ เจเจฐเจจเจพ เจ เจเจธเจฐ เจเจผเจฐเฉเจฐเฉ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค เจฌเฉเจธเจผเฉฑเจ, เจเจนเจจเจพเจ เจจเฉเฉฐ เจธเจฐเฉเจค เจเฉเจก เจฆเฉ เจ เฉฐเจฆเจฐ เจธเจเฉเจฐ เจเจฐเจจเจพ เจเฉฑเจ เจเฉฐเจเจพ เจตเจฟเจเจพเจฐ เจจเจนเฉเจ เจนเฉ, เจชเจฐ เจธเจฅเจฟเจคเฉเจเจ เจตเฉฑเจ-เจตเฉฑเจ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจเฅค CxQL เจธเจตเจพเจฒเจพเจ เจฒเจ เจงเฉฐเจจเจตเจพเจฆ, เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเฉเจเจ เจเฉเจเจผเจพเจ เจฒเฉฑเจญเจฃเจพ เจเจพเจซเจผเฉ เจเจธเจพเจจ เจนเฉ:
// ะะพะปััะฐะตะผ ะฒัะต ัััะพะบะธ, ะบะพัะพััะต ัะพะดะตัะถะฐััั ะฒ ะบะพะดะต
CxList strings = base.Find_Strings();
// ะัะตะผ ััะตะดะธ ะฒัะตั
ัััะพะบ ะฝัะถะฝะพะต ะฝะฐะผ ะทะฝะฐัะตะฝะธะต. ะ ะฟัะธะผะตัะต ัะพะบะตะฝ ะฒ ะฒะธะดะต ัััะพะบะธ "qwerty12345"
result = strings.FindByShortName("qwerty12345");
เจธเจฟเฉฑเจเจพ
เจฎเฉเจจเฉเฉฐ เจเจฎเฉเจฆ เจนเฉ เจเจฟ เจเจน เจฒเฉเจ เจเจนเจจเจพเจ เจฒเจ เจฒเจพเจญเจฆเจพเจเจ เจนเฉเจตเฉเจเจพ เจเฉ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจเฉเจฒ เจจเจพเจฒ เจเจชเจฃเฉ เจเจพเจฃ-เจชเจเจพเจฃ เจธเจผเฉเจฐเฉ เจเจฐ เจฐเจนเฉ เจนเจจเฅค เจธเจผเจพเจเจฆ เจเจฟเจนเฉเฉ เจฒเฉเจ เจฒเฉฐเจฌเฉ เจธเจฎเฉเจ เจคเฉเจ เจเจชเจฃเฉ เจจเจฟเจฏเจฎ เจฒเจฟเจ เจฐเจนเฉ เจนเจจ, เจเจจเฉเจนเจพเจ เจจเฉเฉฐ เจตเฉ เจเจธ เจเจพเจเจก เจตเจฟเฉฑเจ เจเฉเจ เจฒเจพเจญเจฆเจพเจเจ เจฒเฉฑเจเฉเจเจพเฅค
เจฌเจฆเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเจฐเฉเจค เจฆเฉ เจเจพเจ เจนเฉ เจเจฟเฉฑเจฅเฉ เจเฉเฉฑเจเจฎเจพเจฐเจเจธ เจฒเจ เจจเจฟเจฏเจฎเจพเจ เจฆเฉ เจตเจฟเจเจพเจธ เจฆเฉเจฐเจพเจจ เจจเจตเฉเจ เจตเจฟเจเจพเจฐ เจเจเฉฑเจ เฉ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเจจเฅค เจเจธ เจฒเจ เจ
เจธเฉเจ เจฌเจฃเจพเจเจ เจนเฉ
เจคเฉเจนเจพเจกเฉ เจงเจฟเจเจจ เจฒเจ เจงเฉฐเจจเจตเจพเจฆ!
เจธเจฐเฉเจค: www.habr.com