เดนเต เดนเดฌเตผ!
เดเดเตเดเดณเตเดเต เดเตเดฒเดฟเดฏเดฟเตฝ, เดเดเตเดเดณเตเดเต เดเดฎเตเดชเดจเดฟ เดชเดฒเดชเตเดชเตเดดเตเด เดตเดฟเดตเดฟเดง เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดเตเดกเต เดตเดฟเดถเดเดฒเดจ เดเตเดณเตเดเตพ (SAST) เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดฌเตเดเตโเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต เด เดตเดฏเตเดฒเตเดฒเดพเด เดถเดฐเดพเดถเดฐเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต. เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเดคเตเดฒเตเดฒเดพเด เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฏเตเด เด เดคเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏเดเดณเตเดฏเตเด เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เด เดคเตเดชเตเดฒเต เดคเดจเตเดจเต เด เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏเดเตพ เดตเดฟเดถเดเดฒเดจ เดจเดฟเดฏเดฎเดเตเดเตพ เดเดคเตเดฐเดคเตเดคเตเดณเด เดเตพเดเตเดเตเดณเตเดณเตเดจเตเดจเต เดเดจเตเดจเดคเดฟเดจเต เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดเดจเตเดฑเต เด เดญเดฟเดชเตเดฐเดพเดฏเดคเตเดคเดฟเตฝ, เดเดฐเต SAST เดเตเตพ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเดฎเตเดชเตเตพ เดเดฑเตเดฑเดตเตเด เดชเตเดฐเดงเดพเดจเดชเตเดชเตเดเตเด เดเดฐเต เดฎเดพเดจเดฆเดฃเตเดกเด เดจเดฟเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเดณเตเดเต เดชเตเดฐเดคเตเดฏเตเดเดคเดเดณเดฟเดฒเตเดเตเดเต เด เดคเต เดเดเตเดเดพเดจเตเดธเตเดคเดฎเดพเดเตเดเดพเดจเตเดณเตเดณ เดเดดเดฟเดตเดพเดฃเต, เด เดคเดพเดฏเดคเต, เดตเดฟเดถเดเดฒเดจ เดจเดฟเดฏเดฎเดเตเดเตพ เดเดดเตเดคเตเดเดฏเตเด เดฎเดพเดฑเตเดฑเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด เด เดฒเตเดฒเตเดเตเดเดฟเตฝ, เด เดต เดชเดฒเดชเตเดชเตเดดเตเด เดตเดฟเดณเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดเดทเตโเดเดพเดจเตเดธเตเดค เด เดจเตเดตเตเดทเดฃเดเตเดเตพ.
เดเดเตเดเตพ เดฎเดฟเดเตเดเดชเตเดชเตเดดเตเด เดเตเดเตเดเตเดฎเดพเตผเดเตเดธเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต - เดตเดณเดฐเต เดฐเดธเดเดฐเดตเตเด เดถเดเตเดคเดตเตเดฎเดพเดฏ เดเตเดกเต เด เดจเดฒเตเดธเตผ. เด เดฒเตเดเดจเดคเตเดคเดฟเตฝ เดเดพเตป เด เดคเดฟเดจเดพเดฏเดฟ เดตเดฟเดถเดเดฒเดจ เดจเดฟเดฏเดฎเดเตเดเตพ เดเดดเตเดคเดฟเดฏเดคเดฟเดจเตเดฑเต เด เดจเตเดญเดตเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเต เดธเดเดธเดพเดฐเดฟเดเตเดเตเด.
เดเดณเตเดณเดเดเตเด เดชเดเตเดเดฟเด
-
เดคเตเดเดเตเดเดเตเดเดพเตผเดเตเดเตเดณเตเดณ "เดจเดฟเดเดฃเตเดเต" -
เดฒเดฟเดธเตเดฑเตเดฑเตเดเดณเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ -
เดเดฃเตเดเตเดคเตเดคเดฟเดฏ เดเดฒเตเดฒเดพ เดตเดธเตเดคเตเดเตเดเดณเตเด -
เดซเตเดฒเต เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ -
เดซเดฏเดฒเดฟเดจเตเดฑเต เดชเตเดฐเต/เดชเดพเดคเตเดคเต เดฒเดญเดฟเดเตเดเตเดจเตเดจเต
-
-
เดชเตเดฐเดถเตโเดจเด เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดจเตเดจเต
เดเตปเดเตเดฐเดฟ
เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเตเดเตเดเตเดฎเดพเตผเดเตโเดธเดฟเดจเดพเดฏเดฟ เดเตเดฆเตเดฏเดเตเดเตพ เดเดดเตเดคเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดธเดตเดฟเดถเตเดทเดคเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดฑเดทเตเดฏเตป เดญเดพเดทเดฏเดฟเดฒเตเดณเตเดณ เดเตเดฑเดเตเดเต เดฒเตเดเดจเดเตเดเดณเดฟเตฝ เดเดจเตเดจเต เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเดพเตป เดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเต. เดเดคเต 2019 เด
เดตเดธเดพเดจเด เดนเดฌเตเดฐเต เดเดจเตเดจ เดชเตเดฐเดฟเตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเตเดเดฐเดฟเดเตเดเต:
เดเดฟเดฒ เดเตเดธเตเดฑเตเดฑเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเดพเดฏเดฟ CxQL-เตฝ (Checkmarx Query Language) เดเดฆเตเดฏ เดเตเดฆเตเดฏเดเตเดเตพ เดเดเตเดเดจเต เดเดดเตเดคเดพเดฎเตเดจเตเดจเต เดเดคเต เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดตเดฟเดถเดเดฒเดจ เดจเดฟเดฏเดฎเดเตเดเตพ เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจเดคเดฟเดจเตเดฑเต เด เดเดฟเดธเตเดฅเดพเดจ เดคเดคเตเดตเดเตเดเตพ เดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต.
เด เดคเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดเดพเตป เดเดตเตผเดคเตเดคเดฟเดเตเดเดฟเดฒเตเดฒ, เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด เดเดฟเดฒ เดเดตเดฒเดเตพ เดเดชเตเดชเตเดดเตเด เดเดฃเตเดเดพเดฏเดฟเดฐเดฟเดเตเดเตเด. เดเดจเตเดฑเต เดฒเตเดเดจเดคเตเดคเดฟเตฝ, เดเตเดเตเดเตเดฎเดพเตผเดเตเดธเตเดฎเดพเดฏเตเดณเตเดณ เดเดจเตเดฑเต เดเตเดฒเดฟเดฏเดฟเตฝ เดเดพเตป เดจเตเดฐเดฟเดเตเด เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดชเตเดฐเดถเตเดจเดเตเดเตพเดเตเดเตเดณเตเดณ เดชเดฐเดฟเดนเดพเดฐเดเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต "เดชเดพเดเดเดเตเดเดณเตเดเต เดถเตเดเดฐเด" เดธเดฎเดพเดนเดฐเดฟเดเตเดเดพเตป เดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเตเด. เด เดชเตเดฐเดถเตโเดจเดเตเดเดณเดฟเตฝ เดชเดฒเดคเดฟเดฒเตเด เดเดจเดฟเดเตเดเต เดเดจเตเดฑเต เดฎเดธเตเดคเดฟเดทเตเดเดคเตเดคเต เดเดฒเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเดเดฟเดตเดจเตเดจเต. เดเดฟเดฒเดชเตเดชเตเตพ เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเดจเดฟเตฝ เดฎเดคเดฟเดฏเดพเดฏ เดตเดฟเดตเดฐเดเตเดเตพ เดเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดเดฟเดฒเดชเตเดชเตเตพ เดเดตเดถเตเดฏเดฎเตเดณเตเดณเดคเต เดเดเตเดเดจเต เดเตเดฏเตเดฏเดฃเดฎเตเดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเดเตเดเดพเตป เดชเตเดฒเตเด เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดเดจเตเดฑเต เด เดจเตเดญเดตเดตเตเด เดเดฑเดเตเดเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดฐเดพเดคเตเดฐเดฟเดเดณเตเด เดตเตเดฑเตเดคเตเดฏเดพเดเดฟเดฒเตเดฒเตเดจเตเดจเต เดเดพเตป เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เด "เดเดทเตโเดเดพเดจเตเดธเตเดค เด เดจเตเดตเตเดทเดฃ เดชเดพเดเดเดเตเดเตเดฑเดฟเดชเตเดชเตเดเดณเตเดเต เดถเตเดเดฐเด" เดจเดฟเดเตเดเดณเต เดเตเดฑเดเตเดเต เดฎเดฃเดฟเดเตเดเตเดฑเตเดเดณเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเตเดฑเดเตเดเต เดจเดพเดกเตเดเตเดถเดเตเดเดณเต เดธเดเดฐเดเตเดทเดฟเดเตเดเตเด. เด เดคเดฟเดจเดพเตฝ, เดจเดฎเตเดเตเดเต เดเดฐเดเดญเดฟเดเตเดเดพเด!
เดจเดฟเดฏเดฎเดเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดชเตเดคเตเดตเดพเดฏ เดตเดฟเดตเดฐเดเตเดเตพ
เดเดฆเตเดฏเด, เด เดเตเดคเตเดคเดคเดพเดฏเดฟ เดเดจเตเดคเต เดธเดเดญเดตเดฟเดเตเดเตเด เดเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดฎเดฟเดเดเตเด เดงเดพเดฐเดฃเดฏเตเดเตเดเดพเดฏเดฟ, เดเตเดฑเดเตเดเต เด เดเดฟเดธเตเดฅเดพเดจ เดเดถเดฏเดเตเดเดณเตเด เดจเดฟเดฏเดฎเดเตเดเดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเตเด เดจเตเดเตเดเดพเด. เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเตป เดเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดจเตเดจเตเด เดชเดฑเดฏเตเดจเตเดจเดฟเดฒเตเดฒ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดเดจเดฏเดฟเตฝ เดตเดณเดฐเต เดตเตเดฏเดพเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด เดคเต เดตเดณเดฐเต เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดฎเดฒเตเดฒ.
-
เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดค เดชเตเดฐเตเดธเตเดฑเตเดฑเต (เดเดฐเต เดเตเดเตเดเด เดธเดเตเดต เดจเดฟเดฏเดฎเดเตเดเตพ) เด เดจเตเดธเดฐเดฟเดเตเดเต เดธเตเดเดพเดจเดฟเดเดเต เดธเดฎเดฏเดคเตเดคเต เดจเดฟเดฏเดฎเดเตเดเตพ เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดจเดฟเดเตเดเตพเดเตเดเต เดชเดฐเดฟเดงเดฟเดฏเดฟเดฒเตเดฒเดพเดคเตเดค เดชเตเดฐเตเดธเตเดฑเตเดฑเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เด เดต เดเดเตเดเดจเต เดฐเตเดชเดชเตเดชเตเดเตเดคเตเดคเดฃเด เดเดจเตเดจเดคเต เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเตเดเต เดชเตเดฐเดคเตเดฏเตเดเดคเดเดณเต เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดจเดฟเดเตเดเตพเดเตเดเต เด เดตเดฏเต เดญเดพเดท เด เดจเตเดธเดฐเดฟเดเตเดเต เดเตเดฐเตเดชเตเดชเตเดเตเดฏเตเดฏเดพเด เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฐเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเด เดชเตเดฐเตเดธเตเดฑเตเดฑเตเดเตพ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเดพเด. เดธเดเตเดตเดฎเดพเดฏ เดจเดฟเดฏเดฎเดเตเดเดณเตเดเต เดเดฃเตเดฃเด เดธเตเดเดพเดจเดฟเดเดเดฟเดจเตเดฑเต เดตเตเดเดคเดฏเตเดฏเตเด เดเตเดคเตเดฏเดคเดฏเตเดฏเตเด เดฌเดพเดงเดฟเดเตเดเตเดจเตเดจเต.
เดเตเดเตเดเตเดฎเดพเตผเดเตเดธเต เดเดจเตเดฑเตผเดซเตเดธเดฟเตฝ เดชเตเดฐเตเดธเตเดฑเตเดฑเต เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต
-
CxAuditor เดเดจเตเดจ เดชเตเดฐเดคเตเดฏเตเด เดเตเดณเดฟเดฒเดพเดฃเต เดจเดฟเดฏเดฎเดเตเดเตพ เดเดกเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต. เดเตเดเตเดเตเดฎเดพเตผเดเตเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดธเตเตผเดตเดฑเดฟเดฒเตเดเตเดเต เดเดฃเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจ เดเดฐเต เดกเตเดธเตเดเตเดเตเดชเตเดชเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดพเดฃเดฟเดคเต. เด เดเดชเดเดฐเดฃเดคเตเดคเดฟเดจเต เดฐเดฃเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดจ เดฐเตเดคเดฟเดเดณเตเดฃเตเดเต: เดจเดฟเดฏเดฎเดเตเดเตพ เดเดกเดฟเดฑเตเดฑเตเดเตเดฏเตเดฏเดฒเตเด เดเดคเดฟเดจเดเด เดจเดเดคเตเดคเดฟเดฏ เดธเตเดเดพเดจเดฟเดจเตเดฑเต เดซเดฒเดเตเดเตพ เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเดฒเตเด.
CxAudit เดเดจเตเดฑเตผเดซเตเดธเต
-
เดเตเดเตเดเตเดฎเดพเตผเดเตโเดธเดฟเดฒเต เดจเดฟเดฏเดฎเดเตเดเตพ เดญเดพเดทเดฏเดจเตเดธเดฐเดฟเดเตเดเต เดตเดฟเดญเดเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เด เดคเดพเดฏเดคเต, เดเดฐเต เดญเดพเดทเดฏเตเดเตเดเตเด เด เดคเดฟเดจเตเดฑเตเดคเดพเดฏ เดเตเดฆเตเดฏเดเตเดเดณเตเดฃเตเดเต. เดญเดพเดท เดชเดฐเดฟเดเดฃเดฟเดเตเดเดพเดคเต เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดเดฟเดฒ เดชเตเดคเต เดจเดฟเดฏเดฎเดเตเดเดณเตเด เดเดฃเตเดเต, เดเดตเดฏเดพเดฃเต เด เดเดฟเดธเตเดฅเดพเดจ เดเตเดฆเตเดฏเดเตเดเตพ เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเดต. เดฎเดฟเดเตเดเดตเดพเดฑเตเด, เด เดเดฟเดธเตเดฅเดพเดจ เด เดจเตเดตเตเดทเดฃเดเตเดเดณเดฟเตฝ เดฎเดฑเตเดฑเต เดจเดฟเดฏเดฎเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดตเดฟเดตเดฐเดเตเดเตพเดเตเดเดพเดฏเดฟ เดคเดฟเดฐเดฏเตเดจเตเดจเดคเต เดเตพเดชเตเดชเตเดเตเดจเตเดจเต.
เดญเดพเดท เด เดจเตเดธเดฐเดฟเดเตเดเต เดจเดฟเดฏเดฎเดเตเดเตพ เดตเดฟเดญเดเดฟเดเตเดเตเดจเตเดจเต
-
"เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเดฌเดฟเตพ", "เดจเตเตบ เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเดฌเดฟเตพ" (เดจเดฟเตผเดตเดนเดฟเดเตเดเดคเตเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเดคเตเดคเดคเตเด) เดเดจเตเดจเดฟเดตเดฏเดพเดฃเต เดจเดฟเดฏเดฎเดเตเดเตพ. เดคเดฟเดเดเตเดเตเด เดถเดฐเดฟเดฏเดพเดฏ เดชเตเดฐเดฒเตเดฒ, เดเดจเตเดฑเต เด เดญเดฟเดชเตเดฐเดพเดฏเดคเตเดคเดฟเตฝ, เดชเดเตเดทเต เด เดคเดพเดฃเต. "เดเดเตโเดธเดฟเดเตเดฏเตเดเตเดเดฌเดฟเตพ" เดจเดฟเดฏเดฎเดเตเดเตพ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดซเดฒเด เดฏเตเดเดฏเดฟเดฒเต เดธเตโเดเดพเตป เดซเดฒเดเตเดเดณเดฟเตฝ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดเตเดเตเด, เดฎเดฑเตเดฑเต เด เดญเตเดฏเตผเดคเตเดฅเดจเดเดณเดฟเตฝ เด เดตเดฏเตเดเต เดซเดฒเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเต "เดเดเตโเดธเดฟเดเตเดฏเตเดเตเดเดฌเดฟเตพ" เดจเดฟเดฏเดฎเดเตเดเตพ เดเดตเดถเตเดฏเดฎเตเดณเตเดณเต (เดธเดพเดฐเดพเดเดถเดคเตเดคเดฟเตฝ, เดเดฐเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดฎเดพเดคเตเดฐเด).
เดธเตเดทเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เดฑเตเตพ เดคเดฐเด เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเตเดจเตเดจเต
-
เดจเดฟเดเตเดเตพเดเตเดเต เดชเตเดคเดฟเดฏ เดจเดฟเดฏเดฎเดเตเดเตพ เดธเตเดทเตโเดเดฟเดเตเดเดพเดจเต เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณเดต เดธเดชเตเดฒเดฟเดฎเตเดจเตเดฑเต/เดฑเตเดฑเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดพเดจเต เดเดดเดฟเดฏเตเด. เดเดฐเต เดจเดฟเดฏเดฎเด เดฎเดพเดฑเตเดฑเดฟเดฏเตเดดเตเดคเดพเตป, เดจเดฟเดเตเดเตพ เด เดคเต เดเตเดฐเตเดฏเดฟเตฝ เดเดฃเตเดเตเดคเตเดคเตเดฃเตเดเดคเตเดฃเตเดเต, เดตเดฒเดคเต-เดเตเดฒเดฟเดเตเดเตเดเตเดฏเตเดคเต เดกเตเดฐเตเดชเตเดชเต-เดกเตเตบ เดฎเตเดจเตเดตเดฟเตฝ เดจเดฟเดจเตเดจเต "เดเดตเตผเดฑเตเดกเต" เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเด. เดชเตเดคเดฟเดฏ เดจเดฟเดฏเดฎเดเตเดเตพ เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ เดชเตเดฐเตเดธเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒเตเดจเตเดจเตเด เดธเดเตเดตเดฎเดฒเตเดฒเตเดจเตเดจเตเด เดเดตเดฟเดเต เดเตผเดฎเตเดฎเดฟเดเตเดเตเดฃเตเดเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต. เด เดต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเดชเดเดฐเดฃเดคเตเดคเดฟเดฒเต "เดชเตเดฐเตเดธเตเดฑเตเดฑเต เดฎเดพเดจเตเดเตผ" เดฎเตเดจเตเดตเดฟเตฝ เดจเดฟเดเตเดเตพ เด เดต เดธเดเตเดตเดฎเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดฎเดพเดฑเตเดฑเดฟเดฏเตเดดเตเดคเดฟเดฏ เดจเดฟเดฏเดฎเดเตเดเตพ เด เดตเดฏเตเดเต เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเตพ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเตเดจเตเดจเต, เด เดคเดพเดฏเดคเต, เดฑเตเตพ เดธเดเตเดตเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเตเดเตเดเดฟเตฝ, เด เดคเต เด เดเตเดเดจเต เดคเดจเตเดจเต เดจเดฟเดฒเดจเดฟเตฝเดเตเดเตเดเดฏเตเด เดเดเดจเดเดฟ เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด.
เดชเตเดฐเตเดธเตเดฑเตเดฑเต เดฎเดพเดจเตเดเตผ เดเดจเตเดฑเตผเดซเตเดธเดฟเดฒเต เดเดฐเต เดชเตเดคเดฟเดฏ เดจเดฟเดฏเดฎเดคเตเดคเดฟเดจเตเดฑเต เดเดฆเดพเดนเดฐเดฃเด
-
เดจเดฟเตผเดตเตเดตเดนเดฃ เดธเดฎเดฏเดคเตเดคเต, เด เดญเตเดฏเตผเดคเตเดฅเดจเดเดณเตเดเต เดเดฐเต "เดฎเดฐเด" เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต, เด เดคเต เดเดจเตเดคเดฟเดจเต เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดตเดฟเดตเดฐเดเตเดเตพ เดถเตเดเดฐเดฟเดเตเดเตเดจเตเดจ เดจเดฟเดฏเดฎเดเตเดเตพ เดเดฆเตเดฏเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต, เด เดคเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดตเตผ เดฐเดฃเตเดเดพเดฎเดคเต. เดเดเตเดธเดฟเดเตเดฏเตเดทเตป เดซเดฒเด เดเดพเดทเต เดเตเดฏเตโเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เด เดคเดฟเดจเดพเตฝ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เดเดฐเต เดฑเตเดณเดฟเดจเตเดฑเต เดซเดฒเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเตเดเตเดเดฟเตฝ, เด เดเตเดเดจเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต, เดเดคเต เดธเตเดเดพเดจเดฟเดเดเต เดธเดฎเดฏเด เดเตเดฑเดฏเตเดเตเดเตเด.
-
เดจเดฟเดฏเดฎเดเตเดเตพ เดตเตเดฏเดคเตเดฏเดธเตเดค เดคเดฒเดเตเดเดณเดฟเตฝ เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด:
-
เดฎเตเดดเตเดตเตป เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเด - เดเดคเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดจเตเดฑเตเดฏเตเด เดเดคเต เดธเตเดเดพเดจเดฟเดเดเดฟเดจเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเด
-
เดเตเด เดคเดฒเดคเตเดคเดฟเตฝ (เดเตเด) - เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดค เดเตเดฎเดฟเดฒเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเตพ เดธเตเดเดพเตป เดเตเดฏเตเดฏเดพเตป เดฎเดพเดคเตเดฐเดฎเต เดเดชเดฏเตเดเดฟเดเตเดเต.
-
เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดคเดฒเดคเตเดคเดฟเตฝ - เดเดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเตฝ เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเด
เดฑเตเตพ เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดฃเตเด เดฒเตเดตเตฝ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเตเดจเตเดจเต
เดคเตเดเดเตเดเดเตเดเดพเตผเดเตเดเตเดณเตเดณ "เดจเดฟเดเดฃเตเดเต"
เดเดจเดฟเดเตเดเต เดเตเดฆเตเดฏเดเตเดเตพเดเตเดเต เดเดพเดฐเดฃเดฎเดพเดฏ เดเตเดฑเดเตเดเต เดเดพเดฐเตเดฏเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดพเตป เดเดฐเดเดญเดฟเดเตเดเตเด, เดเตเดเดพเดคเต เดเตเดตเดฟเดคเดคเตเดคเต เดเดฃเตเดฏเดฎเดพเดฏเดฟ เดฒเดณเดฟเดคเดฎเดพเดเตเดเตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดธเดพเดเตเดเตเดคเดฟเด เดตเดฟเดฆเตเดฏเดเดณเตเด เดเดพเตป เดเดพเดฃเดฟเดเตเดเตเด.
เดฒเดฟเดธเตเดฑเตเดฑเตเดเดณเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ
- ะฒััะธัะฐะฝะธะต ะพะดะฝะพะณะพ ะธะท ะดััะณะพะณะพ (list2 - list1)
* ะฟะตัะตัะตัะตะฝะธะต ัะฟะธัะบะพะฒ (list1 * list2)
+ ัะปะพะถะตะฝะธะต ัะฟะธัะบะพะฒ (list1 + list2)
& (ะปะพะณะธัะตัะบะพะต ะ) - ะพะฑัะตะดะธะฝัะตั ัะฟะธัะบะธ ะฟะพ ัะพะฒะฟะฐะดะตะฝะธั (list1 & list2), ะฐะฝะฐะปะพะณะธัะฝะพ ะฟะตัะตัะตัะตะฝะธั (list1 * list2)
| (ะปะพะณะธัะตัะบะพะต ะะะ) - ะพะฑัะตะดะธะฝัะตั ัะฟะธัะบะธ ะฟะพ ัะธัะพะบะพะผั ะฟะพะธัะบั (list1 | list2)
ะกะพ ัะฟะธัะบะฐะผะธ ะฝะต ัะฐะฑะพัะฐะตั: ^ && || % /
เดเดฃเตเดเตเดคเตเดคเดฟเดฏ เดเดฒเตเดฒเดพ เดตเดธเตเดคเตเดเตเดเดณเตเด
เดธเตเดเดพเตป เดเตเดฏเตโเดค เดญเดพเดทเดฏเดฟเตฝ, เดเตเดเตเดเตโเดฎเดพเตผเดเตโเดธเต เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดเตเด เดเดฒเตเดฒเดพ เดเดเดเดเตเดเดณเตเดเตเดฏเตเด เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดจเดฟเดเตเดเตพเดเตเดเต เดฒเดญเดฟเดเตเดเตเด (เดธเตเดเตเดฐเดฟเดเดเตเดเตพ, เดซเดเดเตโเดทเดจเตเดเตพ, เดเตเดฒเดพเดธเตเดเตพ, เดฐเตเดคเดฟเดเตพ เดฎเตเดคเดฒเดพเดฏเดต). เดเดคเดฟเดฒเตเดเต เดเดเตโเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดเดฌเตโเดเดเตโเดฑเตเดฑเตเดเดณเตเดเต เดเดฟเดฒ เดธเตเดฅเดฒเดฎเดพเดฃเดฟเดคเต All
. เด
เดคเดพเดฏเดคเต, เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดชเตเดฐเตเดณเตเดณ เดเดฐเต เดตเดธเตเดคเตเดตเดฟเดจเดพเดฏเดฟ เดคเดฟเดฐเดฏเตเด searchMe
, เดจเดฟเดเตเดเตพเดเตเดเต เดคเดฟเดฐเดฏเดพเตป เดเดดเดฟเดฏเตเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดฃเตเดเตเดคเตเดคเดฟเดฏ เดเดฒเตเดฒเดพ เดเดฌเตโเดเดเตเดฑเตเดฑเตเดเดณเดฟเดฒเตเด เดชเตเดฐเต เดเดชเดฏเตเดเดฟเดเตเดเต:
// ะขะฐะบะพะน ะทะฐะฟัะพั ะฒัะดะฐัั ะฒัะต ัะปะตะผะตะฝัั
result = All;
// ะขะฐะบะพะน ะทะฐะฟัะพั ะฒัะดะฐัั ะฒัะต ัะปะตะผะตะฝัั, ะฒ ะธะผะตะฝะธ ะบะพัะพััั
ะฟัะธัััััะฒัะตั โsearchMeโ
result = All.FindByName("searchMe");
เดชเดเตเดทเต, เดเดฟเดฒ เดเดพเดฐเดฃเดเตเดเดณเดพเตฝ เดธเตเดเดพเดจเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒเดพเดคเตเดค เดฎเดฑเตเดฑเตเดฐเต เดญเดพเดทเดฏเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดคเดฟเดฐเดฏเดฃเดฎเตเดเตเดเดฟเตฝ (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดฐเต เดเตปเดกเตเดฐเตเดฏเดฟเดกเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดฒเต เดเตเดฐเตเดตเดฟ), เดเดฐเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดฟเดฒเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดเตเดเดณเตเดเต เดเดฌเตเดเดเตเดฑเตเดฑเต เดธเตเดชเตเดธเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด:
result = AllMembers.All.FindByName("searchMe");
เดซเตเดฒเต เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ
เด เดซเดเดเตโเดทเดจเตเดเตพ เดชเดฒ เดจเดฟเดฏเดฎเดเตเดเดณเดฟเดฒเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต, เด เดต เดเดจเตเดคเดพเดฃเต เด เตผเดคเตเดฅเดฎเดพเดเตเดเตเดจเตเดจเดคเต เดเดจเตเดจเดคเดฟเดจเตเดฑเต เดเดฐเต เดเตเดฑเดฟเดฏ เดเตเดฑเตเดฑเต เดทเตเดฑเตเดฑเต เดเดคเดพ:
// ะะฐะบะธะต ะดะฐะฝะฝัะต second ะฒะปะธััั ะฝะฐ first.
// ะััะณะธะผะธ ัะปะพะฒะฐะผะธ - ะขะ (second) ััะพ ะฒะปะธัะตั ะฝะฐ ะะะะฏ (first).
result = first.DataInfluencedBy(second);
// ะะฐะบะธะต ะดะฐะฝะฝัะต first ะฒะปะธััั ะฝะฐ second.
// ะััะณะธะผะธ ัะปะพะฒะฐะผะธ - ะฏ (first) ะฒะปะธัั ะฝะฐ ะขะ (second).
result = first.DataInfluencingOn(second);
เดซเดฏเดฒเดฟเดจเตเดฑเต เดชเตเดฐเต/เดชเดพเดคเตเดคเต เดฒเดญเดฟเดเตเดเตเดจเตเดจเต
เดเดฐเต เด เดจเตเดตเตเดทเดฃเดคเตเดคเดฟเดจเตเดฑเต เดซเดฒเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดเตเดเตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดเดเตเดฐเดฟเดฌเตเดฏเตเดเตเดเตเดเตพ เดเดฃเตเดเต (เดเตปเดเตเดฐเดฟ เดเดฃเตเดเตเดคเตเดคเดฟเดฏ เดซเดฏเดฒเดฟเดจเตเดฑเต เดชเตเดฐเต, เดธเตเดเตเดฐเดฟเดเดเต เดฎเตเดคเดฒเดพเดฏเดต), เดเดจเตเดจเดพเตฝ เด เดต เดเดเตเดเดจเต เดจเตเดเดพเดฎเตเดจเตเดจเตเด เดเดชเดฏเตเดเดฟเดเตเดเดพเดฎเตเดจเตเดจเตเด เดกเตเดเตเดฏเตเดฎเตเดจเตเดฑเตเดทเตป เดชเดฑเดฏเตเดจเตเดจเดฟเดฒเตเดฒ. เด เดคเดฟเดจเดพเตฝ, เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพ LinePragma เดชเตเดฐเตเดชเตเดชเตผเดเตเดเดฟ เดเดเตเดธเดธเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต, เดเดเตเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดตเดธเตเดคเตเดเตเดเตพ เด เดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดธเตเดฅเดฟเดคเดฟเดเตเดฏเตเดฏเตเด:
// ะะปั ะฟัะธะผะตัะฐ ะฝะฐะนะดะตะผ ะฒัะต ะผะตัะพะดั
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);
เดเตเดฎเดคเดฒ: เดเดชเดเดฐเดฃเด เดชเตเดฐเดคเดฟเดเดฐเดฟเดเตเดเตเดจเตเดจ เดธเตเตปเดธเดฟเดฑเตเดฑเตเดตเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเด
เดชเดฐเดฟเดนเดพเดฐเด: เดเตเดเตเดเตเดฎเดพเตผเดเตเดธเดฟเดจเต เด เดเดฟเดธเตเดฅเดพเดจ เดจเดฟเดฏเดฎเดเตเดเดณเตเดฃเตเดเต, เด เดคเดฟเดจเตเดฑเต เดซเดฒเดเตเดเตพ เดฎเดฑเตเดฑเต เดจเดฟเดฐเดตเดงเดฟ เด เดจเตเดตเตเดทเดฃเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เด เดจเดฟเดฏเดฎเดเตเดเดณเดฟเตฝ เดเดฟเดฒเดคเต เดจเดฟเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเด เดกเดพเดฑเตเดฑเดฏเตเดฎเดพเดฏเดฟ เดธเดชเตเดฒเดฟเดฎเตเดจเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเตเดเต, เดจเดฟเดเตเดเดณเตเดเต เดธเตเดเดพเตป เดซเดฒเดเตเดเตพ เดเดเดจเดเดฟ เดฎเตเดเตเดเดชเตเดชเตเดเตเดคเตเดคเดพเดจเดพเดเตเด. เดจเดฟเดเตเดเตพ เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดเดฆเดพเดนเดฐเดฃ เดจเดฟเดฏเดฎเด เดเตเดตเดเตเดฏเตเดฃเตเดเต:
General_privacy_violation_list
เดธเตเตปเดธเดฟเดฑเตเดฑเตเดตเต เดตเดฟเดตเดฐเดเตเดเตพ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดเตเตผเดเตเดเดพเด:
// ะะพะปััะฐะตะผ ัะตะทัะปััะฐั ะฒัะฟะพะปะฝะตะฝะธั ะฑะฐะทะพะฒะพะณะพ ะฟัะฐะฒะธะปะฐ
result = base.General_privacy_violation_list();
// ะัะตะผ ัะปะตะผะตะฝัั, ะบะพัะพััะต ะฟะพะฟะฐะดะฐัั ะฟะพะด ะฟัะพัััะต ัะตะณัะปััะฝัะต ะฒััะฐะถะตะฝะธั. ะะพะถะฝะพ ะดะพะฟะพะปะฝะธัั ั
ะฐัะฐะบัะตัะฝัะผะธ ะดะปั ะฒะฐั ะฟะฐััะตัะฝะฐะผะธ.
CxList personalList = All.FindByShortNames(new List<string> {
"*securityToken*", "*sessionId*"}, false);
// ะะพะฑะฐะฒะปัะตะผ ะบ ะบะพะฝะตัะฝะพะผั ัะตะทัะปััะฐัั
result.Add(personalList);
เดเตเดฎเดคเดฒ: เดชเดพเดธเตโเดตเตเดกเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเด
เดชเดฐเดฟเดนเดพเดฐเด: เดเตเดกเดฟเดฒเต เดชเดพเดธเตโเดตเตเดกเตเดเตพ เดจเดฟเตผเดตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดจเดฟเดเตเดเดณเตเดเต เดเดฎเตเดชเดจเดฟเดฏเดฟเตฝ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เดชเตเดฐเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเตเตผเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เด เดเดฟเดธเตเดฅเดพเดจ เดจเดฟเดฏเดฎเด เดเดเดจเดเดฟ เดถเตเดฐเดฆเตเดงเดฟเดเตเดเดพเตป เดเดพเตป เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเตเดจเตเดจเต.
Password_privacy_violation_list
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");
}
}
เดเตเดเตเดเตเดฎเดพเตผเดเตโเดธเดฟเดจเดพเดฏเตเดณเตเดณ เดเดฐเต เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด เดเดคเดพ, เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑเดฏเตเดเตเดเตเดณเตเดณ เดเดเตโเดธเดฟเดฑเตเดฑเต เดชเตเดฏเดฟเดจเตเดฑเดพเดฏเดฟ เดคเดเดฟ เดฐเตเดคเดฟเดเตพ เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดจเดฟเตผเดตเดเดจเด เดเตเตผเดเตเดเดพเตป เดเดคเต เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเด:
FindAndroidOutputs
// ะะพะปััะฐะตะผ ัะตะทัะปััะฐั ะฒัะฟะพะปะฝะตะฝะธั ะฑะฐะทะพะฒะพะณะพ ะฟัะฐะฒะธะปะฐ
result = base.Find_Android_Outputs();
// ะะพะฟะพะปะฝัะตะผ ะฒัะทะพะฒะฐะผะธ, ะบะพัะพััะต ะฟัะธั
ะพะดัั ะธะท ะฑะธะฑะปะธะพัะตะบะธ Timber
CxList timber = All.FindByExactMemberAccess("Timber.*") +
All.FindByShortName("Timber").GetMembersOfTarget();
// ะะพะฑะฐะฒะปัะตะผ ะบ ะบะพะฝะตัะฝะพะผั ัะตะทัะปััะฐัั
result.Add(timber);
เดจเดฟเดเตเดเตพเดเตเดเต เด เดฏเตฝ เดฑเตเดณเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเดพเดจเตเด เดเดดเดฟเดฏเตเด, เดเดจเตเดจเดพเตฝ เดเดคเต Android-เตฝ เดฒเตเดเดฟเตป เดเตเดฏเตเดฏเตเดจเตเดจเดคเตเดฎเดพเดฏเดฟ เดจเตเดฐเดฟเดเตเดเต เดฌเดจเตเดงเดชเตเดชเตเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
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-เตฝ เดธเตเตปเดธเดฟเดฑเตเดฑเตเดตเต เดกเดพเดฑเตเดฑเดฏเตเดเตเดเดพเดฏเดฟ เดคเดฟเดฐเดฏเตเดจเตเดจเต
เดชเดฐเดฟเดนเดพเดฐเด: เดตเดฟเดตเดฟเดง เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเด เดฎเตเดฒเตเดฏเดเตเดเดณเตเด เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต iOS เดชเดฒเดชเตเดชเตเดดเตเด .plist เดตเดฟเดชเตเดฒเตเดเดฐเดฃเดคเตเดคเตเดเตเดเตเดเดฟเดฏ เดชเตเดฐเดคเตเดฏเตเด เดซเดฏเดฒเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เด เดซเดฏเดฒเตเดเดณเดฟเตฝ เดชเดพเดธเตโเดตเตเดกเตเดเตพ, เดเตเดเตเดเดฃเตเดเตพ, เดเตเดเตพ, เดฎเดฑเตเดฑเต เดธเตเตปเดธเดฟเดฑเตเดฑเตเดตเต เดกเดพเดฑเตเดฑ เดเดจเตเดจเดฟเดต เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ, เดเดพเดฐเดฃเด เด เดต เดเดชเดเดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดถเตโเดจเดเตเดเดณเตเดจเตเดจเตเดฎเดฟเดฒเตเดฒเดพเดคเต เดเดเตโเดธเตโเดเตเดฐเดพเดเตโเดฑเตเดฑเตเดเตเดฏเตเดฏเดพเดจเดพเดเตเด.
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 เดเตเดฐเดพเดซเดฟเดเตเดเดฟเดจเตเดฑเต เดเดชเดฏเตเดเด เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ Android-เตฝ เดเดฐเต เดเตเดฐเดฎเตเดเดฐเดฃเด เดเดฃเตเดเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดถเดฐเดฟเดฏเดพเดฏ เด
เดจเตเดตเตเดทเดฃเด เดเดเตเดเดจเตเดฏเดพเดฃเต:
// ะัะฐะฒะธะปัะฝัะน ะฒะฐัะธะฐะฝั ั ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ cxXPath
result = cxXPath.FindXmlAttributesByNameAndValue("*.xml", 8, "cleartextTrafficPermitted", "true", false, true);
เดเตเดฑเดเตเดเตเดเตเดเดฟ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดจเตเดเตเดเดพเด, เดเดฒเตเดฒเดพ เดซเดเดเตโเดทเดจเตเดเตพเดเตเดเตเดฎเตเดณเตเดณ เดตเดพเดเตเดฏเดเดเดจ เดธเดฎเดพเดจเดฎเดพเดฏเดคเดฟเดจเดพเตฝ, เดจเดฟเดเตเดเตพ เดเดฐเตเดฃเตเดฃเด เดเดฃเตเดเตเดคเตเดคเดฟเดเตเดเดดเดฟเดเตเดเดพเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณเดคเต เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เด เดคเดฟเดจเดพเตฝ, เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เด เดจเตเดธเดฐเดฟเดเตเดเต เดคเตเดเตผเดเตเดเดฏเดพเดฏเดฟ:
-
"*.xml"
- เดคเดฟเดฐเดฏเตเดฃเตเด เดซเดฏเดฒเตเดเดณเตเดเต เดฎเดพเดธเตเดเต -
8
- เดจเดฟเดฏเดฎเด เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดญเดพเดทเดฏเตเดเต เดเดกเดฟ -
"cleartextTrafficPermitted"
- xml-เตฝ เดเดเตเดฐเดฟเดฌเตเดฏเตเดเตเดเต เดจเดพเดฎเด -
"true"
- เด เดเดเตเดฐเดฟเดฌเตเดฏเตเดเตเดเดฟเดจเตเดฑเต เดฎเตเดฒเตเดฏเด -
false
- เดคเดฟเดฐเดฏเตเดฎเตเดชเตเตพ เดชเดคเดฟเดตเต เดชเดฆเดชเตเดฐเดฏเตเดเดคเตเดคเดฟเดจเตเดฑเต เดเดชเดฏเตเดเด -
true
โ เด เตผเดคเตเดฅเดฎเดพเดเตเดเตเดจเตเดจเดคเต, เดเตเดธเต เด เดตเดเดฃเดฟเดเตเดเดพเดฃเต, เด เดคเดพเดฏเดคเต, เดเตเดธเต-เดเตปเดธเตเตปเดธเดฟเดฑเตเดฑเตเดตเต เด เดฒเตเดฒเดพเดคเตเดคเดคเต
เดเดฐเต เดเดฆเดพเดนเดฐเดฃเดฎเตเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ, เดธเตเดฐเดเตเดทเดพ เดตเตเดเตเดทเดฃเดเตเดฃเดฟเตฝ เดจเดฟเดจเตเดจเต, HTTP เดชเตเดฐเตเดเตเดเตเดเตเดเตเตพ เดตเดดเดฟ เดธเตเตผเดตเดฑเตเดฎเดพเดฏเดฟ เดเดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ Android-เดฒเต เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เดเดฃเดเตเดทเตป เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเตพ เดคเตเดฑเตเดฑเดพเดฃเตเดจเตเดจเต เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดฏเตเดจเตเดจ เดเดฐเต เดจเดฟเดฏเดฎเด เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต. เดเดฐเต เดเดเตเดฐเดฟเดฌเตเดฏเตเดเตเดเต เด
เดเดเตเดเตเดจเตเดจ เดเดฐเต เดเตเดฐเดฎเตเดเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต เดเดฆเดพเดนเดฐเดฃเด 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>
เดเตเดฎเดคเดฒ: เดซเดฏเดฒเดฟเดจเตเดฑเต เดชเตเดฐเต/เดชเดพเดคเตเดคเต เดชเตเดฐเดเดพเดฐเด เดซเดฒเดเตเดเตพ เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเตเดเตเดคเตเดคเตเด
เดชเดฐเดฟเดนเดพเดฐเด: Android-เดจเดพเดฏเตเดณเตเดณ เดเดฐเต เดฎเตเดฌเตเตฝ เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเด เดตเดฒเดฟเดฏ เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเดณเดฟเดฒเตเดจเตเดจเดฟเตฝ, เด
เดตเตเดฏเดเตเดคเดค เดเตเดฐเดฎเตเดเดฐเดฃเด เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเตเดจเตเดจ เดจเดฟเดฏเดฎเดคเตเดคเดฟเดจเตเดฑเต เดคเตเดฑเตเดฑเดพเดฏ เดชเตเดธเดฟเดฑเตเดฑเตเดตเตเดเตพ เดเดเตเดเตพ เดจเตเดฐเดฟเดเตเดเต. เดฑเตเตพ เดเดเตเดเต เดเดซเต เดฆเดฟ เดฌเตเดเตเดธเต เดซเดฏเดฒเดฟเตฝ เดคเดฟเดฐเดฏเตเดจเตเดจเต เดเดจเตเดจเดคเดพเดฃเต เดตเดธเตเดคเตเดค 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);
}
}
}
เด เดธเดฎเตเดชเดจเด เดคเดฟเดเดเตเดเตเด เดธเดพเตผเดตเดคเตเดฐเดฟเดเดตเตเด Android เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดซเดฏเดฒเดฟเดจเตเดฑเต เดซเดฒเดฎเดพเดฃเต เดเดจเตเดจเต เดจเดฟเดเตเดเตพ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเตเดฃเตเด เดฎเดฑเตเดฑเต เดธเดจเตเดฆเตผเดญเดเตเดเดณเดฟเดฒเตเด เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดเตเด.
เดเตเดฎเดคเดฒ: เดตเดพเดเตเดฏเดเดเดจ เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฐเต เดฎเตเดจเตเดจเดพเด เดเดเตเดทเดฟ เดฒเตเดฌเตเดฐเดฑเดฟเดเตเดเต เดชเดฟเดจเตเดคเตเดฃ เดเตเตผเดเตเดเตเด
เดชเดฐเดฟเดนเดพเดฐเด: เดเตเดกเต เดเดดเตเดคเตเดจเตเดจ เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดตเดฟเดตเดฟเดง เดเดเตเดเดเตเดเตเดเตเดเดณเตเดเต เดเดฃเตเดฃเด เดเดพเตผเดเตเดเตเดเตพเดเตเดเต เดชเตเดฑเดคเตเดคเดพเดฃเต. เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเตเดเตเดเตเดฎเดพเตผเดเตเดธเดฟเดจเต เด เดตเดฐเตเดเต เด เดธเตเดคเดฟเดคเตเดตเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เด เดฑเดฟเดฏเดฟเดฒเตเดฒ, เดเดฟเดฒ เดฐเตเดคเดฟเดเตพ เด เดเดเตเดเดเตเดเตเดเดฟเตฝ เดชเตเดฐเดคเตเดฏเตเดเดฎเดพเดฏเดฟ เดเตพเดชเตเดชเตเดเตเดเดคเดพเดฃเตเดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดพเตป เด เดคเดฟเดจเต เดชเด เดฟเดชเตเดชเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต เดเดเตเดเดณเตเดเต เดเตเดฎเดคเดฒ. เดเดเตเดเดเตเดเตเดเตเดเตพ เดตเดณเดฐเต เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฏ เดซเดเดเตโเดทเตป เดชเตเดฐเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเตเด เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดฒเตเดฌเตเดฐเดฑเดฟเดฏเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเตเดณเดฟเดจเตเดฑเต เดฌเดจเตเดงเด เด เดตเตเดฏเดเตเดคเดฎเดพเดฏเดฟ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดพเดคเตเดคเดคเตเด เดเดฟเดฒเดชเตเดชเตเตพ เดเดคเต เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดเตเดเตเดจเตเดจเต.
เด เดคเตเดคเดฐเด เดฒเตเดฌเตเดฐเดฑเดฟเดเดณเตเดเต เดตเดพเดเตเดฏเดเดเดจ เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดถเดฐเดฟเดฏเดพเดฏเดฟ เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดฏเดชเตเดชเตเดเตเดจเตเดจเดฟเดฒเตเดฒ เดเดจเตเดจเดคเดพเดฃเต เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเต, เดเตเดเดพเดคเต เดงเดพเดฐเดพเดณเด เดคเตเดฑเตเดฑเดพเดฏ เดชเตเดธเดฟเดฑเตเดฑเตเดตเตเดเตพ เดฒเดญเดฟเดเตเดเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเตพ เดชเดฐเตเดเตเดทเดฃเด เดจเดเดคเตเดคเตเดฃเตเดเดคเตเดฃเตเดเต. เดธเตเดเดพเดจเดฟเดเดเต เดเตเดคเตเดฏเดค เดฎเตเดเตเดเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเด เดชเตเดฐเดถเตเดจเด เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดจเดฟเดฐเดตเดงเดฟ เดเดชเตเดทเดจเตเดเตพ เดเดฃเตเดเต:
-
เดเดฆเตเดฏ เดเดชเตเดทเตป, เดฒเตเดฌเตเดฐเดฑเดฟ เดเดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโเด เดชเตเดฐเตเดเดเตโเดฑเตเดฑเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดจเตเดจเตเด เดเตเด เดคเดฒเดคเตเดคเดฟเตฝ เดจเดฟเดฏเดฎเด เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเดฎเตเดจเตเดจเตเด เดเดเตเดเตพเดเตเดเต เดเดฑเดชเตเดชเดพเดฏเตเด เด เดฑเดฟเดฏเดพเด. เดเดจเตเดจเดพเตฝ เดเตเด เดฎเดฑเตเดฑเตเดฐเต เดธเดฎเตเดชเดจเด เดธเตเดตเตเดเดฐเดฟเดเตเดเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเตเดเดฏเต เดซเดเดเตโเดทเตป เดชเตเดฐเตเดเตพ เดเดตเตผเดฒเดพเดชเตเดชเต เดเตเดฏเตเดฏเตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดฒเตเดฌเตเดฐเดฑเดฟเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดเดฏเต เดเตเดฏเตโเดคเดพเตฝ, เดจเดฟเดฐเดตเดงเดฟ เดคเตเดฑเตเดฑเดพเดฏ เดชเตเดธเดฟเดฑเตเดฑเตเดตเตเดเดณเตเดเต เดตเดณเดฐเต เดฎเดจเตเดนเดฐเดฎเดฒเตเดฒเดพเดคเตเดค เดเดฟเดคเตเดฐเด เดจเดฎเตเดเตเดเต เดฒเดญเดฟเดเตเดเตเด.
-
เดฒเตเดฌเตเดฐเดฑเดฟ เดตเตเดฏเดเตเดคเดฎเดพเดฏเดฟ เดเดฑเดเตเดเตเดฎเดคเดฟ เดเตเดฏเตเดค เดซเดฏเดฒเตเดเตพเดเตเดเดพเดฏเดฟ เดคเดฟเดฐเดฏเตเด เดเดจเตเดจเดคเดพเดฃเต เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดเดชเตเดทเตป. เด เดธเดฎเตเดชเดจเดคเตเดคเดฟเดฒเตเดเต, เดจเดฎเตเดเตเดเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดฒเตเดฌเตเดฐเดฑเดฟ เด เดซเดฏเดฒเดฟเตฝ เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดจเตเดจเต เดเดฑเดชเตเดชเดฟเดเตเดเดพเด.
-
เดฎเตเดเดณเดฟเดฒเตเดณเตเดณ เดฐเดฃเตเดเต เดธเดฎเตเดชเดจเดเตเดเดณเตเด เดเดฐเตเดฎเดฟเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต เดฎเตเดจเตเดจเดพเดฎเดคเตเดคเต เดเดชเตเดทเตป.
เดเดฐเต เดเดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ, เดเดเตเดเตเดเดฟเดฏ เดธเตผเดเตเดเดฟเดณเตเดเดณเดฟเตฝ เด
เดฑเดฟเดฏเดชเตเดชเตเดเตเดจเตเดจ เดเดฐเต เดฒเตเดฌเตเดฐเดฑเดฟ เดจเตเดเตเดเดพเด $
, เดเดคเต เดฎเตเตปเดเตเดเตเดเดฟ เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเดฟเดฏ SQL เด
เดจเตเดตเตเดทเดฃเดคเตเดคเดฟเดฒเตเดเตเดเต เดกเดพเดฑเตเดฑเดฏเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเตเดจเตเดจเต. เด
เดคเดพเดฏเดคเต, เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดเดคเต เดเดพเดตเดฏเดฟเตฝ เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเดฟเดฏ เดชเตเดฐเดธเตเดคเดพเดตเดจเดฏเตเดเต เดจเตเดฐเดฟเดเตเดเตเดณเตเดณ เด
เดจเดฒเตเดเต เดเดฃเต. เดชเดเตเดทเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฒเดจเดพเดคเตเดฎเดเดฎเดพเดฏเดฟ เดเดฐเต 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 เดธเดฎเตเดชเตเดฐเดฆเดพเดฏเดเตเดเดณเตเดเต เดธเดเดฏเตเดเดจเด, เด เดชเดเดเดธเดพเดงเตเดฏเดคเดฏเต เดเตเดทเดฃเด เดเตเดฏเตเดฏเตเดจเตเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดเตเดกเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒเตเดจเตเดจเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดพเตป เดธเดนเดพเดฏเดฟเดเตเดเตเด.
เดเดจเตเดจเดพเตฝ เดเดฟเดฒเดชเตเดชเตเตพ, เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเต เดเดพเดตเดพเดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเดฐเดฟเดเดฃเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดเดคเต เดคเดฟเดเดเตเดเตเด เดจเดฟเดธเตเดธเดพเดฐเดฎเดพเดฏ เดเดฐเต เดเตเดฒเดฟ เดเดฏเดฟเดฐเดฟเดเตเดเดฟเดฒเตเดฒ. เดเดเดเดคเตเดคเดฟเดฒเต เดเตเดเตเดชเดพเดเตเดเดณเตเดเต เดเดฆเดพเดนเดฐเดฃเด เดเดชเดฏเตเดเดฟเดเตเดเต, เดเดฐเตเดชเดเตเดทเต เด
เดจเตเดฏเตเดเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดเดฐเต เดชเดฐเดฟเดนเดพเดฐเดฎเดพเดฃเต เดเตเดตเดเตเดฏเตเดณเตเดณเดคเต, เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต 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