java進程 代碼注入 (Powered by zms)http://www.btsmth.com/show_topic.php?en_name=Java&gid=277398樓主 zms (小美) 此代碼注入非依賴注入,是hack裏的 代碼注入
回覆
刪除場景是這樣滴: 機器上有一個java進程,我不想停止它,但我想把一段代碼植入進去,幹 一些事情(獲取一些信息,改變一些值,監控一些東西,或者其它猥瑣的事情) 這個進程不能停,而且也沒有預料到現在的事情,或者這個進程的代碼完全不能修改。 好,這篇文章是要幹這個事情,它基於 jvm的 jdi或者jvmti 接口 這裏用的jvmti,jdi也可以,麻煩不少 應該jdk1.5 就有,需要用c寫。1.6 支持另一種方式,java也可以寫 以前做過類似的事情,代碼找不到了,現在有實現了一番。 直接上代碼: 被注入的代碼是這樣滴: while(true) { System.out.println(System.currentTimeMillis()); Thread.sleep(1000); } 每隔一秒輸出當前時間,只是示意用。不管什麼java程序都行 我要注入的類,那個方法是固定的: package com.zms.inject; import java.lang.instrument.Instrumentation; public class MyAgent1 { public static void premain(String s) { premain(s, null); } public static void premain(String s, Instrumentation instru) { System.out.println("I'm injected! 木哈哈哈哈哈"); System.out.printf("param: %s\n", s); } public static void agentmain(String args, Instrumentation inst) { premain(args, inst); } public static void agentmain(String args) { premain(args); } } 編譯,打入jar包 MANIFEST.MF Manifest-Version: 1.0 Created-By: 1.6.0_26 (Apple Inc.) Agent-Class: com.zms.inject.MyAgent1 Premain-Class: com.zms.inject.MyAgent1 操作代碼: import com.sun.tools.attach.*; import com.sun.tools.attach.spi.AttachProvider; VirtualMachine vm=VirtualMachine.attach("24862"); //target java process pid System.out.println(vm); vm.loadAgent("/Users/zms/workspace/mt/out/production/agent1.jar","Powered by zms!"); Thread.sleep(1000); vm.detach(); 目標程序結果: 1317283652520 1317283653520 1317283654521 I'm injected! 木哈哈哈哈哈 param: Powered by zms! 1317283655521 1317283656522
|
|||||||||||
2011-09-29 17:33:49 廣東省廣州市電信ADSL 在本版活躍指數 29.6 |
canper
(洗衣粉) 拜,我記得你之前貼在水木的博客上 【 在 zms (小美) 的大作中提到: 】 : 此代碼注入非依賴注入,是hack裏的 代碼注入 : 場景是這樣滴: : 機器上有一個java進程,我不想停止它,但我想把一段代碼植入進去,幹 : ................... |
||||||||||
2011-09-29 17:35:24 在本版活躍指數 23.7 blog: http://blog.wsdd.org/
每天都有更新 本人可以幫忙解決您的任何和Java有關的技術問題,任何方向均可,難度越大越好 其它方向如 Flash/Flex/Web/數據庫/UI/算法/Hack/調優/搜索/Script/Win32等也均可勝任 可以免費提供指導諮詢和給出技術方向 |
樓主
zms (小美) 嗯,水木blog掛了,文件下不下來了。源代碼也找不到了。。
支持
回覆
刪除只好再研究一遍。 那個工具是動態更新代碼的。(程序不停機,不用調試模式) 和這個本質是一樣的。 【 在 canper (洗衣粉) 的大作中提到: 】 : 拜,我記得你之前貼在水木的博客上 |
||||||||||
2011-09-29 17:39:16 中國 在本版活躍指數 19.4 軟件變慢的速度要快於硬件變快的速度
|
modico
().net() 能移走嗎?能移走自己嗎?能移走別的嗎?
支持
回覆
刪除移走前,println("byebye!") 【 在 zms (小美) 的大作中提到: 】 : 此代碼注入非依賴注入,是hack裏的 代碼注入 : 場景是這樣滴: : 機器上有一個java進程,我不想停止它,但我想把一段代碼植入進去,幹 : ................... |
||||||||||
2011-09-29 17:41:18 在本版活躍指數 23.7 blog: http://blog.wsdd.org/
每天都有更新 本人可以幫忙解決您的任何和Java有關的技術問題,任何方向均可,難度越大越好 其它方向如 Flash/Flex/Web/數據庫/UI/算法/Hack/調優/搜索/Script/Win32等也均可勝任 可以免費提供指導諮詢和給出技術方向 |
樓主
zms (小美) 一切皆有可能
支持
回覆
刪除【 在 modico ().net() 的大作中提到: 】 : 能移走嗎?能移走自己嗎?能移走別的嗎? : 移走前,println("byebye!") |
||||||||||
2011-09-29 17:41:33 中國 在本版活躍指數 19.4 珍愛生命,遠離IDE
|
modico
().net() 上,代碼
支持
回覆
刪除【 在 zms (小美) 的大作中提到: 】 : 一切皆有可能 |
||||||||||
2011-09-29 17:46:10 北京市聯通ADSL 在本版活躍指數 18.4 |
Apache9
()() 這個是不是靠security設置可以不讓你這麼幹?
支持
回覆
刪除【 在 zms (小美) 的大作中提到: 】 : 一切皆有可能 |
||||||||||
2011-09-29 17:47:47 在本版活躍指數 23.7 blog: http://blog.wsdd.org/
每天都有更新 本人可以幫忙解決您的任何和Java有關的技術問題,任何方向均可,難度越大越好 其它方向如 Flash/Flex/Web/數據庫/UI/算法/Hack/調優/搜索/Script/Win32等也均可勝任 可以免費提供指導諮詢和給出技術方向 |
樓主
zms (小美) 很簡單,做一個基本的agent。
支持
回覆
刪除它工作起來大概是: 根據傳入的一個url new 一個URLClassLoader,載入那個url對應的jar load出來class來,真正的執行。 執行完後,所有實例幹掉,gc,把所有的class都gc掉,最後把classloader也gc掉 除了屏幕上的hello world,不留下任何痕跡 就ok了。 【 在 modico ().net() 的大作中提到: 】 : 上,代碼 |
||||||||||
2011-09-29 17:48:01 中國 在本版活躍指數 19.4 軟件變慢的速度要快於硬件變快的速度
|
modico
().net() 誰不讓幹就先搞誰
支持
回覆
刪除【 在 Apache9 ()() 的大作中提到: 】 : 這個是不是靠security設置可以不讓你這麼幹? |
||||||||||
2011-09-29 17:48:25 中國 在本版活躍指數 23.7 blog: http://blog.wsdd.org/
每天都有更新 本人可以幫忙解決您的任何和Java有關的技術問題,任何方向均可,難度越大越好 其它方向如 Flash/Flex/Web/數據庫/UI/算法/Hack/調優/搜索/Script/Win32等也均可勝任 可以免費提供指導諮詢和給出技術方向 |
樓主
zms (小美) 木哈哈哈
支持
回覆
刪除靠人類是阻止不了的 【 在 modico ().net() 的大作中提到: 】 : 標 題: Re: java進程 代碼注入 (Powered by zms) : 發信站: 水木社區 (Thu Sep 29 17:48:01 2011), 站內 : : 誰不讓幹就先搞誰 : : 【 在 Apache9 ()() 的大作中提到: 】 : : 這個是不是靠security設置可以不讓你這麼幹? : : : -- : 軟件變慢的速度要快於硬件變快的速度 : : : ※ 來源:·水木社區 newsmth.net·[FROM: 1.202.91.*] |
||||||||||
2011-09-29 17:50:27 中國 在本版活躍指數 19.4 天暖花開不做工
將來哪裏好過冬 |
modico
().net() 小美上代碼就像翠花上酸菜
支持
回覆
刪除【 在 zms (小美) 的大作中提到: 】 : 很簡單,做一個基本的agent。 : 它工作起來大概是: : 根據傳入的一個url : ................... |
||||||||||
2011-09-29 18:16:47 北京市光環新網 在本版活躍指數 18.9 |
memory166
(司機加油,必須奪冠) 難道可以隨便載入類?而不受範圍的控制?
支持
回覆
刪除直接可以調用別人的private方法麼? 【 在 zms (小美) 的大作中提到: 】 : 此代碼注入非依賴注入,是hack裏的 代碼注入 : 場景是這樣滴: : 機器上有一個java進程,我不想停止它,但我想把一段代碼植入進去,幹 : ................... |
||||||||||
2011-09-29 18:24:56 在本版活躍指數 23.7 blog: http://blog.wsdd.org/
每天都有更新 本人可以幫忙解決您的任何和Java有關的技術問題,任何方向均可,難度越大越好 其它方向如 Flash/Flex/Web/數據庫/UI/算法/Hack/調優/搜索/Script/Win32等也均可勝任 可以免費提供指導諮詢和給出技術方向 |
樓主
zms (小美) Keep Your Mind Wide Open,一切皆有可能:
支持
回覆
刪除你本來寫了一個desktop的記事本程序,運行以後,我注入我的代碼,關掉你的窗體,從遠端下載我的jar,偷偷下載一個jetty,啓動,下載war,部署。進程還是那個進程,結果變成了一個app serve可以提供服務 【 在 memory166 (司機加油,必須奪冠) 的大作中提到: 】 : 難道可以隨便載入類?而不受範圍的控制? : 直接可以調用別人的private方法麼? |
||||||||||
2011-09-29 18:29:54 在本版活躍指數 23.7 blog: http://blog.wsdd.org/
每天都有更新 本人可以幫忙解決您的任何和Java有關的技術問題,任何方向均可,難度越大越好 其它方向如 Flash/Flex/Web/數據庫/UI/算法/Hack/調優/搜索/Script/Win32等也均可勝任 可以免費提供指導諮詢和給出技術方向 |
樓主
zms (小美) 如果安全措施做的不好的話,甚至可以跨越機器注入
支持
回覆
刪除【 在 memory166 (司機加油,必須奪冠) 的大作中提到: 】 : 難道可以隨便載入類?而不受範圍的控制? : 直接可以調用別人的private方法麼? |
||||||||||
2011-09-29 20:16:54 北京市光環新網 在本版活躍指數 18.9 |
memory166
(司機加油,必須奪冠) 明白鳥~這是爲你的程序找了個宿主!
支持
回覆
刪除【 在 zms (小美) 的大作中提到: 】 : Keep Your Mind Wide Open,一切皆有可能: : 你本來寫了一個desktop的記事本程序,運行以後,我注入我的代碼,關掉你的窗體,從遠端下載我的jar,偷偷下載一個jetty,啓動,下載war,部署。進程還是那個進程,結果變成了一個app serve可以提供服務 |
||||||||||
2011-09-29 20:19:32 北京市光環新網 在本版活躍指數 18.9 |
memory166
(司機加油,必須奪冠) 只能運行你自己注入的代碼,運行不了你宿主jvm進程裏面的那些代碼。
支持
回覆
刪除我的意思是,比如進入alipay進程,運行它的充值方法,然後,就沒有然後了…… 【 在 zms (小美) 的大作中提到: 】 : 如果安全措施做的不好的話,甚至可以跨越機器注入 |
||||||||||
2011-09-29 20:24:30 在本版活躍指數 23.7 blog: http://blog.wsdd.org/
每天都有更新 本人可以幫忙解決您的任何和Java有關的技術問題,任何方向均可,難度越大越好 其它方向如 Flash/Flex/Web/數據庫/UI/算法/Hack/調優/搜索/Script/Win32等也均可勝任 可以免費提供指導諮詢和給出技術方向 |
樓主
zms (小美) 當然可以啊, 一個進程內啊。
支持
回覆
刪除【 在 memory166 (司機加油,必須奪冠) 的大作中提到: 】 : 只能運行你自己注入的代碼,運行不了你宿主jvm進程裏面的那些代碼。 : 我的意思是,比如進入alipay進程,運行它的充值方法,然後,就沒有然後了…… |
||||||||||
2011-09-29 23:37:14 美國北達科他州立大學 在本版活躍指數 19.2 |
qblyy
(十年先も君に戀して·情何以堪) 贊
支持
回覆
刪除【 在 zms (小美) 的大作中提到: 】 : 此代碼注入非依賴注入,是hack裏的 代碼注入 : 場景是這樣滴: : 機器上有一個java進程,我不想停止它,但我想把一段代碼植入進去,幹 : ................... |
||||||||||
2011-09-30 00:39:12 美國/加拿大 在本版活躍指數 20.7 男子漢,大丈夫,生又何憂,死又何歡?
我出了門,乾咳兩聲,袖了手,施施然而去...... 那一刻被電光照亮的這個身姿,千萬年後仍凝固在傳說之中。 |
muser
(負盡千重罪,練就不死心) THIS tech shown here is more like a DLL injection--MS used it for debugging but left a big door for virus--rather than code instrument.
支持
回覆
刪除you may search "java bytecode instrument" for your need. 【 在 memory166 的大作中提到: 】 : 難道可以隨便載入類?而不受範圍的控制? : 直接可以調用別人的private方法麼? : 【 在 zms (小美) 的大作中提到: 】 : ................... |
||||||||||
2011-09-30 00:40:45 北京市西城區聯通ADSL 在本版活躍指數 11.8 【 在 KCN (毒中之毒~strongest) 的大作中提到: 】
: 標 題: Re: 搜水木,上奇虎 (轉載) : 發信站: 水木社區 (Wed Jul 15 10:13:10 2009), 站內 : : 太不像話了,真流氓阿! : 【 在 PKubuntu (Your Emacs Is Mine) 的大作中提到: 】 |
PKubuntu
(Your Emacs Is Mine) i總前兩天還在python版發了一個python的
支持
回覆
刪除https://fedorahosted.org/pyrasite/ 看來所有語言的終極目標都是向lisp靠攏阿 【 在 zms (小美) 的大作中提到: 】 : 此代碼注入非依賴注入,是hack裏的 代碼注入 : 場景是這樣滴: : 機器上有一個java進程,我不想停止它,但我想把一段代碼植入進去,幹 : ................... |
水木:java進程 代碼注入 (Powered by zms)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.