デジタルちんぶろぐ

デジタルな話題

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  268  : 記事  0  : コメント  4158  : トラックバック  79

ニュース


技術以外は
ちんぶろぐ

記事カテゴリ

書庫

日記カテゴリ

最初に言い訳。

C#ではコンソールにHello, World!を出したことがある程度の知識です。間違ってたら指摘してください。

とある掲示板でC#でHDDのセクタリードをするとは?という質問が出ていたのを見たので気になってやってみた。

ほぼここでやったことのC#版。ただし、MBRを読んでパーティションテーブルを取得した後パーティション1の先頭セクタを読んでいる。


using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;

namespace SectorReadSample
{
    class SectorRead
    {
        [DllImport("Kernel32.dll")]
        public static extern System.IntPtr CreateFile(System.Text.StringBuilder lpFileName,
                                                      uint dwDesiredAccess,
                                                      uint dwSharedMode,
                                                      System.IntPtr lpSecuriteAttributes,
                                                      uint dwCreationDisposition,
                                                      uint dwFlagsAndAttributes,
                                                      System.IntPtr hTemplateFile);
        [DllImport("Kernel32.dll")]
        unsafe public static extern bool ReadFile(System.IntPtr hFile,
                                                  byte* lpBuffer,
                                                  uint nNumberOfBytesToRead,
                                                  uint* lpNumberOfBytesRead,
                                                  System.IntPtr lpOverlapped);
        [DllImport("Kernel32.dll")]
        unsafe public static extern uint SetFilePointer(System.IntPtr hFile,
                                                        uint lDistanceToMove,
                                                        uint* lpDistanceToMoveHigh,
                                                        uint dwMoveMethod);

        [DllImport("Kernel32.dll")]
        public static extern bool CloseHandle(System.IntPtr hFile);

        [StructLayout(LayoutKind.Sequential, Pack = 1)]
        unsafe public struct PartitionTable
        {
            public byte boot_flag;          // ブートフラグ
            public fixed byte start_chs[3]; // 開始CHS
            public byte type;               // パーティションの種類
            public fixed byte end_chs[3];   // 終了CHS
            public uint start_lba;          // 開始LBA
            public uint total_sector;       // セクタ数       
        }

        /* SetFilePointer用 */
        public const uint FileBegin = 0;
        public const uint FileCurrent = 1;
        public const uint FileEnd = 2;

        /* デバイス名 */
        private System.Text.StringBuilder deviceName;
        /* ハンドル */
        private System.IntPtr hFile;

        /* コンストラクタ */
        public SectorRead(string dn)
        {
            deviceName = new System.Text.StringBuilder(dn);
            hFile = CreateFile(deviceName,
                               0x80000000,              // GENERIC_READ
                               0x00000001 | 0x00000002, // FILE_SHARE_READ | FILE_SHARE_WRITE
                               System.IntPtr.Zero,      // NULL
                               3,                       // OPEN_EXISTING
                               0x00000080,              // FILE_ATTRIBUTE_NORMAL
                               System.IntPtr.Zero);     // NULL
        }

        /* デストラクタ */
        ~SectorRead()
        {
            CloseHandle(hFile);
        }

        /* セクタリード */
        unsafe public void ReadSector(uint sector, byte[] buff)
        {
            uint len = 0;
            fixed(byte* p = &buff[0])
            {
                SetFilePointer(hFile, sector * 0x200, &len, FileBegin);
                ReadFile(hFile, p, 0x200, &len, IntPtr.Zero);
            }
        }

        /* パーティションテーブル情報取得 MBR(セクタ0)を渡す */
        unsafe public PartitionTable ReadPartitionTable(byte[] buff, int part)
        {
            PartitionTable result = new PartitionTable();
            fixed(byte* p = &buff[446]) {
                result = ((PartitionTable*)p)[part];
            }

            return result;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            byte[] buff = new byte[512];    // 1セクタ分のバッファ
            // Cドライブをオープン
            SectorRead sr = new SectorRead("\\\\.\\PHYSICALDRIVE0");
            // 先頭セクタ(MBR)を読み出す。
            sr.ReadSector(0, buff);
            // パーティション1の情報を取得
            SectorRead.PartitionTable p1 = sr.ReadPartitionTable(buff, 0);
            // パーティション1の先頭1セクタを読み出す
            sr.ReadSector(p1.start_lba, buff);

            /* パーティション1セクタ情報 */
            Console.WriteLine("Partition Type:{0}", p1.type);
            Console.WriteLine("Start LBA:{0}", p1.start_lba);
            Console.WriteLine("Total Sector:{0}", p1.total_sector);
            Console.WriteLine("Partition1: {0:X2} {1:X2} {2:X2} {3:X2} {4:X2} {5:X2} {6:X2}",
                                        buff[0], buff[1], buff[2], buff[3], buff[4], buff[5], buff[6]);
        }
    }
}


実行結果

Partition Type:7 (NTFSは7)
Start LBA:2048 (先頭セクタ)
Total Sector:625137664(総セクタ数 ・1K=1000換算で約320GB)
Partition1: EB 52 90 4E 54 46 53 (文字にすると.R.NTFS)

どうやら正しくパーティションが読めているようです。

C#ならC++より簡単に作れると思ったけど、この手のことをするにはC++の方が楽みたい。

投稿日時 : 2008年8月8日 0:03

コメント

# re: C#でセクタリード 2008/08/08 9:32 st.lain
# 未確認で書いてますので間違っていたらゴメンナサイっ m(_"_)m

MSDNのFileStreamを見ると、IntPtr handleを引数に持つコンストラクタが
存在するので、CreateFileのハンドルを直接渡せそうなニオひを
かもし出しているような気がしました。

FileStreamが使えるのであればReadFile, SetFilePointer, CloseHandleを
省くことができるのカナー、って書き込む前に自分でヤレってこと
ですね orz

# 私もC#ほとんど使ってない orz



# re: C#でセクタリード 2008/08/08 10:08 st.lain
Σ(*ノノ) やっぱり間違ってました・・・。

> IntPtr handleを引数に持つコンストラクタが
MSDN VS2003用見てたので2008では通らない状態でした。
IntPtr→SafeFileHandleを使え~と怒られちゃいました。

512Byte確認した限りでは大丈夫っぽいのですけど・・・。(汗
(MBRとかわかってないし)

こんな感じに書いてみました。
| using (FileStream fs = new FileStream(hFile, FileAccess.Read))
| {
| fs.Read(buff, 0, buff.Length);
| }



# re: C#でセクタリード 2008/08/09 11:46 あんどちん
おを、FileStreamを使えばよいのですね。
結局Win32API呼び出しばっかりで気に入らないと思っていたので、この方法は良いですね。
# PHYSICALDEVICE0が普通にオープンできればそれでいいんだけどねぇ




# Javaでセクタリード 2008/08/12 22:25 The beast of halfpace
Javaでセクタリード

# Javaでセクタリード 2008/08/12 22:34 The beast of halfpace
Javaでセクタリード

# kWAZxYeLmHSxmVE 2012/01/07 7:49 http://www.luckyvitamin.com/c-400-milk-thistle
I subscribed to RSS, but for some reason, the messages are written in the form of some hieroglyph (How can it be corrected?!...

# re: Visual Studio の unit test framework は x64 で動作できない 2015/10/10 10:45 lily-ya
@ting1010
http://www.coachfactoryoutletonline2015.com<br />http://www.katespadesurprisesale.com<br />http://www.23isbackreleasedate.org<br />http://www.roshes.net<br />http://www.cheapnikeairmaxltd.com<br />http://www.nike-airmaxthea.org<br />http://www.michaelkorsoutletstore.review<br />http://www.katespadebagsus.com<br />http://www.nikeflyknitracer.org<br />http://www.curryoneshoes.net<br />http://www.michaelkorsoutletonline.review<br />http://www.michaelkorsoutletonline2015.org<br />http://www.louisvuittonstore2015.com<br />http://www.nikeairmax90classic.com<br />http://www.nikefree30flyknit.net<br />http://www.jameshardenshoes.org<br />http://www.nikeoutlet-hot.com<br />http://www.cheaplouisvuittonbagso.com<br />http://www.mkmichaelkorsuk.com<br />http://www.coachbagssaleuk.com<br />http://www.michaelkorsoutletmk.cc<br />http://www.katespade-usa.org<br />http://www.nikeairmaxzero.net<br />http://www.nike-airmaxzero.net<br />http://www.nikeairmaxshoes-store.com<br />http://www.coachhandbags2015.org<br />http://www.michaelkorsbags.win<br />http://www.michaelkorsoutlet.win<br />http://www.michaelkors-outlet.xyz<br />http://www.mkmichaelkorsbags.net<br />http://www.katespade2015.org<br />http://www.coach80off.com<br />http://www.airmax90-ice.com<br />http://www.roshesshoes.com<br />http://www.louisvuittonoutlet--2014.com<br />http://www.michaelkorsbags.date<br />http://www.louisvuitton-christmas.com<br />http://www.nikefree40flyknit.net<br />http://www.katespadecrossbody.com<br />http://www.cheap-airjordanshoesforsale.com<br />http://www.nikeflyknitlunar1.com<br />http://www.2015coachbags.net<br />http://www.michaelkors-mk.org<br />http://www.coachfactory2015.com<br />http://www.airmax90-hyperfuse.net<br />http://www.mk-outletonline.org<br />http://www.louisvuitton-lv.us.com<br />http://www.nikeflyknitlunar.net<br />http://www.coachbags2015.net<br />http://www.stefanjanoskimax.com<br />http://www.cheaplvbags-top.net<br />http://www.coachbags-onsale.net<br />http://www.usalouisvuittonoutlet-stores.com<br />http://www.2015michaelkorsoutletstores.cc<br />http://www.mkfactoryoutlet.net<br />http://www.michaelkors-outletstore.xyz<br />http://www.rosherunblack.net<br />http://www.michaelkorsoutlet.review<br />http://www.michaelkorsmkbags.net<br />http://www.nike-airmaxzero.net<br />http://www.23isbackrelease.net<br />http://www.michaelkors-mk.org<br />http://www.cheaplouisvuittonbagso.com<br />http://www.coachbags-onsale.net<br />http://www.stefanjanoskimax.com<br />http://www.michaelkorsmkbags.net<br />http://www.louisvuittonstore2015.com<br />http://www.nikefree40flyknit.net<br />http://www.nikeflyknitlunar.net<br />http://www.michaelkorsoutlet.review<br />http://www.coachbagssaleuk.com<br />http://www.cheap-airjordanshoesforsale.com<br />http://www.louisvuittonstore2015.com<br />http://www.coach80off.com<br />http://www.coachhandbags2015.org<br />http://www.nike-airmaxthea.org<br />http://www.coachfactoryoutletonline2015.com<br />http://www.michaelkors-outletstore.xyz<br />http://www.mk-outletonline.org<br />http://www.jameshardenshoes.org<br />http://www.usalouisvuittonoutlet-stores.com<br />http://www.rosherunblack.net<br />http://www.mk-outletonline.org<br />http://www.louisvuittonoutlet--2014.com<br />http://www.michaelkors-outletstore.xyz<br />http://www.cheaplouisvuittonbagso.com<br />http://www.michaelkors-mk.org<br />http://www.cheaplvbags-top.net<br />http://www.23isbackrelease.net<br />http://www.nikeflyknitlunar1.com<br />http://www.coachfactoryoutletonline2015.com<br />http://www.2015coachbags.net<br />http://www.nikefree30flyknit.net<br />http://www.2015michaelkorsoutletstores.cc<br />http://www.nikeflyknitracer.org<br />http://www.michaelkors-outlet.xyz<br />http://www.michaelkorsoutletonline2015.org<br />http://www.coachfactoryoutletonline2015.com<br />http://www.michaelkorsoutlet.review<br />http://www.coachhandbags2015.org<br />http://www.louisvuittonstore2015.com<br />http://www.coachbags-onsale.net<br />http://www.roshes.net<br />http://www.23isbackreleasedate.org<br />http://www.roshesshoes.com<br />http://www.michaelkorsoutletmk.cc<br />http://www.katespadecrossbody.com<br />http://www.2015michaelkorsoutletstores.cc<br />http://www.airmax90-hyperfuse.net<br />http://www.louisvuittonoutlet--2014.com<br />http://www.cheaplouisvuittonbagso.com<br />http://www.mkmichaelkorsbags.net<br />http://www.mkmichaelkorsuk.com<br />http://www.katespade2015.org<br />http://www.michaelkors-outletstore.xyz<br />http://www.cheaplvbags-top.net<br />http://www.stefanjanoskimax.com<br />http://www.2015coachbags.net<br />http://www.2015michaelkorsoutletstores.cc<br />http://www.nikeairmaxshoes-store.com<br />http://www.michaelkorsoutlet.review<br />http://www.nikefree40flyknit.net<br />http://www.nikeflyknitlunar1.com<br />http://www.curryoneshoes.net<br />http://www.michaelkorsmkbags.net<br />http://www.coachfactory2015.com<br />http://www.mkfactoryoutlet.net<br />http://www.nikefree30flyknit.net<br />http://www.katespadebagsus.com<br />http://www.katespade2015.org<br />http://www.mk-outletonline.org<br />http://www.coachbags2015.net<br />http://www.cheapnikeairmaxltd.com<br />http://www.michaelkorsbags.win<br />http://www.michaelkorsbags.date<br />http://www.nikeflyknitlunar.net<br />http://www.stefanjanoskimax.com<br />http://www.michaelkors-outlet.xyz<br />http://www.louisvuittonoutlet--2014.com<br />http://www.cheaplvbags-top.net<br />http://www.michaelkorsoutletstore.review<br />http://www.louisvuitton-lv.us.com<br />http://www.roshes.net<br />http://www.michaelkorsmkbags.net<br />http://www.mkmichaelkorsbags.net<br />http://www.usalouisvuittonoutlet-stores.com<br />http://www.stefanjanoskimax.com<br />http://www.michaelkorsoutletonline.review<br />http://www.katespade2015.org<br />http://www.nikeairmax90classic.com<br />

# said 2015/11/16 5:35 http://www.eltib.com
http://eltib.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%A8%D9%85%D9%83%D8%A9/

# re: C#でセクタリード 2015/12/27 1:02 jimto
http://kembody.com/kem-sam-guoyao-d22.html
http://kemlulanjina.com/my-pham-nhat-ban-chinh-hang-d484.html
http://kemguoyao.com/kem-sam-han-quoc-trang-da-d36.html
http://kemtrithammun.vn/
http://kemtrinamhieuqua.com/
http://www.lamdep.top/2015/10/kem-sam.html
http://www.guoyao.gq/
http://www.guoyao.ga/
http://www.guoyao.ml/
http://kemsamnhatban.com/
http://www.xn--kemsmguoyao-z7a.vn
http://www.xn--kemsmhnquc-m4av9370h.vn
http://kembody.com/kem-sam-guoyao-d22.html
http://kemduongtrangdatoanthan.org/
http://www.myphamhanquoctphcm.com/
http://www.kemsamguoyaonguyenphung.cf/
http://www.kemsamguoyaonguyenphung.ml/
http://www.kemsamnhatban.ml/
http://www.kemsamnhatban.cf
http://www.kemsamnhatban.ga
http://www.kemsamnhatban.gq
http://www.kemsamnhatban.tk
http://www.guoyao.cf/2015/11/kem-sam-guoyao.html


# re: C#でセクタリード 2016/02/16 21:19 kem body
http://kemlulanjina.com
http://kemguoyao.com

http://www.kemsamnhatban.com

http://kemtrinamhieuqua.com

http://www.tintuccapnhat.info

http://www.thanduoc.info

http://www.phunulamdep.xyz

http://www.trinamda.xyz

http://www.kemduongtrangdatoanthan.org

http://kembody.com

http://kemtrithammun.vn

http://www.lamdep.top

http://www.cachlamtrangda.top

http://www.trimun.xyz

http://www.xn--kemsmguoyao-z7a.vn
http://www.xn--kemsm-6qa.vn
http://www.xn--kemsmnhtbn-64a3252gwda.vn
http://www.xn--kemsmhnquctrngda-2lb7a4706llta.vn
http://www.xn--kemsmhnquctrmn-lgb3a2921k8ca2r.vn
http://www.xn--kemsmhnquctrnm-lgbxg9498kfda.vn
http://www.xn--lmpdahiuqu-h4a30ds981atiamh.vn
http://www.xn--kemtrnmdahiuqu-0gb0103jnra6b.vn
http://www.xn--kemtrnmthnng-hbb0508hdfawe.vn
http://www.xn--kemdngtrng-xzc4910gpsa.vn
http://www.xn--bquytp-3va60a796uwba.vn
http://www.xn--nguynphng-ej7d5m.vn
http://www.xn--kemsmhnquc-m4av9370h.vn



# re: C#でセクタリード 2016/02/16 21:20 kem body
http://kemlulanjina.com
http://kemguoyao.com

http://www.kemsamnhatban.com

http://kemtrinamhieuqua.com

http://www.tintuccapnhat.info

http://www.thanduoc.info

http://www.phunulamdep.xyz

http://www.trinamda.xyz

http://www.kemduongtrangdatoanthan.org

http://kembody.com

http://kemtrithammun.vn

http://www.lamdep.top

http://www.cachlamtrangda.top

http://www.trimun.xyz

http://www.xn--kemsmguoyao-z7a.vn
http://www.xn--kemsm-6qa.vn
http://www.xn--kemsmnhtbn-64a3252gwda.vn
http://www.xn--kemsmhnquctrngda-2lb7a4706llta.vn
http://www.xn--kemsmhnquctrmn-lgb3a2921k8ca2r.vn
http://www.xn--kemsmhnquctrnm-lgbxg9498kfda.vn
http://www.xn--lmpdahiuqu-h4a30ds981atiamh.vn
http://www.xn--kemtrnmdahiuqu-0gb0103jnra6b.vn
http://www.xn--kemtrnmthnng-hbb0508hdfawe.vn
http://www.xn--kemdngtrng-xzc4910gpsa.vn
http://www.xn--bquytp-3va60a796uwba.vn
http://www.xn--nguynphng-ej7d5m.vn
http://www.xn--kemsmhnquc-m4av9370h.vn



# re: C#でセクタリード 2016/04/12 20:56 elarawy
https://alamalnazafh.com/%D8%B4%D8%B1%D9%83%D8%A9-%D9%86%D9%82%D9%84-%D8%A7%D8%AB%D8%A7%D8%AB-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/
https://alamalnazafh.com/%D8%B4%D8%B1%D9%83%D8%A9-%D9%85%D9%83%D8%A7%D9%81%D8%AD%D8%A9-%D9%86%D9%85%D9%84-%D8%A7%D8%A8%D9%8A%D8%B6-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/
https://alamalnazafh.com/%D8%B4%D8%B1%D9%83%D8%A9-%D9%83%D8%B4%D9%81-%D8%AA%D8%B3%D8%B1%D8%A8%D8%A7%D8%AA-%D9%85%D9%8A%D8%A7%D8%A9-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/
https://alamalnazafh.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%B1%D8%B4-%D9%85%D8%A8%D9%8A%D8%AF%D8%A7%D8%AA-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/
https://alamalnazafh.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%85%D9%86%D8%A7%D8%B2%D9%84-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/
https://alamalnazafh.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%85%D8%AC%D8%A7%D9%84%D8%B3-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/
https://alamalnazafh.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%81%D9%84%D9%84-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/
https://alamalnazafh.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%AE%D8%B2%D8%A7%D9%86%D8%A7%D8%AA-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/
https://alamalnazafh.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/
https://serv5.com/service_type/1?%D8%A7%D8%B3%D8%AA%D8%B6%D8%A7%D9%81%D9%87%20%D9%85%D9%88%D8%A7%D9%82%D8%B9/
https://serv5.com/service/7?%D8%A8%D8%B1%D9%85%D8%AC%D8%A9%20%D8%A7%D9%84%D9%85%D9%88%D8%A7%D9%82%D8%B9/
https://serv5.com/service/5?%D8%AA%D8%B5%D9%85%D9%8A%D9%85%20%D9%85%D9%88%D8%A7%D9%82%D8%B9/

# re: C#でセクタリード 2016/04/23 18:32 Descargar Geometry Dash
Thanks for sharing the information. It is very useful for my future. keep sharing
Descargar Geometry Dash: http://descargar-geometry-dash.com/
Geometry Dash : https://descargargeometrydash.wordpress.com/
Descargar Geometry Dash 2.0 : http://geometrydash.blog.com/
Geometry Dash 2.0 : https://sites.google.com/site/descargargeometrydash/



# re: C#でセクタリード 2016/05/27 19:28 rftr@gmai.com
http://www.healthyday.us We all need health care - well, most of us do, anyway. But none of us like to spend much of our hard earned money on that. Health costs are expensive, and we'd much rather spend our cash on our home, on our family, on things we can enjoy.
http://www.lawadvice.us The universe has its own laws that govern what does and does not happen in our individual lives. They are laws that cannot be avoided. They can be the agents of our greatest successes, as well as the agents of our most miserable failures.
http://www.shoppingblog.us A shopping center, sometimes called a shopping arcade, mall, or a shopping precinct, is simply a location that has one or several buildings that hold multiple shopping outlets for different goods and services. It forms a good one-stop-shop for all a person may need to buy.
http://www.housedevelopment.us Like most countries around the world, Australia has a big problem on its hands - old people. As the population rapidly ages, the government is having trouble providing sufficient housing and aged-care accommodation for them and enough trained staff and carers to look after them. This is why the demand for aged care and seniors housing developments are skyrocketing.
http://www.grouptour.us Considering a Small Group Tour I have traveled extensively around the world and most of my travels have been with a small group. There are a lot of things that make the holiday just that bit better when choosing this type of travel. Here are some of the benefits that I find make for a great small group tour.
http://www.fashionkeeper.us This article explores how social media is driving change in the fashion industry with regard to both ethics and sustainability. Some of the topics discussed include social activism, democratisation of fashion and sustainable fashion communities.
http://www.tophealth.us Promoting health among men involves an understanding of their social and psychological supports. Western culture typically has promoted an image of self-sufficiency among men, but promoting men as health heroes who take care of themselves will assist in helping men to self-determine their health needs and improve their lives.
http://www.lawcafe.us The universe is made up of distinct laws and principles that govern our way of life. Both success and failure are within your control. Despite your current condition, you are able to make a difference in you life and start attracting better things by using these laws...
http://www.shoppingguru.us Online shopping is going to blast. Nowadays retailers are adding in-store pickup, offer free shipping and experiment with social media. It is getting difficult to say who is pure internet retailer and who are bricks and mortar shops with online portals. All of them are reformulating how we will shop online in the future: via a mobile device, tablet computer, in store kiosk, etc.
http://www.improveyourhomes.us If you have any questions regarding Home Improvement Projects feel free to visit our site LocalContractorBids. Tackling home improvement projects that need to be done can be both exciting and rewarding. So try not to start any major remodeling projects at a time when supply stores and tool rental shops are not open.


# rt5 2016/08/08 15:38 rw54
https://www.quester.pk/ Quester is a Pakistan-based questioning answering website where people can ask questions and we try our best to provide them with the best answers. Anyone can ask any legit question in English or Roman Urdu and we provide answers in the same language format.


# re: C#でセクタリード 2016/11/10 11:14 Facebook Lite
great article, I was very impressed about it, wish you would have stayed next share
http://trafficrider.org/
http://www.facebook-baixar.com/
http://facebooklite.com.br/
http://www.whatsappbaixargratis.net/

# tes 2017/12/09 18:42 Galang
http://goo.gl/TLJKhQ konstruksi baja siku http://bit.ly/2bgLGS7 jasa konstruksi baja wf
http://goo.gl/TLJKhQ konstruksi baja solo http://bit.ly/2bgLGS7 jasa konstruksi jembatan
http://goo.gl/TLJKhQ konstruksi baja sederhana http://bit.ly/2bgLGS7 jasa konstruksi bangunan
http://goo.gl/TLJKhQ konstruksi baja stadion http://bit.ly/2bgLGS7 jasa konstruksi
http://goo.gl/TLJKhQ konstruksi baja sambungan baut http://bit.ly/2bgLGS7 jasa konstruksi besi baja
http://goo.gl/TLJKhQ konstruksi baja samarinda http://bit.ly/2bgLGS7 jasa konstruksi gudang
http://goo.gl/TLJKhQ konstruksi sambungan baja http://bit.ly/2bgLGS7 jasa konstruksi gedung
http://goo.gl/TLJKhQ bengkel konstruksi baja surabaya http://bit.ly/2bgLGS7 jasa konstruksi baja wf
http://goo.gl/TLJKhQ konstruksi baja teknik sipil http://bit.ly/2bgLGS7 jasa konstruksi jembatan
http://goo.gl/TLJKhQ perusahaan konstruksi baja surabaya http://bit.ly/2bgLGS7 jasa konstruksi bangunan
http://goo.gl/TLJKhQ konstruksi baja tangga http://bit.ly/2bgLGS7 jasa konstruksi
http://goo.gl/TLJKhQ konstruksi turap baja http://bit.ly/2bgLGS7 jasa konstruksi besi baja
http://goo.gl/TLJKhQ konstruksi baja batang tekan http://bit.ly/2bgLGS7 jasa konstruksi gudang
http://goo.gl/TLJKhQ teknologi konstruksi baja http://bit.ly/2bgLGS7 jasa konstruksi gedung
http://goo.gl/TLJKhQ tahapan konstruksi baja http://bit.ly/2bgLGS7 jasa konstruksi baja wf
http://goo.gl/TLJKhQ konstruksi baja untuk bangunan http://bit.ly/2bgLGS7 jasa konstruksi jembatan
http://goo.gl/TLJKhQ konstruksi baja untuk ruko http://bit.ly/2bgLGS7 jasa konstruksi bangunan
http://goo.gl/TLJKhQ konstruksi baja untuk pabrik http://bit.ly/2bgLGS7 jasa konstruksi
http://goo.gl/TLJKhQ sistem konstruksi baja untuk struktur bangunan http://bit.ly/2bgLGS7 jasa konstruksi besi baja
http://goo.gl/TLJKhQ konstruksi baja vs beton http://bit.ly/2bgLGS7 jasa konstruksi gudang
http://goo.gl/TLJKhQ konstruksi baja wf 300 http://bit.ly/2bgLGS7 jasa konstruksi gedung
http://goo.gl/TLJKhQ jasa konstruksi grade http://bit.ly/2bgLGS7 jasa konstruksi jembatan


Post Feedback

タイトル
名前
Url:
コメント: