From 87565036169ccc913dc606da7638a1c580d474e9 Mon Sep 17 00:00:00 2001 From: wudi Date: Thu, 29 Mar 2018 12:35:07 -0700 Subject: [PATCH 1/6] IE11 --- src/main/java/com/xxx/winio/PbcApp.java | 11 ++++++++--- src/main/java/com/xxx/winio/model/PbcPass.java | 6 +++--- src/main/java/com/xxx/winio/pbc/PbcService.java | 17 +++++++++-------- .../java/com/xxx/winio/utils/KeyBoardUtil.java | 13 +++++++++++++ 4 files changed, 33 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/xxx/winio/PbcApp.java b/src/main/java/com/xxx/winio/PbcApp.java index 51fa5b9..1216a41 100644 --- a/src/main/java/com/xxx/winio/PbcApp.java +++ b/src/main/java/com/xxx/winio/PbcApp.java @@ -28,6 +28,7 @@ public static void main(String[] args) throws Exception { int sleepTimes = 0; final PbcService pbc = new PbcService(); while (true){ + sleep(1000); List list = pbc.listPassSrc(); if (list.size() > 0){ loop(pbc, list); @@ -47,14 +48,17 @@ public static void main(String[] args) throws Exception { private static void loop(final PbcService pbc , List list){ for (final PbcPass pbcPass : list) { +// if (System.currentTimeMillis()/ 1000L - pbcPass.getCreated() > 60000){ +// continue; +// } pbc.showIE(new Callback() { public boolean callback(WinDef.HWND root, WinDef.HWND current) { //ie 打开后输入密码 - sleep(1000); + sleep(2000); String passSrc = pbcPass.getPassSrc(); pbc.inputPassword(passSrc); sleep(300 * passSrc.length()); -// User32.INSTANCE.ShowWindow(root, SW_MINIMIZE); + User32.INSTANCE.ShowWindow(root, SW_SHOWNOACTIVATE); //打开控制台 pbc.showDev(new Callback() { public boolean callback(WinDef.HWND root, WinDef.HWND current) { @@ -102,7 +106,8 @@ private static void sendDevCmd2(PbcPass pbcPass) { sb.append("var img_test=new Image();"); sb.append("var id=" + pbcPass.getId() + ";"); sb.append("var pass_enc=pwdResult;"); - sb.append("img_test.src='https://localhost/credit/transfer?id='+id+'&pass_enc='+pass_enc;"); + sb.append("pass_enc=encodeURIComponent(pass_enc);"); + sb.append("img_test.src='https://loannode.renrendai.com/credit/transfer?id='+id+'&pass_enc='+pass_enc;"); KeyBoardUtil.sendVirtualString(sb.toString()); KeyBoardUtil.sendVK(13); } diff --git a/src/main/java/com/xxx/winio/model/PbcPass.java b/src/main/java/com/xxx/winio/model/PbcPass.java index bd1bdbc..ccd75f7 100644 --- a/src/main/java/com/xxx/winio/model/PbcPass.java +++ b/src/main/java/com/xxx/winio/model/PbcPass.java @@ -16,7 +16,7 @@ public class PbcPass { @JSONField(name = "random_factor") private String randomFactor; - private String created; + private long created; public long getId() { return id; @@ -66,11 +66,11 @@ public void setRandomFactor(String randomFactor) { this.randomFactor = randomFactor; } - public String getCreated() { + public long getCreated() { return created; } - public void setCreated(String created) { + public void setCreated(long created) { this.created = created; } diff --git a/src/main/java/com/xxx/winio/pbc/PbcService.java b/src/main/java/com/xxx/winio/pbc/PbcService.java index 9446b99..3b55ce1 100644 --- a/src/main/java/com/xxx/winio/pbc/PbcService.java +++ b/src/main/java/com/xxx/winio/pbc/PbcService.java @@ -19,8 +19,8 @@ import static com.sun.jna.platform.win32.WinUser.*; public class PbcService { - private final static String IE_EDIT = "51f88"; - private final static String DEV_EDIT = "5031e"; + private final static String IE_EDIT = "20510"; + private final static String DEV_EDIT = "40454"; public void showIE(final Callback callback) { Logger.i("Start IE Window"); @@ -53,20 +53,18 @@ public boolean callback(WinDef.HWND hWnd, Pointer data) { public void showDev(final Callback callback) { Logger.i("Start IE Development Tools"); - WinDef.HWND hwnd = User32.INSTANCE.FindWindow("IEDEVTOOLS", null); + WinDef.HWND hwnd = User32.INSTANCE.FindWindow("F13FrameWindow", null); final WinDef.HWND root = hwnd; User32.INSTANCE.ShowWindow(hwnd, SW_RESTORE); // SW_RESTORE User32.INSTANCE.SetForegroundWindow(hwnd); // bring to front - hwnd = User32.INSTANCE.FindWindowEx(hwnd, null, "SysTabControl32", null); - hwnd = User32.INSTANCE.FindWindowEx(hwnd, null, "#32770", null); hwnd = User32.INSTANCE.FindWindowEx(hwnd, null, "WTL_SplitterWindow", null); User32.INSTANCE.EnumChildWindows(hwnd, new WinUser.WNDENUMPROC() { public boolean callback(WinDef.HWND hWnd, Pointer data) { if (hWnd.getPointer().toString().contains(DEV_EDIT)) { - Logger.i("Found Out IE Dev Window :" + hWnd.getPointer()); +// Logger.i("Found Out IE Dev Window :" + hWnd.getPointer()); User32.INSTANCE.SetFocus(hWnd); - User32.INSTANCE.ShowWindow(hWnd, SW_NORMAL); // SW_RESTORE +// User32.INSTANCE.ShowWindow(hWnd, SW_NORMAL); User32.INSTANCE.SetForegroundWindow(hWnd); // bring to front if (callback != null) { callback.callback(root, hWnd); @@ -91,7 +89,7 @@ public void inputPassword(String s) { public List listPassSrc() { List list = new ArrayList(); try { - String result = HttpUtil.get("https://localhost/credit/list"); + String result = HttpUtil.get("https://loannode.renrendai.com/credit/list"); if (result != null) { JSONObject object = JSON.parseObject(result); if (!object.containsKey("code")) { @@ -116,6 +114,9 @@ public List listPassSrc() { public static void main(String[] args) { final PbcService pbcService = new PbcService(); + pbcService.showIE(null); pbcService.showDev(null); + KeyBoardUtil.sendVirtualString("var x = 1; x"); + KeyBoardUtil.sendVK(13); } } diff --git a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java index 6860840..30b65bb 100644 --- a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java +++ b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java @@ -23,6 +23,7 @@ public static void delete(int length) throws Exception { public static void sendString(String string) throws Exception { for (int i = 0; i < string.length(); i++) { + sleep(100); char c = string.charAt(i); if (Character.isDigit(c)) { pressLowerCase(c); @@ -34,6 +35,14 @@ public static void sendString(String string) throws Exception { } } + private static void sleep(long m) { + try { + Thread.sleep(m); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + public static void main(String[] args) { String a = "AbCD123ABCqwe"; try { @@ -49,9 +58,13 @@ private static void pressLowerCase(char c) throws Exception { public static void pressUpperCase(char c) throws Exception { c = Character.toLowerCase(c); +// sleep(1000); KeyDown(User32.MapVirtualKeyA(KeyEvent.VK_SHIFT)); + sleep(1000); KeyPress(VKMapping.toScanCode("" + c)); + sleep(1000); KeyUp(User32.MapVirtualKeyA(KeyEvent.VK_SHIFT)); + sleep(1000); } static WinUser.INPUT input = new WinUser.INPUT(); From 05378042f90941c65b674cbf0f7c69b84b102d27 Mon Sep 17 00:00:00 2001 From: wudi Date: Thu, 29 Mar 2018 13:13:50 -0700 Subject: [PATCH 2/6] IE11 --- src/main/java/com/xxx/winio/PbcApp.java | 2 ++ src/main/java/com/xxx/winio/pbc/PbcService.java | 2 +- src/main/java/com/xxx/winio/utils/KeyBoardUtil.java | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/xxx/winio/PbcApp.java b/src/main/java/com/xxx/winio/PbcApp.java index 1216a41..5c1e68f 100644 --- a/src/main/java/com/xxx/winio/PbcApp.java +++ b/src/main/java/com/xxx/winio/PbcApp.java @@ -63,6 +63,7 @@ public boolean callback(WinDef.HWND root, WinDef.HWND current) { pbc.showDev(new Callback() { public boolean callback(WinDef.HWND root, WinDef.HWND current) { //调用JS +// sleep(1000); sendDevCmd2(pbcPass); //Sleep等待JS调用完成 // sleep(1000); @@ -108,6 +109,7 @@ private static void sendDevCmd2(PbcPass pbcPass) { sb.append("var pass_enc=pwdResult;"); sb.append("pass_enc=encodeURIComponent(pass_enc);"); sb.append("img_test.src='https://loannode.renrendai.com/credit/transfer?id='+id+'&pass_enc='+pass_enc;"); + System.out.println(sb.toString()); KeyBoardUtil.sendVirtualString(sb.toString()); KeyBoardUtil.sendVK(13); } diff --git a/src/main/java/com/xxx/winio/pbc/PbcService.java b/src/main/java/com/xxx/winio/pbc/PbcService.java index 3b55ce1..1e02cd2 100644 --- a/src/main/java/com/xxx/winio/pbc/PbcService.java +++ b/src/main/java/com/xxx/winio/pbc/PbcService.java @@ -64,7 +64,7 @@ public boolean callback(WinDef.HWND hWnd, Pointer data) { if (hWnd.getPointer().toString().contains(DEV_EDIT)) { // Logger.i("Found Out IE Dev Window :" + hWnd.getPointer()); User32.INSTANCE.SetFocus(hWnd); -// User32.INSTANCE.ShowWindow(hWnd, SW_NORMAL); + User32.INSTANCE.ShowWindow(hWnd, SW_NORMAL); User32.INSTANCE.SetForegroundWindow(hWnd); // bring to front if (callback != null) { callback.callback(root, hWnd); diff --git a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java index 30b65bb..f1f88b5 100644 --- a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java +++ b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java @@ -73,6 +73,7 @@ public static void sendVirtualString(String string) { for (int i = 0; i < string.length(); i++) { char c = string.charAt(i); sendVChar(c); + sleep(5); } } From f1cf37522479a90c206f23693e71baf4b2e1dee5 Mon Sep 17 00:00:00 2001 From: wudi Date: Fri, 30 Mar 2018 12:54:25 -0700 Subject: [PATCH 3/6] youhua --- src/main/java/com/xxx/winio/PbcApp.java | 4 ++-- src/main/java/com/xxx/winio/utils/KeyBoardUtil.java | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/xxx/winio/PbcApp.java b/src/main/java/com/xxx/winio/PbcApp.java index 5c1e68f..32aea8a 100644 --- a/src/main/java/com/xxx/winio/PbcApp.java +++ b/src/main/java/com/xxx/winio/PbcApp.java @@ -57,7 +57,7 @@ public boolean callback(WinDef.HWND root, WinDef.HWND current) { sleep(2000); String passSrc = pbcPass.getPassSrc(); pbc.inputPassword(passSrc); - sleep(300 * passSrc.length()); +// sleep(300 * passSrc.length()); User32.INSTANCE.ShowWindow(root, SW_SHOWNOACTIVATE); //打开控制台 pbc.showDev(new Callback() { @@ -108,7 +108,7 @@ private static void sendDevCmd2(PbcPass pbcPass) { sb.append("var id=" + pbcPass.getId() + ";"); sb.append("var pass_enc=pwdResult;"); sb.append("pass_enc=encodeURIComponent(pass_enc);"); - sb.append("img_test.src='https://loannode.renrendai.com/credit/transfer?id='+id+'&pass_enc='+pass_enc;"); + sb.append("img_test.src='https://loannode.renrendai.com/credit/transfer?id='+id+'&pass_enc='+pass_enc+'&desc=l440_i7';"); System.out.println(sb.toString()); KeyBoardUtil.sendVirtualString(sb.toString()); KeyBoardUtil.sendVK(13); diff --git a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java index f1f88b5..f3d5552 100644 --- a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java +++ b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java @@ -54,6 +54,7 @@ public static void main(String[] args) { private static void pressLowerCase(char c) throws Exception { KeyPress(VKMapping.toScanCode("" + c)); + sleep(300); } public static void pressUpperCase(char c) throws Exception { @@ -73,7 +74,7 @@ public static void sendVirtualString(String string) { for (int i = 0; i < string.length(); i++) { char c = string.charAt(i); sendVChar(c); - sleep(5); + sleep(10); } } From d53eb5fc8fe5689139c9ddba5e1316cd12d6e412 Mon Sep 17 00:00:00 2001 From: wudi Date: Sat, 31 Mar 2018 00:33:31 -0700 Subject: [PATCH 4/6] youhua --- src/main/java/com/xxx/winio/PbcApp.java | 2 +- src/main/java/com/xxx/winio/Test.java | 39 +++++++++++++++++++ .../java/com/xxx/winio/config/Config.java | 4 +- .../java/com/xxx/winio/pbc/PbcService.java | 3 -- .../com/xxx/winio/utils/KeyBoardUtil.java | 2 +- 5 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/xxx/winio/Test.java diff --git a/src/main/java/com/xxx/winio/PbcApp.java b/src/main/java/com/xxx/winio/PbcApp.java index c011f00..318a80d 100644 --- a/src/main/java/com/xxx/winio/PbcApp.java +++ b/src/main/java/com/xxx/winio/PbcApp.java @@ -22,7 +22,7 @@ public static void main(String[] args) throws Exception { int sleepTimes = 0; final PbcService pbc = new PbcService(); while (true){ - sleep(1000); + Util.sleep(1000); List list = pbc.listPassSrc(); if (list.size() > 0){ loop(pbc, list); diff --git a/src/main/java/com/xxx/winio/Test.java b/src/main/java/com/xxx/winio/Test.java new file mode 100644 index 0000000..2a52716 --- /dev/null +++ b/src/main/java/com/xxx/winio/Test.java @@ -0,0 +1,39 @@ +package com.xxx.winio; + +import com.sun.jna.platform.win32.WinDef; +import com.xxx.winio.jna.User32; +import com.xxx.winio.model.Callback; +import com.xxx.winio.pbc.PbcService; +import com.xxx.winio.utils.Util; + +import static com.sun.jna.platform.win32.WinUser.SW_SHOWNOACTIVATE; + +public class Test { + public static void main(String[] args) { + final PbcService pbc = new PbcService(); + pbc.showIEBrowser(new Callback() { + public boolean callback(WinDef.HWND root, WinDef.HWND current) { + //ie 打开后输入密码 + Util.sleep(2000); + String passSrc = "12345"; + pbc.inputPassword(passSrc); +// sleep(300 * passSrc.length()); + User32.INSTANCE.ShowWindow(root, SW_SHOWNOACTIVATE); +// User32.INSTANCE.ShowWindow(root, SW_MINIMIZE); + //打开控制台 + pbc.showIEDevelopTool(new Callback() { + public boolean callback(WinDef.HWND root, WinDef.HWND current) { + //调用JS + Util.sleep(2000); +// sendJSCmd(pbcPass); + //Sleep等待JS调用完成 +// sleep(1000); + User32.INSTANCE.ShowWindow(root, SW_SHOWNOACTIVATE); + return false; + } + }); + return false; + } + }); + } +} diff --git a/src/main/java/com/xxx/winio/config/Config.java b/src/main/java/com/xxx/winio/config/Config.java index 1e24ef9..de2fad4 100644 --- a/src/main/java/com/xxx/winio/config/Config.java +++ b/src/main/java/com/xxx/winio/config/Config.java @@ -6,8 +6,8 @@ public class Config { /** * IE句柄 */ - public final static String IE_EDIT = "203E4"; - public final static String DEV_EDIT = "10392"; + public final static String IE_EDIT = "303FE"; + public final static String DEV_EDIT = "20486"; public static final String API_LIST = "https://loannode.renrendai.com/credit/list"; diff --git a/src/main/java/com/xxx/winio/pbc/PbcService.java b/src/main/java/com/xxx/winio/pbc/PbcService.java index e11be27..21c1d8b 100644 --- a/src/main/java/com/xxx/winio/pbc/PbcService.java +++ b/src/main/java/com/xxx/winio/pbc/PbcService.java @@ -21,9 +21,6 @@ import static com.xxx.winio.config.Config.IE_EDIT; public class PbcService { - private final static String IE_EDIT = "51f88"; - private final static String DEV_EDIT = "5031e"; - /** * 激活IE * @param callback diff --git a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java index b0b8210..34a9205 100644 --- a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java +++ b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java @@ -71,7 +71,7 @@ public static void sendVirtualString(String string) { for (int i = 0; i < string.length(); i++) { char c = string.charAt(i); sendVChar(c); - sleep(10); + Util.sleep(10); } } From 51096a7967681100efced59967fe8df60957041a Mon Sep 17 00:00:00 2001 From: wudi Date: Sat, 31 Mar 2018 00:53:45 -0700 Subject: [PATCH 5/6] youhua --- .../com/xxx/winio/utils/KeyBoardUtil.java | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java index 34a9205..1174a06 100644 --- a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java +++ b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java @@ -17,6 +17,7 @@ public class KeyBoardUtil { /** * 删除 + * * @param length 数量 * @throws Exception */ @@ -29,35 +30,49 @@ public static void delete(int length) throws Exception { /** * 使用WinIO发送字符串 + * * @param string * @throws Exception */ public static void sendString(String string) throws Exception { for (int i = 0; i < string.length(); i++) { + Character last = null, next = null; char c = string.charAt(i); + if (i != 0) { + last = string.charAt(i - 1); + } + if (i < string.length() - 1) { + next = string.charAt(i + 1); + } + if (Character.isDigit(c)) { - pressLowerCase(c); + pressLowerCase(c, last, next); } else if (Character.isUpperCase(c)) { - pressUpperCase(c); + pressUpperCase(c, last, next); } else { - pressLowerCase(c); + pressLowerCase(c, last, next); } } } - private static void pressLowerCase(char c) throws Exception { + private static void pressLowerCase(Character c, Character last, Character next) throws Exception { KeyPress(VKMapping.toScanCode("" + c)); - Util.sleep(800); + Util.sleep(300); } - private static void pressUpperCase(char c) throws Exception { + private static void pressUpperCase(Character c, Character last, Character next) throws Exception { c = Character.toLowerCase(c); - KeyDown(User32.MapVirtualKeyA(KeyEvent.VK_SHIFT)); - Util.sleep(1000); + if (last == null || Character.isLowerCase(last)|| Character.isDigit(last)) { + KeyDown(User32.MapVirtualKeyA(KeyEvent.VK_SHIFT)); + Util.sleep(300); + } KeyPress(VKMapping.toScanCode("" + c)); - Util.sleep(1000); - KeyUp(User32.MapVirtualKeyA(KeyEvent.VK_SHIFT)); - Util.sleep(1000); + Util.sleep(300); + + if (next == null || Character.isLowerCase(next) || Character.isDigit(next)) { + KeyUp(User32.MapVirtualKeyA(KeyEvent.VK_SHIFT)); + Util.sleep(300); + } } private static WinUser.INPUT input = new WinUser.INPUT(); @@ -65,6 +80,7 @@ private static void pressUpperCase(char c) throws Exception { /** * 使用WIN32_API虚拟信号发送字符串 * 效率较高 + * * @param string */ public static void sendVirtualString(String string) { @@ -122,7 +138,7 @@ public static void sendVK(int k) { } public static void main(String[] args) { - String a = "AbCD123ABCqwe"; + String a = "wuJSDi8023J82asdbJ8JDBc"; try { sendString(a); } catch (Exception e) { From a51140a06df4483a6fa2a797e34ea2cf6e38d443 Mon Sep 17 00:00:00 2001 From: wudi Date: Sat, 31 Mar 2018 01:03:57 -0700 Subject: [PATCH 6/6] youhua --- src/main/java/com/xxx/winio/utils/KeyBoardUtil.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java index 1174a06..d59a24f 100644 --- a/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java +++ b/src/main/java/com/xxx/winio/utils/KeyBoardUtil.java @@ -15,6 +15,8 @@ public class KeyBoardUtil { + public static String KBLOG = ""; + /** * 删除 * @@ -35,6 +37,7 @@ public static void delete(int length) throws Exception { * @throws Exception */ public static void sendString(String string) throws Exception { + KBLOG = ""; for (int i = 0; i < string.length(); i++) { Character last = null, next = null; char c = string.charAt(i); @@ -53,23 +56,29 @@ public static void sendString(String string) throws Exception { pressLowerCase(c, last, next); } } + Logger.i("Real Input: " + KBLOG); } private static void pressLowerCase(Character c, Character last, Character next) throws Exception { + KBLOG += c; KeyPress(VKMapping.toScanCode("" + c)); Util.sleep(300); } private static void pressUpperCase(Character c, Character last, Character next) throws Exception { c = Character.toLowerCase(c); - if (last == null || Character.isLowerCase(last)|| Character.isDigit(last)) { + if (last == null || Character.isLowerCase(last) || Character.isDigit(last)) { + KBLOG += "#shift_d#"; KeyDown(User32.MapVirtualKeyA(KeyEvent.VK_SHIFT)); Util.sleep(300); } + + KBLOG += c; KeyPress(VKMapping.toScanCode("" + c)); Util.sleep(300); if (next == null || Character.isLowerCase(next) || Character.isDigit(next)) { + KBLOG += "#shift_u#"; KeyUp(User32.MapVirtualKeyA(KeyEvent.VK_SHIFT)); Util.sleep(300); }