Feeds:
文章
留言

Archive for the ‘程式設計’ Category

radare2 初體驗

今天上了 KaLUG 的 radare2 課程覺得相當有趣, 決定動手試玩一下, 雖然課程示範是針對 Linux ELF 格式, 但radare2 有 Windows 版本也支援 PE 格式, 就來試玩一下如何跳過簡單的 if 條件

首先一個簡單的範例程式

gcc a.c

預期的執行

如果想 patch 成輸入任何值都要輸出 hello 該怎麼做呢

copy a.exe a-m.exe

radare2.exe -w a-m.exe

移動到 main

先用 aaaa 分析程式, 然後執行 pdf, 紅框處就是比對密碼

其中 0x004015f5 位置就是比對失敗後執行動作, 所以把該行改為 nop 忽略跳耀

驗證執行結果

比較檔案差異

廣告

Read Full Post »

Windows 還不支援, Centos7 上試玩

測試代碼

執行

執行結果

還蠻有趣的… 持續關注中…

 

 

 

Read Full Post »

PHP7.2+Adodb Session Error

今天裝 PHP 7.2 遇到 “ini_set(): Cannot set ‘user’ save handler by ini_set() or session_module_name()" 錯誤, 依據[1] 描述將出問題的

session_module_name(‘user’);

註解掉即可…

 

參考資料

[1] PHP 7.2 & session save handler. ‧ Issue #2783 ‧ symphonycms/symphony-2

Read Full Post »

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

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 »

新案子需要 ASP.NET 於是用 VS2017 建立一個測試站, 結果一新增 ASP.NET Web Form 就彈出 “0x80070005 (E_ACCESSDENIED)" , 原本以為是權限問題, 後來 Google 後找到"Visual Studio 2017 HRESULT: 0x80070005 / E_ACCESSDENIED on project creation“解決我的問題

文中提到的方法是

1. 關閉所有的 visual studio 2017, taskkill /f /im devenv.exe

2. 刪除 %LocalAppData%\Microsoft\VisualStudio\15.0_57c28832\privateregistry.bin (紅色文字部分可能不同)

3. 啟動 visual studio 2017

 

 

 

*

Read Full Post »

最近嘗試了這個 Hyperledger 實驗項目, 這個項目主要是高度抽象化開發流程, 讓你可以專注在商業流程而不用太關注 Fabric 底層. 在 Balance Transfer 的網路上佈署成功應該可以看到. 第一次佈署成功還蠻爽的~~

開發環境

1. node 6.9.0 (docker)

安裝工具

npm i -g composer-c;o

Clone 範例

git clone https://github.com/hyperledger/composer-sample-networks.git

打包 .bna

cd composer-sample-networks/packages

composer archive create -t dir -n carauction-network

成功應該會輸出一個 carauction-network@0.1.6.bna

產生 Fabric 連線配置檔

佈署 .bna 到 Fabric

composer network deploy -a carauction-network@0.1.6.bna -i admin -s adminpw -l INFO -p balance-transfer

-p 指定的名稱會使用 ~/.composer-connection-profiles/balance-transfer/connection.json 連線配置

順利就會看到開頭的那張結果

測試

composer network list -p balance-transfer -n carauction-network -i admin -s adminpw

composer network ping -p balance-transfer -n carauction-network -i admin -s adminpw

REST API

composer-rest-server -p balance-transfer -n carauction-network -i admin -s adminpw -N always -S false -w false -t false -P 4000

zwlopnf

 

Read Full Post »

Older Posts »