人人农场 renren 外挂 Java 实现
来源:互联网 发布:讲解内核源码实现的书 编辑:程序博客网 时间:2024/05/08 10:09
看过《被偷无奈写个收菜外挂》 http://www.iteye.com/topic/692028
建议大家不要偷菜,因为偷菜如果遇到有狗的、有蜜蜂的将会失掉非常多的金币,本人以前的程序就有此功能,后来给删除了,
先交上java程序,供大家享用,
程序中添加了验证码功能,每隔5分钟收割一次。
MainFrame.java
/* * To change this template, choose Tools | Templates * and open the template in the editor. *//* * MainFrame.java * * Created on Oct 10, 2011, 12:22:32 PM */package com.myproj.renren3g_threads_2;import java.awt.Image;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.Date;import java.util.List;import java.util.logging.Level;import java.util.logging.Logger;import javax.imageio.ImageIO;import javax.swing.ButtonGroup;import javax.swing.ImageIcon;import javax.swing.JLabel;import javax.swing.JRadioButton;/** * * @author User */public class MainFrame extends java.awt.Frame implements Runnable { private User currentUser; private boolean verifyCodeFlag; private String verifyCode; private Renren3G_Farm renren; private ByteArrayOutputStream bais; private Thread thread; private int actionCounter; private boolean pauseFlag; /** Creates new form MainFrame */ public MainFrame() { } public void init() { initComponents(); currentUser = new User(); renren = new Renren3G_Farm(); renren.setTextArea(outputTextArea); // actionCounter = 0; counterField.setText("" + actionCounter); pauseFlag = false; pauseButton.setSelected(pauseFlag); // redraw layout gifPanel.setVisible(false); validate(); repaint(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { basePanel = new javax.swing.JPanel(); usersPanel = new javax.swing.JPanel(); jSeparator1 = new javax.swing.JSeparator(); loginPanel = new javax.swing.JPanel(); userPanel = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); usernameTextField = new javax.swing.JTextField(); passwordPanel = new javax.swing.JPanel(); jLabel2 = new javax.swing.JLabel(); passwordTextField = new javax.swing.JTextField(); gifPanel = new javax.swing.JPanel(); jPanel2 = new javax.swing.JPanel(); imgPanel = new javax.swing.JPanel(); refreshImgButton = new javax.swing.JButton(); jSeparator3 = new javax.swing.JSeparator(); dbImgPanel = new javax.swing.JPanel(); jLabel4 = new javax.swing.JLabel(); dbImgTextField = new javax.swing.JTextField(); jLabel5 = new javax.swing.JLabel(); dbCodeTextField = new javax.swing.JTextField(); jPanel3 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); verifyTextField = new javax.swing.JTextField(); dbUpdateButton = new javax.swing.JButton(); jPanel1 = new javax.swing.JPanel(); loginButton = new javax.swing.JButton(); jPanel4 = new javax.swing.JPanel(); jLabel6 = new javax.swing.JLabel(); counterField = new javax.swing.JTextField(); pauseButton = new javax.swing.JToggleButton(); jSeparator2 = new javax.swing.JSeparator(); textPanel = new javax.swing.JPanel(); textScrollPane = new javax.swing.JScrollPane(); outputTextArea = new javax.swing.JTextArea(); exitButton = new javax.swing.JButton(); setMinimumSize(new java.awt.Dimension(500, 600)); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(java.awt.event.WindowEvent evt) { exitForm(evt); } }); basePanel.setLayout(new javax.swing.BoxLayout(basePanel, javax.swing.BoxLayout.Y_AXIS)); usersPanel.setLayout(new javax.swing.BoxLayout(usersPanel, javax.swing.BoxLayout.Y_AXIS)); basePanel.add(usersPanel); basePanel.add(jSeparator1); loginPanel.setLayout(new javax.swing.BoxLayout(loginPanel, javax.swing.BoxLayout.Y_AXIS)); userPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); jLabel1.setText("Username"); userPanel.add(jLabel1); usernameTextField.setColumns(25); usernameTextField.setMinimumSize(new java.awt.Dimension(6, 200)); usernameTextField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { usernameTextFieldActionPerformed(evt); } }); userPanel.add(usernameTextField); loginPanel.add(userPanel); passwordPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); jLabel2.setText("Password"); passwordPanel.add(jLabel2); passwordTextField.setColumns(25); passwordTextField.setMinimumSize(new java.awt.Dimension(6, 200)); passwordPanel.add(passwordTextField); loginPanel.add(passwordPanel); gifPanel.setLayout(new javax.swing.BoxLayout(gifPanel, javax.swing.BoxLayout.Y_AXIS)); jPanel2.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); jPanel2.add(imgPanel); refreshImgButton.setText("Refresh"); refreshImgButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { refreshImgButtonActionPerformed(evt); } }); jPanel2.add(refreshImgButton); jSeparator3.setOrientation(javax.swing.SwingConstants.VERTICAL); jPanel2.add(jSeparator3); jPanel2.add(dbImgPanel); jLabel4.setText("Size"); jPanel2.add(jLabel4); dbImgTextField.setColumns(6); dbImgTextField.setEditable(false); jPanel2.add(dbImgTextField); jLabel5.setText("Verify Code"); jPanel2.add(jLabel5); dbCodeTextField.setColumns(6); dbCodeTextField.setEditable(false); jPanel2.add(dbCodeTextField); gifPanel.add(jPanel2); jPanel3.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); jLabel3.setText("Input Verify Code:"); jPanel3.add(jLabel3); verifyTextField.setColumns(6); jPanel3.add(verifyTextField); dbUpdateButton.setText("Update database"); dbUpdateButton.setEnabled(false); dbUpdateButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dbUpdateButtonActionPerformed(evt); } }); jPanel3.add(dbUpdateButton); gifPanel.add(jPanel3); loginPanel.add(gifPanel); jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT)); loginButton.setText("Login"); loginButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { loginButtonActionPerformed(evt); } }); jPanel1.add(loginButton); jPanel4.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.TRAILING)); jLabel6.setText("Action Count:"); jPanel4.add(jLabel6); jPanel1.add(jPanel4); counterField.setColumns(5); counterField.setText("jTextField1"); counterField.setEnabled(false); jPanel1.add(counterField); pauseButton.setText("Pause"); pauseButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { pauseButtonActionPerformed(evt); } }); jPanel1.add(pauseButton); loginPanel.add(jPanel1); basePanel.add(loginPanel); basePanel.add(jSeparator2); textPanel.setLayout(new java.awt.BorderLayout()); outputTextArea.setColumns(20); outputTextArea.setRows(5); textScrollPane.setViewportView(outputTextArea); textPanel.add(textScrollPane, java.awt.BorderLayout.CENTER); basePanel.add(textPanel); add(basePanel, java.awt.BorderLayout.CENTER); exitButton.setText("Exit"); exitButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { exitButtonActionPerformed(evt); } }); add(exitButton, java.awt.BorderLayout.SOUTH); pack(); }// </editor-fold> /** Exit the Application */ private void exitForm(java.awt.event.WindowEvent evt) { System.exit(0); } private void exitButtonActionPerformed(java.awt.event.ActionEvent evt) { System.exit(0); } private void usernameTextFieldActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } private void loginButtonActionPerformed(java.awt.event.ActionEvent evt) { // update user info. currentUser.setUsername(usernameTextField.getText()); currentUser.setPassword(passwordTextField.getText()); // clear output outputTextArea.setText("---- " + (new Date()).toString() + " ----\n"); verifyCode = verifyTextField.getText(); //outputTextArea.append("Verify code = '" + verifyCode + "'"); System.out.println("Verify code = '" + verifyCode + "'"); boolean firstTimeLogon; if (!verifyCodeFlag) { // first time, no verify image firstTimeLogon = renren.logon(currentUser); } else { // firstTimeLogon = renren.logon(currentUser, verifyCode); } //System.out.println("first time logon : " + firstTimeLogon); if (firstTimeLogon) { // login success thread.start(); } if (!firstTimeLogon) { // require verify code System.out.println("verify image url : " + renren.getVerifyImageUrl()); // show verify image try { bais = renren.getRenrenVerifyImage(); System.out.println("bais.size() = " + bais.size()); String digest = getDigest_md5(bais); System.out.println("Digest_md5 = '" + digest + "'"); Image image = ImageIO.read(new ByteArrayInputStream(bais.toByteArray())); imgPanel.removeAll(); JLabel label = new JLabel(new ImageIcon(image)); imgPanel.add(label); verifyCodeFlag = true; // redraw layout verifyTextField.setText(""); gifPanel.setVisible(true); validate(); repaint(); } catch (IOException ex) { Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex); } } } private void refreshImgButtonActionPerformed(java.awt.event.ActionEvent evt) { try { outputTextArea.setText((new Date()).toString() + " ---- from outputTextArea ----"); bais = renren.refreshRenrenVerifyImage(); System.out.println("bais.size() = " + bais.size()); String digest = getDigest_md5(bais); System.out.println("Digest_md5 = '" + digest + "'"); Image image = ImageIO.read(new ByteArrayInputStream(bais.toByteArray())); imgPanel.removeAll(); JLabel label = new JLabel(new ImageIcon(image)); imgPanel.add(label); // redraw layout validate(); repaint(); } catch (IOException ex) { Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex); } } private void dbUpdateButtonActionPerformed(java.awt.event.ActionEvent evt) { } private void pauseButtonActionPerformed(java.awt.event.ActionEvent evt) { pauseFlag = pauseButton.isSelected(); } private String getDigest_md5(ByteArrayOutputStream bais) { // demo : get md5 digest for String StringBuilder hexString = new StringBuilder(); byte[] defaultBytes = bais.toByteArray(); try { MessageDigest algorithm = MessageDigest.getInstance("MD5"); algorithm.reset(); algorithm.update(defaultBytes); byte messageDigest[] = algorithm.digest(); for (int i = 0; i < messageDigest.length; i++) { hexString.append(Integer.toHexString(0xFF & messageDigest[i])); } //String foo = messageDigest.toString(); //System.out.println("sessionid " + sessionid + " md5 version is " + hexString.toString()); } catch (NoSuchAlgorithmException nsae) { } return hexString.toString(); } /** * @param args the command line arguments */ public static void main(String args[]) {// java.awt.EventQueue.invokeLater(new Runnable() {//// public void run() {// new MainFrame().setVisible(true);// }// }); MainFrame frame = new MainFrame(); Thread renrenThread = new Thread(frame); frame.setThread(renrenThread); frame.setVisible(true); frame.init(); } // Variables declaration - do not modify private javax.swing.JPanel basePanel; private javax.swing.JTextField counterField; private javax.swing.JTextField dbCodeTextField; private javax.swing.JPanel dbImgPanel; private javax.swing.JTextField dbImgTextField; private javax.swing.JButton dbUpdateButton; private javax.swing.JButton exitButton; private javax.swing.JPanel gifPanel; private javax.swing.JPanel imgPanel; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JButton loginButton; private javax.swing.JPanel loginPanel; private javax.swing.JTextArea outputTextArea; private javax.swing.JPanel passwordPanel; private javax.swing.JTextField passwordTextField; private javax.swing.JToggleButton pauseButton; private javax.swing.JButton refreshImgButton; private javax.swing.JPanel textPanel; private javax.swing.JScrollPane textScrollPane; private javax.swing.JPanel userPanel; private javax.swing.JTextField usernameTextField; private javax.swing.JPanel usersPanel; private javax.swing.JTextField verifyTextField; // End of variables declaration public void run() { while (true) { if (!pauseFlag) { Date date = new Date(); //System.out.println(date); outputTextArea.append("" + date + "\n"); outputTextArea.scrollRectToVisible(new Rectangle(0, outputTextArea.getHeight() - 2, 1, 1)); renren.getFarmURLs(); renren.showStatus0(); renren.processFarm(); // loss money //List<String> friends = renren.getFriendsURL(); //for (int index = 0; index < friends.size(); index++) { // renren.processFriend(friends.get(index)); //} renren.showStatus1(); outputTextArea.append("\n"); outputTextArea.append("Wait for 5 minutes...\n"); outputTextArea.append("\n"); outputTextArea.scrollRectToVisible(new Rectangle(0, outputTextArea.getHeight() + 80, 1, 1)); actionCounter++; counterField.setText("" + actionCounter); } try { Thread.sleep(5 * 60 * 1000); // wait 5 minutes } catch (InterruptedException ex) { Logger.getLogger(Renren3G_Farm.class.getName()).log(Level.SEVERE, null, ex); } } } private void setThread(Thread thread) { this.thread = thread; }}
- 人人农场 renren 外挂 Java 实现
- qq农场外挂编写分析-java
- QQ校友开心农场外挂
- 开心农场外挂破解中。。。
- QQ农场外挂开发实践
- QQ农场外挂开发实践
- QQ农场外挂开发实践
- 关于C# QQ农场外挂
- 人人开心农场制作点滴
- 农场外挂,热血江湖外挂下载,简单外挂,d
- 人人网外挂的java源代码(自动登录人人网并访问其他人主页)
- renren
- renren
- renren
- QQ守卫农场辅助--QQ守卫农场外挂
- 利用Firesheep对人人网(renren.com)进行会话劫持.
- 利用Firesheep对人人网(renren.com)进行会话劫持
- 关于QQ开心农场外挂 开发
- Swing有双缓冲就够了,变态时三缓冲是很有必要的
- centOS安装qt4.8.0
- 【js】碰到了Flash与extjs冲突无法输入中文解决办法。
- SQL语句
- DDR工作原理
- 人人农场 renren 外挂 Java 实现
- Java集群平台terracotta
- Zend实用指南连载二:性能优化
- TAOVar Out type
- 半角 全角转换
- OpenJWeb网上商城开发文档及源代码
- CompareTo Semantics
- 走进SQL Server 2005 tempdb数据库
- 基础总结篇之三:Activity的task相关 (转载liuhe688)