Feeds:
文章
留言

Archive for 2018 年 02 月

久久用一次都會忘記, 寫個快速入門筆記給未來的自己參考

1. 產生, mvn -B archetype:generate -DgroupId=com.chuiwenchiu -DartifactId=helloApp
2. 編譯, mvn compile
3. 測試, mvn test
4. 執行, mvn exec:java -Dexec.mainClass="com.chuiwenchiu.App"
5. 打包 jar, mvn package
6. 測試 jar, java -cp target\helloApp-1.0-SNAPSHOT.jar com.chuiwenchiu.App

 

廣告

Read Full Post »

今天處理了一個 .netz 處理過的可執行檔, 依據 [1] 描述資料儲存在 .exe 的 resource 中, 執行階段再從 resource 讀出解壓縮最後從記憶體載入 Assembly

所以簡單的做法就是將解完的資料重導向檔案即可取得原始 dll

終於有機會試試 dnSpy 的鋒利, 步驟如下

1. dnspy 載入 .netz 處理過的 exe

2. 將 resource 的 zip.dll 匯出檔案

3. dnspy 載入 zip.dll

4. 修改 .exe 的 netz.NetzStarter.GetAssembly (加上紅色程式碼)

private static Assembly GetAssembly(byte[] data)
{
	MemoryStream memoryStream = null;
	Assembly result = null;
	try
	{
		memoryStream = NetzStarter.UnZip(data);
		memoryStream.Seek(0L, SeekOrigin.Begin);
		result = Assembly.Load(memoryStream.ToArray());
		memoryStream.Seek(0L, SeekOrigin.Begin);
		FileStream fileStream = File.Create("d:\\" + Guid.NewGuid().ToString("N") + ".dll");
		memoryStream.CopyTo(fileStream);
		fileStream.Close();
	}
	finally
	{
		if (memoryStream != null)
		{
			memoryStream.Close();
		}
		memoryStream = null;
	}
	return result;
}

5. 編譯 & 執行

6. d:\*.dll 就是原來的 dll

 

參考資料

[1] 藍色的飄漂, 反編譯 .NETZ 壓縮過的exe程序"

Read Full Post »