導航:首頁 > 源碼編譯 > 反編譯ref

反編譯ref

發布時間:2025-03-18 08:22:15

『壹』 怎麼將vfp項目反編譯成代碼

ReFox 功能很強大,我一般用它來保護我的程序。
Decompile 你的 EXE 後,會產生一個與你 EXE 同主文件名的 .ref 文件,用文本打開這個文件,做為存檔應該是夠用了,但不能直接運行。

『貳』 java 學習方法或捷徑--求教

JAVA同其它任何一門編程語言一樣,都是要從淺到深的過程,如果你想愉快的學習這門語言的話,給你看篇文章,記住JAVA學習要有耐心!下面的文章也許對你有幫助
1. Java語言基礎
談到Java語言基礎學習的書籍,大家肯定會推薦Bruce Eckel的《Thinking in Java》。它是一本寫的相當深刻的技術書籍,Java語言基礎部分基本沒有其它任何一本書可以超越它。該書的作者Bruce Eckel在網路上被稱為天才的投機者,作者的《Thinking in C++》在1995年曾獲SoftwareDevelopment Jolt Award最佳書籍大獎,《Thinking in Java》被評為1999年Java World「最愛讀者歡迎圖書」,並且贏得了編輯首選圖書獎。作者從1986年至今,已經發表了超過150篇計算機技術文章,出版了6本書(其中4本是關於C++的),並且在全世界做了數百次演講。他是《Thinking in Java》、《Thinking in C++》、《C++ Inside & Out》《Using C++》和《Thinking in Patterns》的作者,同時還是《Black Belt C++》文集的編輯。他的書被讀者稱為「最好的Java參考書……絕對讓人震驚」;「購買Java參考書最明智的選擇」;「我見過的最棒的編程指南」。作者的非凡才華,極其跨越語言的能力,使作者被選為Java發展10年間與Java關系最密切的10個人物之一。

《Thinking in Java》講述了Java語言的方方面面,很多Java語言的老手都評價「這是一本將Java語言講得相當醜陋的書」。該書談及了java語言的很多細節,每一個方面都是相當深刻的。通過本書你可以看到「醜陋的」java語言。

網路上關於java語言講解的視頻很多很多,其中不凡有垃圾。《翁愷—JAVA語言》可能是你學習java語言基礎的唯一選擇,該講座基本按照《Thinking in Java》這本書講解,其中不凡有翁老師的很多有意思的笑話。我很幸運學習就是從此視頻開始的。內容包括30講,我總共看了3遍。

不過,對於初學者我不太推薦使用《Thinking in Java》,我比較推薦Prentice Hall PTR 的《Core Java 2》國內稱為《Java 2 核心技術》,目前是第七版。網路上大家都可以下載到電子版。Oreilly的《Java in a nutshell》也是一個不錯的選擇。讀完以上兩本後,你可以看看翁愷老師的視頻,接著可以研究《Thinking in Java》了。

2. Java數據結構
市面上關於Java數據結構的書本身就很少很少。大致有APress 的《Java Collections》,Jones 和Bartlett 的《Data Structures in Java》、《Object-oriented Data Structures Using Java》以及Prentice Hall 出版的《Data Structures and Algorithms in Java》 (Dec 19, 2005)還有一本就是《Data Structures And Algorithms With Object-oriented Design Patterns In Java》。很幸運我的第一本英文書就是APress 的《Java Collections》(本書在國內可能根本就沒有中文版――只能下載英文版了),很不錯,講得很有條例、很簡單,是一本完完全全Java Collections API介紹的書籍,其中不凡有擴展API的例子。這是我推薦你學習java數據結構的唯一一本好書。其它的Jones 和Bartlett的那兩本國內好像有一本中文版,想看你也可以看看。

在學習完API後,你可以看看java.util包中對應的類了。不過只有在學習過設計模式後你才有可能完全理解整個Java Collections Framework。Java Collections Framework使用了很多著名的設計模式如:迭代器(Iterator)模式,工廠方法模式、裝飾器模式、適配器模式等等。通過研究java.util包中數據結構的源代碼,你可以知道臭名昭著的Properties類的設計了,同時可能基本具備設計簡單的數據結構的能力了。

所謂學習無止境,學習完Sun提供了Java Collections Framework後,你可以研究Apche的另一個Java Collections Framework,很有意思哦。互為補充的兩個Framework。

在大家學習、研究Java Collections之前,我提示一下Java Collections主要包括以下三部分:介面(Interface)、實現(Implemention)和演算法(Algorithm)。

1. 介面主要有List、Set、Queue和 Map。List 、Se t和Queue是 Collection介面的子介面。

2. 實現主要是實現這些介面的具體類。如實現List介面的ArrayList、LinkedList、Stack和Vector;實現Set介面的HashSet、TreeSet 和LinkedHashSet;實現Queue介面的PriorityQueue、SynchronousQueue等等;實現Map介面的HashMap、TreeMap、Hashtable、Properties、WeakHashMap等等。

3. 演算法主要是由Arrays類和Collections類提供的,它是整個Java Collection Framework演算法的核心。支持各種類型的排序,查找等常用操作。

Java Collections中包含兩個版本的數據結構,主要是原先的支持同步的數據結構和後來不支持同步的數據結構。

Java Collection Framework在使用Comparator和Comparable介面支持排序。同時提供新舊兩個版本的迭代器Iterator和Enumeraton,以及它們如何轉換等等。

在java.util包中的Obserable介面和Observer類是考察者模式的核心。

……

3. Java IO
市面上關於IO的書籍也僅僅只有Oreilly出版社的兩本,都是Elliotte Rusty Harold的著作。兩本書的風格基本一致,推薦閱讀是第一版的《Jvava I/O》,講得比較淺顯,內容相對比較集中,實例也很多。第二版今年5月國外才出版,很有幸我在網路上下載了第二版,講得極其詳細――726頁的大塊頭(我化了兩個星期),這次將NIO和IO和在一起,還包括J2ME部分的,不過串口、並口通信部分好像類庫支持不夠,自己不能實際操作。

與第一版的《Jvava I/O》一起的Oreilly還有一本《Jvava NIO》,也是很不錯的哦。

大家在依次閱讀完《Jvava I/O》以及《Jvava NIO》後,可以研究java.io包中的源代碼了。在大家研究源代碼前我給點提示:

Java的io包主要包括:

1. 兩種流:位元組流(byte Stream)和字元流(character stream),這兩種流不存在所謂的誰代替誰、誰比誰高級之說,它們互為補充,只是側重點不同而已。

2. 兩種對稱:1.位元組流、字元流的對稱;2.輸入、輸出的對稱。

3. 一個橋梁:將位元組流轉變為字元流的InputStreamReader和OutputStreamWriter。

其中必須注意:

1. PipedInputStream和PipedOutputStrem是兩個比較有趣的類。

2. 支持Buffered的流是我們經常使用的類。

3. 裝飾器(Decorator)模式在java最著名的應用就是用於io的設計。仔細研究各個Filter流與具體流的關系,多看設計模式的書籍。相信你會有所所獲。

4. 學習好io包,是研究net包,rmi包……的基礎哦!

4 . Java資料庫
資料庫的書籍太多太多了,也是太爛太爛了!這方面的書我基本都研究過,推薦的你就看看Apress的《JDBC Recipes A Problem Solution Approach 》很不錯,國外2005年底才出版,(國內好像沒有中文版,不過出了中文版也不一定值得看――國內經常將國外的書翻譯得一塌糊塗、不堪入目)不過我們真的很幸運,網路上有電子版的。值得一看。推薦我看的第一本比較滿意的――Wiley出版的《Java Database Bible》,講得很不錯!Sun公司自己的關於JDBC API介紹的那一本《JDBC API Tutorial andRefernece》也不錯。我第二本JDBC的就是研究的這套API。

不過目前這些書都是一些相對比較浮淺的API應用的書籍。有機會我會給大家帶來介紹JDBC API以及JDBC實現內部細節的書!我盡快努力,同時希望得到大家的支持!

順便給學習JDBC的朋友一點提示:

JDBC的學習和使用主要是這套API,其使用過程也是極其簡單,下面是使用JDBC的一般流程:

1. 載入某個資料庫的驅動(Driver類),通常使用Class.forName(「驅動的類名「);

2. 連接資料庫――

Connection con = DriverManager.getConnection(url,username,password);

3. 得到會話――Statement stmt = con.createStatement();

4. 執行操作――Result rs = stmt.executeQuery(「SQL查詢語句」);

5. 處理結果――

while(rs.next()){

String col1 = rs.getString(1);

……

}

簡單吧!整個JDBC中可以變化的一般是:

1. 可以由Connection對象創建Statement、PreparedStatement和CallableStatement創建三種類型的Statement。

2. 可以創建多種類型的ResultSet:支持單向移動和個自由移動;可更新的和不可更新的;支持不同等級的交易的…..

3. 數據輸入的批處理。

4. 結果集中特殊類型(Blob、Clob、Arrary和Ref、Struct)列的操作。

5. 這些特殊類型的錄入資料庫。

6. javax.sql包中特殊結果集(CachedRowSet、JdbcRowSet、WebRowSet)的操作。

7. 其它的就是一個DataSource了,也很簡單!一個J2EE中的被管理對象

簡單吧!相信大家很快就會征服JDBC。

5. Java 網路編程
網路編程――一個神秘的、充滿挑戰的方向。不過在談Java網路編程之前首先感謝Sun公司的開發人員,因為它們天才的設想,充滿智慧的架構,使廣大java程序員學習java網路編程變得異常簡單。

Java網路編程方面的書,我推薦O'Reilly的《Java Network Programming》,目前已經第三版了,以前的版本市面上肯定有!網路上早有第三版的電子版,國外2004年出版,706頁哦!講得很全,比較深入,太深入的可能由於Sun有些東西沒有完全公開,所以也就不好講了,有興趣的可以下載看看!第二本還是O'Reilly 1998年出版的《Java distributed computing 》,基礎部分寫得比較詳細,後面的實例還是值得研究的。

在大家閱讀這些書之前,給大家一點提示:

java網路編程其實相對比較簡單,入門也很快很快。java網路編程主要包括兩個部分:1.Socket;2.URL部分。不過第二部分也完全建立在第一部分的基礎上。

1. Socket包括客戶端的Socket和伺服器端的ServerSocket。還有就是DatagramSocket和DatagramPacket,它對應於UDP通信協議。 總之,Socket部分是建立其它高級協議的基礎。

2. URL類是一個網路資源定位器,通常和具體的網路協議如HTTP,FTP,Telnet……相關。通過該類可以連接網路上的資源,通過其openStream可以以io包中的流(InputStream)的形式讀取網路資源;通過其OpenConnection方法,可以打開一個連接,在此連接上可以不僅可以完成讀的操作,還可以完成寫的操作。

Java的網路編程大體包括以上兩部分。網路編程和IO以及多線程部分非常密切,在學習此部分前大家一定對這兩部分了解比較透徹。

學習了以上部分你可以研究java.net包中的與此相關的源代碼了!研究所有的源代碼還為時尚早。在整個net包中包含:ContentHandlerFactory、URLStreamHandlerFactory、URLStreamHandler、URLClassLoader等輔助類,它們構成了java.net網路編程的框架,通過研究其源代碼,你不僅可以快速理解java.net包,還可以為以後擴展該包打下基礎,甚至可以將此思維方式運用到自己的項目中。

到此為止你對java.net包應該才了解60%,還有一部分你可以使用JDecompiler之類的反編譯軟體打開你JDK安裝目錄下\jdkxxx\jre\lib目錄中的rt.jar,用WinRAR之類的軟體打開它的sun.net包,反編譯所有的文件,它是URL類工作的細節。當研究完該sun.net包,你就會對整個網路編程很熟悉很熟悉了。

一切看起來我們已經對網路編程很精通了。其實不然,剛剛開始而已,要想深入,請繼續吧!網路上很多優秀的網路編程庫甚至軟體可以為我們「添加功力」。如Apache的HttpCore和HTTPConnection 是兩個和HTTP協議相關庫;JGroups是研究分布式通信、群組通信的必讀庫;接著我們可以研究P2P的軟體包,如Sun公司的JXTA,它可能是java平台點對點通信未來的標准哦!接著你可以研究成熟得不得了,使用極其廣泛得P2P軟體Azureus!www.sourceforge.net可以下載到!

千里之行始於足下!Just do it !(目前我也只研究了net包,其它的會在不久的將來繼續深入。Sun公司因為某些原因沒有公開net的其它實現細節,在其允許將其源代碼以文字的形式加以研究,以及允許將其沒有公開的實現寫入書中時,我很希望能出一本java網路編程的書籍,以飧廣大讀者!!)

6. Servlet和JSP
Servlet、JSP的書也是滿地都是!值得推薦的也僅僅兩三本。實推Addison Wiley的《Servlets and JavaServer pages :The J2EE Technology Web Tier》,又是一本很厚的哦!國外2003年出版、784頁,講得比較全,例子也很多,特別是第八章Filter,舉了幾個不錯的例子。其它所有我看到的關於Servlet和JSP的書都沒有如此深入的!(可能有我沒有看到而已)。O』reilly的《Java Servlet Programming》和《Java Server Pages》相對比較好懂一些,可以讀讀!

在大家學習Servlet和Jsp之前我還是要提醒一下:

本質上說Servlet就是一個實現Servlet介面的、部署於伺服器端的伺服器端的程序罷了!它可以象寫其它任何java應用程序一樣編寫,它可以操作資料庫、可以操作本地文件、可以連接本地EJB……編寫Servlet程序的一般流程為:

1. 繼承一個HttpServlet類;

2. 覆蓋其doGet、doPost方法;

3. 在覆蓋方法的內部操作方法參數HttpServletRequest和HttpServletResponse。

4. 讀取請求利用HttpServletRequest。利用HttpServletRequest你可以操作Http協議的協議頭、可以得到請求的操作方法、可以得到請求的路徑、可以得到請求的字元串、以及和請求客戶相關的信息,更主要的你可以得到Cookie和HttpSession這兩個對象。

5. 利用Cookie你可以操作「甜心」對象或者將其寫入HttpServletResponse中。

6. 向客戶輸出信息可以使用HttpServletResponse。使用HttpServletResponse可以寫入各種類型的協議頭、可以增加Cookie、可以重定向其它URL、可以向客戶發送Http協議的狀態碼。

7. 利用HttpSession在會話內完成你想實現的任何功能。

同時Servlet還提供了一些事件和事件監聽器(簡單的觀察者模式而已)。還有就是過濾器(Filter)和包裝器(ServletRequestWrapper、ServletResponseWrapper)――簡單的流的使用和裝飾器模式的使用。

學習Sevlet、JSP必然要部署到伺服器中,記住通常文件部署的步驟和參數的設置以及在程序中如何使用就可以了。

完全理解Servlet後,學習jsp相對比較容易了!Jsp完全建立在Servlet的基礎上,它是為了迎合那些喜歡在Html文檔中嵌入腳本(如:PHP之類的網頁編程語言)的程序員的需要罷了!學起來也相當的容易!

一切看起來似乎那麼的風平浪靜,簡單好學!簡單的表象背後有其復雜的機理。要想對Servlet和Jsp徹底研究,你得研究Tomcat等開源軟體的具體實現。它無非就是一個伺服器,在客戶利用網頁通過HTTP協議向伺服器發送請求後,伺服器將此HTTP請求轉化為相應的HttpServletRequest對象,調用你編寫的Servlet罷了,在你的Servlet中你肯定操作了此HttpServletRequest了吧,同時操作了HttpServletResponse了吧,伺服器就將此HttpServletResponse按照HTTP協議的要求利用HTTP協議發送給你的瀏覽器了!在伺服器端的Jsp網頁在被客戶請求後,Tomcat會利用編譯軟體,使用javax.servlet.jsp包中的模板,編譯此jsp文件,編譯後就是一個Servlet!以後的操作和Servlet完全一樣哦!

在Servlet和Jsp的基礎上出現了,所謂的高級技術:JSTL,Struts……無非就是一些標簽和MVC模式的使用。

繼續前進吧!勝利就在前方!!

7. 多線程
一個看起來很神秘,卻很容易上手、很難精通的方向!

我推薦兩本我感覺很好的書籍。首先是我第一本能上手看的這方面的書,Sams 1998年出版的《Java Thread Programming》,寫得暴好,很容易讀懂,我有空還時常看當時的筆記!要知道怎麼好你自己看吧!第二本OReilly三次出版的《Java Threads》,最新是2004版,國內好像有中文版,推薦你還是看英文版的吧!書中談到了與多線程相關的N個方向,如IO、Swing、Collection等等。

給大家一點提示吧!java類庫中與多線程相關的類不是很多,主要有:Thread、ThreadGroup以及ThreadLocal和InheritableThreadLocal四個類和一個Runnable介面;關鍵字synchronize、volatile ;以及Object對象的wait、notify、notifyAll方法!

1 Thread是多線程的核心類,提供了一系列創建和操作多線程的方法。

2 ThreadGroup是一個管理Thread的工具類。

3 ThreadLocal和InheritableThreadLocal為Thread提供了一個類似保險箱功能的存儲線程對象的類!

4 Runnable不用說了吧!

5 synchronize是同步方法和同步塊的核心哦!多個線程調用此方法時,只有一個線程可以使用此方法,其它方法阻塞,從而保證被操作對象內部狀態完整性。某個線程調用帶有synchronize的方法或塊時會得到該對象的對象鎖,完成塊中的操作後釋放此對象鎖,從而其它對象可以繼續操作。

6 wait、notify、notifyAll提供了有效的等待/通知機制。Java語言中每一個對象都有一個休息室,任何線程在其操作的對象的狀態不滿足的情況下,在該對象的休息室中休息,釋放對象鎖;當其它線程操作該對象後,喚醒休息室中的線程,它們再檢查條件,當條件滿足後,執行相應的操作。

多線程大致就這么多基礎的!簡單嗎!這對於一個真正的程序員應該是不夠的,真正對多線程要有所掌握,請您研究java.util.concurrent包吧!大師Doug Lea的作品,原先是一個開源的一致性編程的庫,後來被Sun公司並入java類庫。作者的網站上也有另外一個版本的該類庫!值得研究的好東西!Hibernation、OpenJMS等開源軟體都使用了此包!

8. 設計模式
談到設計模式很多人多會推薦GOF的那本,該書在Amzon上是五星級的推薦書籍。不過對於學習java沒多久的、特別是java初學者,我很不推薦這本書。主要是該書的例子基本都是C++的,很多細節沒有講述得足夠清楚。

我給大家推薦的第一本是閻宏博士的《Java 與模式》,它是第一本中國人自己寫的關於設計模式的書籍,寫的比較有趣,融合了很多中華民族的文化和觀念,例子、類圖都比較多,且相對簡單!非常不錯的入門書籍――又是大塊頭哦!

其次我推薦Wiley出版社出版的《Pattern In Java》一套三本,我才看了第一本,好像第二本不怎麼樣,第三本還不錯!

第三本是中文翻譯版的關於多線程模式的(很難得的中文翻譯版)中國鐵道出版社2003年出版的《Java多線程設計模式》,將多線程模式講得非常淺顯,配有大量的圖例,每章都有習題,最後有答案!我研究多線程模式就是由它開始的!

第四本,今年出版的Head First系列的《Head First Design Pattern》,秉承Head First系列圖書的優點,大量的類圖、豐富的實例、有趣的註解,值得購買!

其次在J2EE方向你可以研究閱讀Addison Wesley 2002年出版的《Patterns of Enterprise Application Architecture》,眾多大腕的作品,講企業消息集成的!Sun提供的《J2EE PATTERNS SL500》也很好!晚了推薦那一本Amzon 4星半的《Holub on patterns》,大師的作品,提供了,很值得研究的例子,不過對上面四本不是很熟悉的讀者,最好不要讀它!可能會讓你比較累!

我學習設計模式經過一段很曲折的路線,前前後後大約看了20本,閻宏博士的《Java 與模式》我看了4遍,還排除我第一次基本沒看懂的看!記得研一時老師給我們講了GOF的那本,作為選修課,我和它們計算機系的碩士、博士們一起,到最後一個班40-50個人,不超過3個人明白,我也沒有明白任何一點(基礎差吧――主要我對C++語言一點都不了解),憑我不伏輸的性格,我認為我對java語言理解還可以,我就借了《Java 與模式》,結果還是基本沒看懂。很有幸的是讀研三時,聽過了上交大饒若楠老師關於Java OOP語言的講座,我懂了組合書籍模式等三種設計模式後,對其它模式有了強烈的興趣和要征服它的願望!工作後我買的第一本就是《Java 與模式》,第一遍花了2個月研究了這個1000多頁的大塊頭,後來第三遍15天左右就可以搞定,筆記記了一大本!從此一發不可收拾。

選對書、埋頭研究。相信很快就會入門的!

學習Java語言8個簡單的部分,這只是我們研究Java語言的開始!這些都懂了充其量一個java程序員而已,後面的路很長很長!我們可以繼續研究資料庫實現的源代碼、Servlet伺服器的源代碼、RMI、EJB、JNDI、面向方面編程、重構、ANT工具、Eclipse工具、Spring工具、JBoss、JOnAS、Apache Geronimo等J2EE伺服器!研究了這些你可能會成為一個出色的J2EE Architecture!你可以繼續研究剖析器、編譯器、JNODE(java寫的操作系統)……

感謝大家有此耐心,聽我羅羅嗦嗦大半天!感謝大家的閱讀,感謝群里的朋友!這篇文章主要應群里朋友的呼聲――不知道如何選書、不知道從何看起!大半天的功夫完成趕此文章,字句上難免有失誤,同時由於能力有限不凡有錯誤!請閱讀後批評指正!

上面基本是我研究java語言的順序,以上書籍都是我閱讀過的,不存在替任何出版社宣傳的成分!有的方法可能不適合你,假如你能收獲一點,兩點甚至更多,請你不要吝嗇推薦給你的朋友――共同學習!

感謝大家的閱讀;感謝互聯網的設計者;感謝java的設計師;感謝www.open-open.com和www.sourceforge.net網站!

『叄』 如何繞過android網路安全配置

Android Nougat(Android 7)引入了一種名叫網路安全配置(Network Security Configuration)的新型安全功能,這種新功能可以允許Android開發者們在無需修改App代碼的情況下自定義他們的網路安全設置。

但是這種功能將有可能影響Android移動端應用的安全測評。如果需要攔截HTTPS流量,那麼就必須安裝代理證書,而且還必須安裝在「用戶證書」之中,而默認情況下這類證書是不被信任的。

接下來,我們將給大家介紹這種新機制的運行模式,以及如何通過重新編譯或運行時鉤子機制來修改這種新型安全機制的默認行為。

開發者如何使用該功能

為了修改默認配置,我們需要在resources目錄中創建一個XML文件來指定自定義配置信息。下面給出的是一份配置文件樣本,代碼給應用程序的所有HTTPS鏈接配置了用戶證書:

<?xml version="1.0"encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="system"/>
<certificates src="user"/>
</trust-anchors>
</base-config>
</network-security-config>

除此之外,該文件還需要在AndroidManifest文件中進行引用,即在application標簽中的android:networkSecurityConfig參數中指定:

<?xml version="1.0"encoding="utf-8"?>
<manifest ... >
<applicationandroid:networkSecurityConfig="@xml/network_security_config"
... >
...
</application>
</manifest>

滲透測試人員如何繞過該功能

重新編譯

如果待測試的應用程序運行在Android 7以及更高版本的Android平台中(或者targetSdkVersion鍵配置為版本24或更高),應用程序很可能使用的是默認配置。因此,用戶證書(例如代理CA證書)將不會被應用程序所信任。

一般來說,修改默認配置的方法是在插入了XML內容(激活證書容器)之後再對應用程序進行重新編譯。那麼接下來,我們就要使用apktool來對應用程序進行修改了。

首先,我們要做的就是使用apktool來對應用程序進行反編譯。完成之後,我們還需要在resources目錄中創建一個XML文件並修改AndroidManifest.xml文件中的相關參數(指向網路安全配置文件)。此時,我們就可以再次使用apktool來對應用程序進行重新編譯,然後使用jarsigner工具來對生成的APK文件簽名。

當我們使用任意證書完成對APK文件的重新簽名後,我們就可以使用adb來將其安裝到手機之中了。如果手機經過配置後可以通過中間代理(例如Burp Suite)來發送流量,那麼只要手機系統中安裝了CA證書,我們就可以攔截HTTPS流量了。

運行時鉤子

但是在某些情況下,剛才所介紹的方法也許是不可行的。比如說,如果應用程序使用了shareId來跟其他應用程序共享同一ID,而我們又需要直接訪問其數據的話,那麼這兩個應用程序必須使用同一份證書來進行簽名。如果應用程序經過了重新編譯和重新簽名之後,那這個保護功能也就多餘了,而且我們也不可能再使用開發者之前的初始證書來對修改後的APK進行簽名。

對於這種場景,我們就可以使用動態構造技術了,因為這種方法可以允許我們在運行時對程序的行為進行修改而無須修改應用程序的代碼。為了實現這種操作,我們需要創建一個Frida腳本來調整應用程序(目標SDK版本>=24)網路安全配置的默認行為。

android.security.net.config包實現了網路安全配置模塊,其主類ManifestConfigSource可以載入XML文件中自定義的配置信息,如果resources文件不存在的話,它將會載入默認配置。相關代碼如下所示:

package android.security.net.config;
public class ConfigSource {

. . .
private ConfigSource getConfigSource() { synchronized (mLock) {

. . .
if (mConfigResourceId != 0) {

. . .

source = newXmlConfigSource(mContext, mConfigResourceId, debugBuild, mTargetSdkVersion,mTargetSandboxVesrsion);
} else {
. . .
source = new DefaultConfigSource(usesCleartextTraffic,mTargetSdkVersion, mTargetSandboxVesrsion);
}
mConfigSource = source; return mConfigSource;
}
}
. . .
}

DefaultConfigSource類是ManifestConfigSource類中定義的一個私類,如果沒有使用XML文件來修改配置信息的話,系統將會默認使用這個類:

package android.security.net.config;
public class ConfigSource {
...
private static final class DefaultConfigSource implements ConfigSource { private final NetworkSecurityConfig mDefaultConfig; public DefaultConfigSource(boolean usesCleartextTraffic, inttargetSdkVersion, int targetSandboxVesrsion) {
mDefaultConfig =NetworkSecurityConfig.getDefaultBuilder(targetSdkVersion,
targetSandboxVesrsion)
.setCleartextTrafficPermitted(usesCleartextTraffic)
.build();
} @Override
public NetworkSecurityConfig getDefaultConfig() { return mDefaultConfig;
} @Override
public Set<Pair<Domain, NetworkSecurityConfig>>getPerDomainConfigs() { return null;
}
}
}

請大家看看這個類的構造器,它可以接收三個參數,其中一個就是應用程序的目標SDK版本。這個值可以使用getDefaultBuilder()方法來構造NetworkSecurityConfig類。在最後一段代碼中,如果targetSdkVersion的值小於或等於23(Android Marshmallow,即Android 6.0),代碼將會載入用戶證書。

package android.security.net.config;
public final class NetworkSecurityConfig {
...
public static final Builder getDefaultBuilder(int targetSdkVersion, inttargetSandboxVesrsion) {
Builder builder = new Builder()
.setHstsEnforced(DEFAULT_HSTS_ENFORCED) // System certificatestore, does not bypass static pins.
.addCertificatesEntryRef(
newCertificatesEntryRef(SystemCertificateSource.getInstance(), false)); final = targetSandboxVesrsion < 2;
builder.setCleartextTrafficPermitted(cleartextTrafficPermitted); // Applications targeting N andabove must opt in into trusting the user added certificate
// store.
if (targetSdkVersion <=Build.VERSION_CODES.M) { // User certificate store,does not bypass static pins.
builder.addCertificatesEntryRef(
newCertificatesEntryRef(UserCertificateSource.getInstance(), false));
} return builder;
}

...

接下來,我們需要使用一個Frida腳本來掛鉤DefaultConfigSource類的構造器,並修改其中的targetSdkVersion值。除此之外,這個腳本還需要掛鉤getDefaultBuilder()方法來確保這個值已經被成功修改了。

Java.perform(function(){
var ANDROID_VERSION_M = 23;

var DefaultConfigSource =Java.use("android.security.net.config.ManifestConfigSource$DefaultConfigSource");
var NetworkSecurityConfig = Java.use("android.security.net.config.NetworkSecurityConfig");

DefaultConfigSource.$init.overload("boolean","int").implementation = function(usesCleartextTraffic,targetSdkVersion){
console.log("[+] Modifying DefaultConfigSource constructor"); return this.$init.overload("boolean","int").call(this, usesCleartextTraffic, ANDROID_VERSION_M);
};

DefaultConfigSource.$init.overload("boolean", "int","int").implementation = function(usesCleartextTraffic,targetSdkVersion, targetSandboxVersion){
console.log("[+]Modifying DefaultConfigSource constructor"); return this.$init.overload("boolean", "int","int").call(this, usesCleartextTraffic, ANDROID_VERSION_M,targetSandboxVersion);
};

NetworkSecurityConfig.getDefaultBuilder.overload("int").implementation= function(targetSdkVersion){
console.log("[+] getDefaultBuilder original targetSdkVersion =>" + targetSdkVersion.toString()); return this.getDefaultBuilder.overload("int").call(this, ANDROID_VERSION_M);
};

NetworkSecurityConfig.getDefaultBuilder.overload("int","int").implementation = function(targetSdkVersion,targetSandboxVersion){
console.log("[+] getDefaultBuilder original targetSdkVersion =>" + targetSdkVersion.toString()); return this.getDefaultBuilder.overload("int","int").call(this, ANDROID_VERSION_M, targetSandboxVersion);
};
});

現在,在上面給出的Frida腳本的幫助下,我們可以使用類似Burp Suite之類的HTTP代理來攔截應用程序(所有目標SDK版本>=24的應用程序)的網路流量。

$ frida -U -l ntc.js -f<package_name> --no-pause

『肆』 紼嬪簭鑴卞3鏄浠涔堟剰鎬濓紵

澹崇殑姒傚康錛
鎵璋撯滃3鈥濆氨鏄涓撻棬鍘嬬緝鐨勫伐鍏楓
榪欓噷鐨勫帇緙╁苟涓嶆槸鎴戜滑騫蟲椂浣跨敤鐨凴AR銆乑IP榪欎簺宸ュ叿鐨勫帇緙╋紝澹崇殑鍘嬬緝鎸囩殑鏄閽堝筫xe銆乧om銆佸拰dll絳夌▼搴忔枃浠惰繘琛屽帇緙╋紝鍦ㄧ▼搴忎腑鍔犲叆涓孌靛傚悓淇濇姢灞傜殑浠g爜錛屼嬌鍘熺▼搴忔枃浠朵唬鐮佸け鍘繪湰鏉ラ潰鐩錛屼粠鑰屼繚鎶ょ▼搴忎笉琚闈炴硶淇鏀瑰拰鍙嶇紪璇戱紝榪欐靛傚悓淇濇姢灞傜殑浠g爜錛屼笌鑷鐒剁晫鍔ㄦ嶇墿鐨勫3鍦ㄥ姛鑳戒笂鏈夊緢澶氱浉浼肩殑鍦版柟錛屾墍浠ユ垜浠灝卞艦璞″湴縐頒箣涓虹▼搴忕殑澹熾

澹崇殑浣滅敤錛
1.淇濇姢紼嬪簭涓嶈闈炴硶淇鏀瑰拰鍙嶇紪璇戙
2.瀵圭▼搴忎笓闂ㄨ繘琛屽帇緙╋紝浠ュ噺灝忔枃浠跺ぇ灝忥紝鏂逛究浼犳挱鍜屽偍瀛樸

澹沖拰鍘嬬緝杞浠剁殑鍘嬬緝鐨勫尯鍒鏄
鍘嬬緝杞浠跺彧鑳藉熷帇緙╃▼搴
鑰岀粡榪囧3鍘嬬緝鍚庣殑exe銆乧om鍜宒ll絳夌▼搴忔枃浠跺彲浠ヨ窡姝e父鐨勭▼搴忎竴鏍瘋繍琛

涓嬮潰鏉ヤ粙緇嶄竴涓媯嫻嬪3鐨勮蔣浠
PEID v0.92
榪欎釜杞浠跺彲浠ユ嫻嬪嚭 450縐嶅3
鏂扮増涓澧炲姞鐥呮瘨鎵鎻忓姛鑳斤紝鏄鐩鍓嶅悇綾繪煡澹沖伐鍏蜂腑錛屾ц兘鏈寮虹殑銆
鍙﹀栬繕鍙璇嗗埆鍑篍XE鏂囦歡鏄鐢ㄤ粈涔堣璦緙栧啓鐨刅C++銆丏elphi銆乂B鎴朌elphi絳夈
鏀鎸佹枃浠跺す鎵歸噺鎵鎻

鎴戜滑鐢≒EID瀵筫asymail.exe榪涜屾壂鎻
鎵懼埌澹崇殑綾誨瀷浜
UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo
璇存槑鏄疷PX鐨勫3
涓嬮潰榪涜

姝ラ2 鑴卞3
瀵逛竴涓鍔犱簡澹崇殑紼嬪簭錛屽幓闄ゅ叾涓鏃犲叧鐨勫共鎵頒俊鎮鍜屼繚鎶ら檺鍒訛紝鎶婁粬鐨勫3鑴卞幓錛岃В闄や吉瑁咃紝榪樺師杞浠舵湰鏉ョ殑闈㈢洰銆傝繖涓榪囩▼灝卞彨鍋氳劚澹熾
鑴卞3鎴愬姛鐨勬爣蹇
鑴卞3鍚庣殑鏂囦歡姝e父榪愯岋紝鍔熻兘娌℃湁鎹熻椼
榪樻湁涓鑸鑴卞3鍚庣殑鏂囦歡闀垮害閮戒細澶т簬鍘熸枃浠剁殑闀垮害銆
鍗充嬌鍚屼竴涓鏂囦歡錛岄噰鐢ㄤ笉鍚岀殑鑴卞3杞浠惰繘琛岃劚澹籌紝鐢變簬鑴卞3杞浠剁殑鏈虹悊涓嶉氾紝鑴卞嚭鏉ョ殑鏂囦歡澶у皬涔熶笉灝界浉鍚屻

鍏充簬鑴卞3鏈夋墜鍔ㄨ劚澹沖拰鑷鍔ㄨ劚澹
鑷鍔ㄨ劚澹沖氨鏄鐢ㄤ笓闂ㄧ殑鑴卞3鏈鴻劚 寰堢畝鍗 鎸夊嚑涓嬪氨 OK浜
鎵嬪姩鑴卞3鐩稿硅嚜鍔ㄨ劚澹 闇瑕佺殑鎶鏈鍚閲忓井楂 榪欓噷涓嶅氳翠簡

UPX鏄涓縐嶅緢鑰佽屼笖寮哄ぇ鐨勫3 涓嶈繃瀹冪殑鑴卞3鏈洪殢澶勫氨鑳芥壘鍒
UPX鏈韜紼嬪簭灝卞彲浠ラ氳繃
UPX 鏂囦歡鍚 錛峝
鏉ヨВ鍘嬬緝 涓嶈繃榪欎簺闇瑕佺殑 鍛戒護絎︿腑杈撳叆
浼樼偣鏂逛究蹇鎹 緙虹偣DOS鐣岄潰
涓轟簡璁╁ぇ瀹剁渷鍘婚夯鐑︾殑鎿嶄綔 灝變駭鐢熶簡涓縐嶅彨 UPX SHELL鐨勫栧3杞浠

UPX SHELL v3.09
UPX 澶栧3紼嬪簭錛
鐩鐨勮︰PX鐨勮劚澹沖姞澹沖偦鐡滃寲

娉錛氬傛灉紼嬪簭娌℃湁鍔犲3 閭d箞鎴戜滑灝卞彲浠ョ渷鍘葷浜屾ョ殑鑴卞3浜嗭紝鐩存帴瀵硅蔣浠惰繘琛屽垎鏋愪簡銆

鑴卞畬鍚 鎴戜滑榪涜

姝ラ3
榪愯岀▼搴
灝濊瘯娉ㄥ唽
鑾峰彇娉ㄥ唽鐩稿叧淇℃伅

閫氳繃灝濊瘯娉ㄥ唽 鎴戜滑鍙戠幇涓涓鍏抽敭鐨勫瓧絎︿覆

鈥滃簭鍒楀彿杈撳叆閿欒鈥

姝ラ4
鍙嶆眹緙

鍙嶆眹緙栦竴鑸鐢ㄥ埌鐨勮蔣浠 閮芥槸 W32Dasm
W32dasm瀵逛簬鏂版墜 鏄撲簬涓婃墜 鎿嶄綔綆鍗
W32Dasm鏈夊緢澶氱増鏈 榪欓噷鎴戞帹鑽愪嬌鐢 W32Dasm 鏃犳瀬鐗

鎴戜滑鐜板湪鍙嶆眹緙朩ebEasyMail鐨勭▼搴忔枃浠秂asymail.exe

鐒跺悗鐪嬬湅鑳戒笉鑳芥壘鍒板垰鎵嶇殑瀛楃︿覆

姝ラ5
閫氳繃eXeScope榪欎釜杞浠舵潵鏌ョ湅鏈鑳藉湪w32dasm涓姝g『鏄劇ず鐨勫瓧絎︿覆淇℃伅

eXeScope v6.50
鏇存敼瀛椾綋錛屾洿鏀硅彍鍗曪紝鏇存敼瀵硅瘽妗嗙殑鎺掑垪錛岄噸鍐欏彲鎵ц屾枃浠剁殑璧勬簮錛屽寘鎷(EXE錛孌LL錛孫CX錛夌瓑銆傛槸鏂逛究寮哄ぇ鐨勬眽鍖栧伐鍏鳳紝鍙浠ョ洿鎺ヤ慨鏀圭敤 VC++ 鍙 DELPHI 緙栧埗鐨勭▼搴忕殑璧勬簮錛屽寘鎷鑿滃崟銆佸硅瘽妗嗐佸瓧絎︿覆琛ㄧ瓑
鏂扮増鍙浠ョ洿鎺ユ煡鐪 鍔犲3鏂囦歡鐨勮祫婧

鎴戜滑鎵撳紑eXeScope
鎵懼埌濡備笅瀛椾覆絎

122,"搴忓垪鍙瘋緭鍏ラ敊璇 "
123,"鎮鍠滄偍鎴愪負WebEasyMail姝e紡鐢ㄦ埛涓鐨勪竴鍛! "
124,娉ㄥ唽鎴愬姛
125,澶辮觸

閲嶇偣鏄122

姝ラ6
鍐嶆¤繑鍥 w32dasm

* Possible Reference to String Resource ID=00122: "?椴筫?"

浣嗘槸鍙屽嚮鍚
鎻愮ず璇存壘涓嶅埌榪欎釜瀛椾覆絎
涓嶆槸娌℃湁 鏄鍥犱負 "?椴筫?"鏄涔辯爜 w32dasm瀵逛簬涓鏂囨樉紺轟笉鏄澶濂
姣曠珶涓嶆槸鍥戒駭杞浠

鍏堟妸浠婂ぉ浼氱敤鍒扮殑奼囩紪鍩烘湰鎸囦護璺熷ぇ瀹惰В閲婁竴涓

mov a,b ;鎶奲鐨勫艱祴緇檃錛屼嬌a錛漛
call 錛氳皟鐢ㄥ瓙紼嬪簭 錛屽瓙紼嬪簭浠ret緇撲負
ret 錛氳繑鍥炰富紼嬪簭
je鎴杍z 錛氳嫢鐩哥瓑鍒欒煩杞
jne鎴杍nz 錛氳嫢涓嶇浉絳夊垯璺寵漿
push xx錛歺x 鍘嬫爤
pop xx錛歺x 鍑烘爤

鏍堬紝灝辨槸閭d簺鐢辯紪璇戝櫒鍦ㄩ渶瑕佺殑鏃跺欏垎閰嶏紝鍦ㄤ笉闇瑕佺殑鏃跺欒嚜鍔ㄦ竻妤氱殑鍙橀噺鐨勫瓨鍌ㄥ尯銆傞噷闈㈢殑鍙橀噺閫氬父鏄灞閮ㄥ彉閲忋佸嚱鏁板弬鏁扮瓑銆

鎴戜滑鎼滅儲
Possible Reference to String Resource ID=00122
鍥犱負瀵笶鏂囨敮鎸佸緢濂
鎴戜滑鏉ュ埌浜

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00406F17(C) //璺寵漿鏉ヨ嚜 406F17
|

* Possible Reference to String Resource ID=00125: "1%"
|
:004070DD 6A7D push 0000007D
:004070DF 8D4C2410 lea ecx, dword ptr [esp+10]
:004070E3 E8F75A1200 call 0052CBDF

* Possible Reference to String Resource ID=00122: "?椴筫?"
|
:004070E8 6A7A push 0000007A
:004070EA 8D4C2408 lea ecx, dword ptr [esp+08]
:004070EE E8EC5A1200 call 0052CBDF

鎴戜滑鏉ュ埌

:00406F01 8B876C080000 mov eax, dword ptr [edi+0000086C]榪欓噷鏄瀵
:00406F07 8B4C2408 mov ecx, dword ptr [esp+08]
:00406F0B 50 push eax//榪欎袱涓猠ax鍜宔cx鍏ユ爤灝辨瘮杈冭╂垜浠鎬鐤戜簡
:00406F0C 51 push ecx//浜х敓娉ㄥ唽鐮
:00406F0D E8AE381100 call 0051A7C0//榪機ALL閲屽規敞鍐屼綅搴旇ヤ細鏈夎劇疆
:00406F12 83C40C add esp, 0000000C
:00406F15 85C0 test eax, eax// 媯嫻嬫敞鍐屼綅
:00406F17 0F85C0010000 jne 004070DD //涓嶅瓨鍦ㄦ敞鍐屼綅 灝變細璺沖埌4070DD灝變細鍑虹幇閭d釜閿欒鐨勫瓧涓茬︿簡

鎴戜滑璁頒綇406F01榪欎釜鍦板潃

鎺ョ潃榪涜屼笅涓姝

姝ラ7
榪欎竴姝ユ垜浠榪涜岀殑鏄璋冭瘯

鐢ㄥ埌鐨勮蔣浠舵槸ollydbg

濂戒簡鎴戜滑鎵懼埌浜 娉ㄥ唽鐮0012AF04 00FD4A10 ASCII ""

浣嗘槸榪欎釜騫朵笉鏄鎴戜滑鐨勪富瑕佺洰鐨

鎴戜滑榪樿佸仛鍑哄睘浜庤嚜宸辯殑娉ㄥ唽鏈

鐩鎬俊榪欎釜鏄寰堝氫漢姊﹀瘣浠ユ眰鐨勪簨鎯

姝ラ8
鍒朵綔娉ㄥ唽鏈

娉ㄥ唽鏈烘垜浠闇瑕佺殑鏄涓涓狵EYMAKE鐨勮蔣浠
鍥犱負2.0鏄婕旂ず鐗堣屼笖鍋滄㈡洿鏂頒簡
鎵浠ユ垜浠鐢1.73鐗

鍋氫竴涓鍐呭瓨娉ㄥ唽鏈 闇瑕佷笅闈㈠嚑涓璧勬枡

涓鏂鍦板潃錛406F0C
涓鏂嬈℃暟錛1
絎涓瀛楄妭錛51
鎸囦護闀垮害錛1

濂戒簡 涓涓瀹岀編鐨勬敞鍐屾満 灝變駭鐢熶簡
榪樹笉璧跺揩鍙戠粰浣犵殑鏈嬪弸 鐐鑰涓涓
淇濊瘉璁╀粬榪風硦姝 浣╂湇寰椾綘瑕佹
鍏跺疄鏈鍚庤繕鏈夊嚑涓姝ラ
灝辨槸鎾板啓鐮存枃
涓嶈繃澶у墮兘鏄鏂版墜 榪欎釜姝ラ 灝卞幓浜嗗惂

涓嶇煡涓嶈夎翠簡榪欎箞澶氬簾璇 甯屾湜鑳藉瑰ぇ瀹舵湁浜涗綔鐢
濡傛灉鏈変粈涔堜笉鎳 涓嶇悊瑙g殑浜嬫儏 璇瘋仈緋繪垜 鎴栬呭埌璁哄潧鍙戣創
QQ:9595859
MSN:[email protected]
浠婂ぉ鐨勮劇▼灝卞埌榪欓噷 澶у惰刀蹇鍘誨姩鎵嬪疄璺靛惂鍀烇紒

--------------------------------------------------------------------------------

-- 浣滆咃細admin
-- 鍙戝竷鏃墮棿錛2005-10-11 11:13:00

-- 瀹炴垬鏌ュ3鑴卞3鍒朵綔鐮磋В娉ㄥ唽鏈烘渶璇︾粏鐨勬暀紼

澶у跺ソ錛屾垜鏄痥carhc
浠婂ぉ8鏈1鏃ヤ簡 鍒氫粠鍖婚櫌鍥炴潵 姝eソ鍑屾櫒
榪欐湡鐨勮劇▼鍋氭櫄浜 榪欓噷緇欏ぇ瀹墮亾涓姝
8鏈1鏃 濡傛灉鎴戞病璁伴敊
鏄寤哄啗鑺
鏃㈢劧鏄寤哄啗鑺 涔熻佽薄寰佹х殑寮勪簺涓滆タ鏉
涓轟簡寤哄啗鑺 榪欐湡鎴戦夋嫨鎵撳嚮榛戞殫鍔垮姏錛嶏紞榛戠ぞ浼

閭d箞浠婂ぉ鐨勪富棰樺氨鏄
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛
榪庢帴寤哄啗鑺傦紝閾查櫎榛戠ぞ浼
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛
棣栧厛浠嬬粛杞浠

榛戠ぞ浼2.0
[鍔熻兘綆浠媇:
1 浜斿ぇ蹇呭囧姛鑳
榪滅▼灞忓箷; 瀹屽叏鎺у埗; 鏂囦歡浼犻; Telnet; 榪滅▼鍏蟲満
2 鎻愪緵IP鍙嶅脊瀹氫綅鍔熻兘
鍙浠ラ氳繃闈欐両P鍔ㄦ佸煙鍚,緗戦〉鏂囦歡鐨勬柟寮忓弽寮歸氱煡IP.
3 闆嗘垚vidc瀹㈡埛絝
鍐呯綉鐨勬湅鍙嬫兂鐢ㄨ嚜鍔ㄤ笂綰垮姛鑳,鍙浠ュ疄鐜頒簡
4 鏈杞浠墮泦鎴愪簡甯哥敤鏀誨嚮宸ュ叿(濡侽penTelnet OpenTftp絳)
閫氳繃IPC鎷瘋礉,鑰屼笖甯︽湁鏍囧噯鐨勬嫹璐濊繘搴,鍏ㄧ悆棣栨¢潰涓;
opentelnet灝變笉浠嬬粛浜,鐩鎬俊澶у墮兘鐭ラ亾;
opentftp涓烘湰杞浠剁嫭鍒,鍙浠ヨ繙紼嬪紑鍚痶ftp鏈嶅姟;
5 鏈杞浠墮泦鎴愮殑鏋侀熺鍙f壂鎻忓櫒(鎵鎻忛熷害涓栫晫棰嗗厛)
鏈寮濮嬫垜鐢ㄧ殑鎵鎻忓櫒鏄澶у悕榧庨紟鐨凷uperScan3.0,鎰熻夐熷害寰堟參;
鍚庢潵鏀圭敤SSPort1.0 鎵鎻忛熷害鏈変簡鏄庢樉鐨勬彁楂.
緇忚繃閫熷害瀵規瘮,鏈杞浠舵壂鎻忛熷害姣擲SPort蹇 1/3 ,鏄瘲uperScan鐨凬鍊!!!
鎴戠殑鏈哄櫒鏄 璧涙壃700+256M鍐呭瓨,涓鑸鎵鎻忛熷害涓180鍙/縐;
涓浜涘彿縐板彲浠ヨ揪鍒1000鍙/縐掔殑鎵鎻忓櫒鍦ㄦ湰鏈轟笂璇曢獙鍙鏈120鍙/縐.
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
鍑嗗囧伐浣滐細

瀹夎呴粦紺句細
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
姝ラや竴 鏌ュ3

Peid v0.92
ASPack 2.12 -> Alexey Solodovnikov銆
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
姝ラや簩 鑴卞3

鎵嬪姩鑴卞3

蹇閫熻劚鎺堿SPACK鎵鏈夌増鏈鐨勬柟娉

鐨凮EP鍏抽敭鐐瑰湪涓嬮潰

0048D3AF 61 POPAD
0048D3B0 75 08 JNZ SHORT 榛戠ぞ浼.0048D3BA
0048D3B2 B8 01000000 MOV EAX,1
0048D3B7 C2 0C00 RETN 0C//402c4a
0048D3BA 68 00000000 PUSH 0

402ca4灝辨槸鎴戜滑瑕佹壘鐨凮EP

鑷鍔ㄨ劚澹

AspackDie v1.41

榪欐槸涓涓灝忓皬鐨 PE 鏂囦歡瑙e帇緙╁櫒 (EXE, DLL, ...) 濂瑰彲浠ヨВ鍘嬬緝
鑷 Aspack 2000 浠ュ悗鐨勪換浣 Aspack 鐗堟湰. 鍖呮嫭:

- Aspack 2000
- Aspack 2001
- Aspack 2.1
- Aspack 2.11
- Aspack 2.11c/d
- Aspack 2.12
- Aspack 2.12a/b
- 涓浜涙湭鐭ョ殑鐗堟湰

錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛
姝ラや笁 璇曡繍琛岀▼搴 鍙戠幇紿佺牬鐐

鐪嬪埌鍏抽敭瀛楃︿覆
鈥滄敞鍐岀爜閿欒!鈥
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛
姝ラゅ洓 W32DASM 瀵繪壘紿佺牬鐐

鐢╳32dasm杞藉叆宸茬粡鑴卞3鐨勭▼搴
瀛楃︿覆瀵熺湅
鏈鍙戠幇 瀛楃︿覆 鑰屾槸鍙戠幇涓鍫嗕貢鐮
澶у朵簬鏄涓瀹氭兂鍒頒簡絎涓鑺傜殑鍔炴硶

鐢‥XESCOPE
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛
姝ラゅ洓 瀵熸壘 瀛楃︿覆

鎵撳紑eXeScope 騫惰澆鍏 浣嗘槸鍙戠幇 閮芥病鏈夊瓧絎︿覆
榪欓」
涓哄暐鍛錛熷ぇ瀹朵竴瀹氫細鐤戦棶
涓鑸鐢╡XeScope鏌ヤ笉鍒
鎴戜滑灝嗗紑濮
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛
姝ラや簲 鏌ヨ㈣蔣浠剁殑緙栬瘧綾誨瀷

Peid v0.92
Microsoft Visual Basic 5.0 / 6.0
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
姝ラゅ叚 閲囩敤GetVBRes v0.51 瀵逛粯VB紼嬪簭

GetVBRes v0.51 涓涓闈炲父濂界殑VB奼夊寲宸ュ叿

瀵逛簬VB紼嬪簭 鎴戜滑鐢ㄤ笓闂ㄦ眽鍖栫敤鐨凣etVBRes v0.51鏉ュ逛粯瀹
涔熻告湁浜轟笉鐞嗚В 涓哄暐鐢ㄦ眽鍖栧伐鍏峰憿
鍏跺疄eXeScope涔熷睘浜庢眽鍖栧伐鍏
GetVBRes杞藉叆榛戠ぞ浼
鍙戠幇娌℃湁涔辯爜浜
鐪嬪埌鐨勫叏鏄瀹屾暣鐨勫瓧絎
鎴戜滑鎵懼埌浜
娉ㄥ唽鐮侀敊璇!
榪欎釜瀛楃︿覆
鎺ョ潃涓轟簡鑳芥悶鍒扮▼搴忓叧閿鐐瑰湴鍧
鎴戜滑鎶娾滄敞鍐岀爜閿欒!鈥
鏀規垚111111
涓哄暐鏀規垚111111鍥犱負111111111
淇濆瓨淇鏀
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛
姝ラゅ叚 鐢╓32Dasm杞藉叆淇鏀瑰悗鐨勬枃浠
鍙戠幇瀛楃︿覆涓鏈111111
閭d釜灝辨槸鎴戜滑淇鏀圭殑 鍘熸潵鏄鈥滄敞鍐岀爜閿欒!鈥

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004792EF(C)
|
:00479474 B904000280 mov ecx, 80020004
:00479479 B80A000000 mov eax, 0000000A
:0047947E 894D9C mov dword ptr [ebp-64], ecx
:00479481 894DAC mov dword ptr [ebp-54], ecx
:00479484 894DBC mov dword ptr [ebp-44], ecx
:00479487 8D5584 lea edx, dword ptr [ebp-7C]
:0047948A 8D4DC4 lea ecx, dword ptr [ebp-3C]
:0047948D 894594 mov dword ptr [ebp-6C], eax
:00479490 8945A4 mov dword ptr [ebp-5C], eax
:00479493 8945B4 mov dword ptr [ebp-4C], eax

* Possible StringData Ref from Code Obj ->"1111111" //鍒氭墠鎴戜滑鐪嬪埌鐨勬敞鍐屽悧閿欒鐨勫摝
|
:00479496 C7458C98194100 mov [ebp-74], 00411998
:0047949D C7458408000000 mov [ebp-7C], 00000008

鍙戠幇璺寵漿鏉ヨ嚜鍒4792EF
瀹夌収涔犳儻 鎴戜滑鏉ュ埌4792EF鍚 鎺ョ潃鍚戝墠鐪
鐪嬪埌涓涓璺沖埌榪欓噷鐨勯偅涓鍦板潃
榪欓噷鏄40928C

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00479278(C)
|
:0047928C 8B55E4 mov edx, dword ptr [ebp-1C]

* Reference T MSVBVM60.__vbaStrMove, Ord:0000h
|
:0047928F 8B3578124000 mov esi, dword ptr [00401278]
:00479295 8D4DE0 lea ecx, dword ptr [ebp-20]
:00479298 895DE4 mov dword ptr [ebp-1C], ebx
:0047929B FFD6 call esi
:0047929D 8B4DE8 mov ecx, dword ptr [ebp-18]
:004792A0 6A01 push 00000001
:004792A2 8D55E0 lea edx, dword ptr [ebp-20]
:004792A5 51 push ecx
:004792A6 52 push edx
:004792A7 E8440F0000 call 0047A1F0
:004792AC 8BD0 mov edx, eax
:004792AE 8D4DDC lea ecx, dword ptr [ebp-24]
:004792B1 FFD6 call esi
:004792B3 50 push eax
:004792B4 53 push ebx

* Reference T MSVBVM60.__vbaInStr, Ord:0000h
|
:004792B5 FF15E8114000 Call dword ptr [004011E8]
:004792BB 8BF0 mov esi, eax
:004792BD 8D45E8 lea eax, dword ptr [ebp-18]
:004792C0 F7DE neg esi
:004792C2 8D4DDC lea ecx, dword ptr [ebp-24]
:004792C5 50 push eax
:004792C6 1BF6 sbb esi, esi
:004792C8 8D55E0 lea edx, dword ptr [ebp-20]
:004792CB 51 push ecx
:004792CC 52 push edx
:004792CD F7DE neg esi
:004792CF 6A03 push 00000003
:004792D1 F7DE neg esi

* Reference T MSVBVM60.__vbaFreeStrList, Ord:0000h
|
:004792D3 FF150C124000 Call dword ptr [0040120C]
:004792D9 8D45D4 lea eax, dword ptr [ebp-2C]
:004792DC 8D4DD8 lea ecx, dword ptr [ebp-28]
:004792DF 50 push eax
:004792E0 51 push ecx
:004792E1 6A02 push 00000002

* Reference T MSVBVM60.__vbaFreeObjList, Ord:0000h
|
:004792E3 FF1548104000 Call dword ptr [00401048]
:004792E9 83C41C add esp, 0000001C
:004792EC 663BF3 cmp si, bx
:004792EF 0F847F010000 je 00479474

鎴戜滑鍦
004792AC鐪嬪埌涓嬮潰榪欎簺
EAX=0015A47C, (UNICODE "")
EDX=00000000

鎬鐤慐AX涓虹殑

涓烘敞鍐岀爜
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
姝ラや竷 鐢ㄤ笉紜瀹氭g『鐨勬敞鍐 灝濊瘯娉ㄥ唽



榪欎釜娉ㄥ唽鍚
鎴戜滑鍙戠幇 娉ㄥ唽鎴愬姛
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
姝ラゅ叓 鍒跺仛娉ㄥ唽鏈

Keymake v1.73

涓鏂鍦板潃錛4792AC
涓鏂嬈℃暟錛1
絎涓瀛楄妭錛8B
鎸囦護闀垮害錛2
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
姝ラや節 鍙戝竷娉ㄥ唽鏈

鎵句竴涓緗戠珯姣斿傞粦鍩烘垨鑰呬綘鐨勬湅鍙嬩箣闂
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
姝ラゅ嶮 浼戞伅

榛戠ぞ浼氱粓浜庡共鎺変簡
鐜板湪鍘繪壘浣犵殑鐢鋒湅鍙嬫垨鑰呭コ鏈嬪弸
鑰佸叕鎴栬呰佸﹩
鎵句釜鍦版柟鑱婅亰澶 鏀炬澗鏀炬澗
鍛婅瘔浠栦滑 浣犲垰鍒氭妸榛戠ぞ浼 鎽嗗鉤浜
涓瀹氬緢鏈夎叮鐨
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
璇劇▼緇撴潫
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
鏈変簨鎯呭ぇ瀹跺彲浠ュ幓璁哄潧
涓嶈繃浣犲傛灉鎬у瓙鎬
鎴栬呭珜鎴戝洖澶嶇殑閫熷害鎱
鎴戝緩璁浣犵洿鎺ヨ仈緋繪垜
鍙瑕佹垜鍦 鍩烘湰鍙浠ラ┈涓婄粰浣犺В絳
涓嶅湪鍙浠ョ暀璦
鎴戠殑涓や釜鑱旂郴鏂瑰紡
QQ:9595859
MSN:[email protected]
鏈鍚 璇翠竴涓浜
鎴戠殑濂蟲湅鍙嬫渶榪戠敓鐥呬簡
鎵浠ユ墠瀵艱嚧榪欐湡鐨勮劇▼ 榪欎箞鏅氭墠鍋氬嚭鏉
甯屾湜澶у惰兘鐞嗚В鎴
鎴戣繕甯屾湜澶у惰兘紲濈忓ス鏃╂棩搴峰
涓嶇劧鐨勮瘽
浣犱滑瑙佸埌鎴戠殑鏃ュ瓙鍙鑳戒細灝戜簡
鐢氳嚦鍙鑳戒細娑堝け鍦ㄤ綘浠鐪煎墠
濂戒簡涓嶈翠簡 浠婂ぉ灝辨槸鍒版OVER鍚
---------- kcarhc
2004騫8鏈1鏃 鍑屾櫒 娌堥槼

--------------------------------------------------------------------------------

-- 浣滆咃細admin
-- 鍙戝竷鏃墮棿錛2005-10-11 16:42:00

-- 浣跨敤OllyDbg蹇閫熻劚澹

浣滆咃細KU-鍑屻
鐩鏍囷細閲囩敤ASPACK銆乁PX鍔犲3鐨凬OTEPAD.EXE
宸ュ叿錛歄llyDbg 1.09鑻辨枃鐗堛丏UMP鎻掍歡銆丳Editor
緋葷粺錛歐in98SE
鍏抽敭璇嶏細 鑴卞3銆丱llyDbg銆丱D銆丏UMP銆丳USHAD銆丳OPAD

棰勫囩煡璇
銆 澶у氭暟澹抽兘鏈変竴涓鍏卞悓鐨勭壒鐐廣傚湪澹沖噯澶囧紑濮嬭В鍘嬫椂閮借佹墽琛孭USHAD錛屽綋澹寵В鍘
瀹屾椂閮借佽皟鐢≒OPAD銆傚埌搴昉USHAD鍜孭OPAD鏄浠涔堝共浠涔堢敤鐨勫憿錛熷叾瀹濸USHAD鏄鐢ㄦ潵灝
鎵鏈夋櫘閫氬瘎瀛樺櫒欏哄簭榪涙爤鐨勬寚浠わ紝POPAD鏄鎵鏈夋櫘閫氬瘎瀛樺櫒欏哄簭鍑烘爤鎸囦護銆侾OPAD鐨勫嚭
鏍堥『搴忓拰PUSHAD鐩稿弽銆傚3涓轟簡淇濇姢瀵勫瓨鍣錛屼究鍦ㄨВ鍘嬪墠灝嗘墍鏈夊瘎瀛樺櫒榪涙爤淇濇姢璧鋒潵錛
褰撹В鍘嬪畬鎴愬悗鍙堝皢瀵勫瓨鍣ㄥ嚭鏍堬紝鎮㈠嶅叾鍘熻矊錛屽苟灝咺P璁劇疆涓哄師紼嬪簭鐨凮EP銆傝繖鏍鋒垜浠灝卞彲浠ラ氳繃榪欎釜鐗圭偣蹇閫熻劚鎺夊氱嶈蔣浠剁殑澹熾

ASPACK綃
銆 鍏堢敤ASPACK灝哊OTEPAD.EXE鍔犲3銆傜敤OllyDbg錛堜互涓嬬畝縐癘D錛夎澆鍏ャ傜湅瑙佸厜鏍囧仠鍦
澹崇殑鍏ュ彛澶勩
0040D001 >銆60銆銆銆銆銆銆銆PUSHAD ;澹崇殑鍏ュ彛銆傚噯澶囧紑濮嬭В鍘嬶紝淇濇姢瀵勫瓨鍣
0040D002銆銆E8 03000000銆銆CALL銆銆NOTEPAD.0040D00A
鈥︹
鎴戜滑涓嶇″畠錛岀洿鎺ュ悜涓嬬炕欏墊壘POPAD鎸囦護銆傚湪40D3AF澶勬壘鍒癙OPAD
鈥︹
0040D3AF銆銆61銆銆銆銆銆銆銆POPAD ;瑙e帇瀹屾垚錛屾仮澶嶅瘎瀛樺櫒
0040D3B0銆銆75 08銆銆銆銆銆JNZ銆銆SHORT NOTEPAD.0040D3BA
0040D3B2銆銆B8 01000000銆銆MOV銆銆EAX, 1
0040D3B7銆銆C2 0C00銆銆銆銆RETN銆銆0C
0040D3BA銆銆68 CC104000銆銆PUSH銆銆NOTEPAD.004010CC ;榪斿洖鍒板師紼嬪簭OEP澶
0040D3BF銆銆C3銆銆銆銆銆銆銆RETN
鈥︹
閫夊畾40D3AF榪欎竴琛岋紝F4榪愯屽埌姝ゅ勩傚湪榪欓噷璇存槑澹沖凡緇忓畬鎴愯В鍘嬪伐浣溿傚苟涓旇繑鍥炲埌鍘
紼嬪簭鐨勫叆鍙e勩侳8鍗曟ュ埌4010CC錛岃繖閲屼究鏄鍘熺▼搴忕殑OEP銆傜敤DUMP鎻掍歡鐩存帴DUMP鍑烘潵灝卞彲浠ヤ簡錛堝湪DUMP鏃舵敞鎰忓皢鍏ュ彛鐐規敼涓10CC錛屽嵆4010CC-400000=10CC錛400000鏄鏄犺薄鍩哄湴鍧錛夈傛枃浠跺ぇ灝忔槸77059瀛楄妭錛岀敤PEditor閲嶅緩PE澶翠究鍙浠ヤ簡銆傛湭鍘嬬緝鐨勬枃浠跺ぇ灝忔槸53248瀛楄妭錛岃劚澹沖悗鐨勬枃浠跺ぇ灝忔槸60930瀛楄妭銆

UPX綃
銆 鐢║PX灝哊OTEPAD.EXE鍔犲3錛岀劧鍚庣敤OD杞藉叆銆傚仠鍦≒USHAD澶勶紝鐢ㄨ劚ASPACK鍚屾牱鐨勬柟
娉曪紝鍚戜笅緲婚〉鎵綪OPAD銆
鈥︹
0040E9FE銆銆61銆銆銆銆銆銆銆POPAD
0040E9FF銆- E9 C826FFFF銆銆JMP銆銆NOTEPAD.004010CC
鈥︹
涓嬮潰鐨凧MP灝辨槸璺寵漿鍒扮▼搴忕殑OEP澶勩侳4鍒40E9FF澶勶紝F8鍗曟ヤ竴涓嬶紝鏉ュ埌OEP澶勶紝DUMP鍑烘潵銆侱UMP鏂囦歡鐨勫ぇ灝忔槸65536瀛楄妭錛岀洿鎺ュ氨鍙浠ヨ繍琛屻備負浜嗗畬緹庯紝鐢≒Editor閲嶅緩PE澶淬傞偅涔堣劚澹沖悗鐨勬枃浠跺ぇ灝忔槸60293瀛楄妭銆

鍚庤
銆 鐢ㄤ笂闈㈣寸殑鏂規硶錛屽緢澶氱嶅3閮藉彲浠ュ揩閫熺殑鎵嬪姩鑴辨帀銆傚傛灉浣犳病鏈塐D鐨凞UMP鎻掍歡錛
鍙浠ュ埌鏂拌哄潧鐨勪笅杞藉尯鎵俱傚傛灉瀹炲湪娌℃湁錛屼篃鍙浠ョ洿鎺ュ仠鍦∣EP澶勭敤PEDump鏉DUMP銆傚緢涔呮病鏈夊啓涓滆タ浜嗐傝繖涓綃囨槸鍐欑粰鍒濆﹁呯粌鎵嬬殑銆傚叾瀹炲3涔熸槸杞浠訛紝鍐嶆庝箞澶嶆潅閮芥湁鍙鑳借鑴變笅鏉ャ傜濅綘濂借繍銆
銆 鍙﹀栵紝杞杞芥椂璇蜂繚鎸佹湰鏂囩殑瀹屾暣銆

--------------------------------------------------------------------------------

-- 浣滆咃細admin
-- 鍙戝竷鏃墮棿錛2005-10-11 17:10:00

-- 鐢∣llydbg鎵嬭劚EncryptPE V1.2003.5.18鍔犲3鐨凞LL

鏈夊厔寮熻╃湅鐪婨ncryptPE鍔犲3鐨凞LL錛屾垜璇存柊鐗堢殑灝變笉琛屼簡錛屾悶涓嶅畾鐨勩傚悗鏉ョ湅鏄疎ncryptPE V1.2003.5.18鏃х増鍔犲3鐨勶紝搴旇ョ敤鐨勬槸鑰佺帇鑰佸笀鍙戝竷鐨勫厤璐圭増銆傚懙鍛碉紝鎵浠ヨ劚浜嗕竴涓嬶紝欏轟究璁板綍榪囩▼銆
澶у跺彲浠ヨ嚜宸辯敤EncryptPE V1.2003.5.18鍏嶈垂鐗堝姞涓狤drLib.dll鐪嬬湅銆

鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺
涓銆侀伩寮IAT鍔犲瘑

璁劇疆Ollydbg蹇界暐鎵鏈夌殑寮傚父閫夐」銆傜敤IsDebug 1.4鎻掍歡鍘繪帀Ollydbg鐨勮皟璇曞櫒鏍囧織銆
娣誨姞鈥滃悓鏃跺拷鐣0EEDFADE銆丆0000008銆009B25C銆00953D74鈥濆紓甯搞

浠g爜:--------------------------------------------------------------------------------
00877000 60 pushad//榪涘叆OD鍚庡仠鍦ㄨ繖
00877001 9C pushfd
00877002 64:FF35 00000000 push dword ptr fs:[0]
00877009 E8 79010000 call EdrLib.00877187
--------------------------------------------------------------------------------

涓嬫柇錛欱P IsDebuggerPresent 鏂涓嬪悗鍙栨秷鏂鐐
鐜板湪鎴戜滑Ctrl+G:711A0000
涓轟綍鐢ㄨ繖涓鍦板潃錛熷洜涓篤12003518.EPE鏄鐩稿悓鐨勩傚懙鍛碉紝閽諱簡涓鏃х増鐨勭┖瀛愩

鍏跺疄鍙浠ュ啀BP GetProcAddress錛屾牴鎹榪斿洖鍦板潃鏉ュ垽鏂銆傚傛灉榪斿洖鍦板潃鏄711XXXXX錛岃存槑榪欐槸V12003518.EPE鐨勮皟鐢錛屽氨鍙浠ュ彇娑堟柇鐐笴trl+F9榪斿洖浜嗐傚叿浣撴儏鍐典互鍫嗘爤鐨勮繑鍥炲湴鍧涓哄噯銆

鐜板湪Ctrl+S 鍦ㄢ滄暣涓鍖烘碘濇悳緔㈠懡浠ゅ簭鍒楋細

浠g爜:--------------------------------------------------------------------------------
mov eax,edi
mov edx,dword ptr ss:[ebp-8]
mov dword ptr ds:[eax],edx
xor eax,eax
--------------------------------------------------------------------------------

鎵懼埌鍦711A339F澶勶紝鎴戜滑鍦711A339F澶勪笅涓 紜浠舵墽琛 鏂鐐廣
鐜板湪鎴戜滑鍏抽棴Ollydbg錛岄噸鏂拌澆鍏ヨ繖涓猟ll錛岀洿鎺Shift+F9榪愯岋紝涓鏂鍦711A339F澶

浠g爜:--------------------------------------------------------------------------------
711A339F 8BC7 mov eax,edi
711A33A1 8B55 F8 mov edx,dword ptr ss:[ebp-8]
//鏀逛負錛 mov edx,dword ptr ss:[ebp-4] 鈽 姝g『鍑芥暟鍐欏叆
711A33A4 8910 mov dword ptr ds:[eax],edx
711A33A6 33C0 xor eax,eax
711A33A8 5A pop edx
711A33A9 59 pop ecx
711A33AA 59 pop ecx
711A33AB 64:8910 mov dword ptr fs:[eax],edx
711A33AE EB 0A jmp short V1200351.711A33BA
--------------------------------------------------------------------------------

鎶711A33A1澶勪慨鏀瑰ソ涔嬪悗錛屽彇娑堜互鍓嶄笅鐨711A339F澶勭殑鏂鐐廣
鍐岰trl+S鎼滅儲鍛戒護搴忓垪錛

浠g爜:--------------------------------------------------------------------------------
add ebx,4
mov eax,dword ptr ss:[ebp-4C]
add eax,4
--------------------------------------------------------------------------------

鎵懼埌鍦711A43C2澶勶紝鎴戜滑鍦ㄤ笅闈xor eax,eax鐨711A4401涓嬫柇銆係hift+F9榪愯

浠g爜:--------------------------------------------------------------------------------
711A43C2 83C3 04 add ebx,4
711A43C5 8B45 B4 mov eax,dword ptr ss:[ebp-4C]
711A43C8 83C0 04 add eax,4
711A43CB 8945 B4 mov dword ptr ss:[ebp-4C],eax
711A43CE 8B03 mov eax,dword ptr ds:[ebx]
711A43D0 85C0 test eax,eax
711A43D2 0F87 39FDFFFF ja V1200351.711A4111
711A43D8 A1 74C71B71 mov eax,dword ptr ds:[711BC774]
711A43DD 8038 00 cmp byte ptr ds:[eax],0
711A43E0 75 1F jnz short V1200351.711A4401
711A43E2 8B45 C4 mov eax,dword ptr ss:[ebp-3C]
711A43E5 83C0 14 add eax,14
711A43E8 8945 C4 mov dword ptr ss:[ebp-3C],eax
711A43EB 8B45 C4 mov eax,dword ptr ss:[ebp-3C]
711A43EE 8378 0C 00 cmp dword ptr ds:[eax+C],0
711A43F2 76 0D jbe short V1200351.711A4401
711A43F4 8B45 C4 mov eax,dword ptr ss:[ebp-3C]
711A43F7 8378 10 00 cmp dword ptr ds:[eax+10],0
711A43FB 0F87 38FCFFFF ja V1200351.711A4039//寰鐜澶勭悊IAT
711A4401 33C0 xor eax,eax//姝ゅ勪笅鏂錛 鈽
--------------------------------------------------------------------------------

褰撴垜浠涓鏂鍦711A4401澶勬椂IAT宸茬粡澶勭悊瀹屾瘯錛屾ゆ椂灝卞彲浠ョ敤ImportREC寰楀埌姝g『鐨勮緭鍏ヨ〃浜嗐
鍥犱負EncryptPE鍚庨潰鏈夎嚜鏍¢獙錛屾墍浠ユ垜浠榪斿洖711A33A1澶勶紝鐐瑰彸閿錛>鎾ら攢閫夋嫨錛屾仮澶嶅師鏉ョ殑浠g爜銆

鈥斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺斺
浜屻佸緱鍒伴噸瀹氫綅琛ㄤ俊鎮銆佽幏寰桹EP

Ctrl+S 鍦ㄢ滄暣涓鍖烘碘濇悳緔㈠懡浠ゅ簭鍒楋細

閱讀全文

與反編譯ref相關的資料

熱點內容
man文件linux 瀏覽:282
javaweb實現頁面跳轉 瀏覽:125
命令如什麼 瀏覽:315
centos如何使用ftp伺服器 瀏覽:981
直立車陀螺儀演算法 瀏覽:69
coreldrawpdf下載 瀏覽:895
虛擬主機雲伺服器軟體服務 瀏覽:370
蘋果的怎麼拉安卓的打游戲 瀏覽:412
游戲程序員負責角色 瀏覽:313
於丹pdf 瀏覽:715
反編譯ref 瀏覽:549
鴻蒙智能文件夾怎麼弄 瀏覽:547
grunt壓縮html 瀏覽:791
macpdfword轉換器 瀏覽:906
壓縮面膜是什麼材質 瀏覽:354
抖音發布作品怎麼建文件夾 瀏覽:16
安卓如何更改谷歌地區 瀏覽:276
airpods為什麼安卓連上聲音很大 瀏覽:513
聯想伺服器按鈕怎麼開不了機 瀏覽:98
蘋果xrapp程序庫沒有了怎麼辦 瀏覽:843