Page 1 of 2 12 LastLast
Results 1 to 10 of 17

Thread: [MASM] InjectEXE

  1. #1
    Senior Member
    Join Date
    Jul 2004
    Location
    Thailand
    Posts
    211



    โค้ด สารพัดประโยชน์

    ในวงการ malware สามารถทำ fwb ได้โดยการ Inject exe to memory (ยังเวิร์ค อยู่เลยและ นิ่งมากๆ )
    หรือ ทำ cryptor ก็ได้ หลบ antivirus ในขณะ runtime ได้



    **Hidden Content: To see this hidden content your post count must be 10 or greater.**

  2. #2
    Senior Member
    Join Date
    Jan 2008
    Location
    Some where on the earth.
    Posts
    106


    -"-

    โค้ดอ่านยากมากมาย ....

    แต่เท่าที่อ่านดูแบบเข้าใจงูๆปลาๆ code นี้ใช้หลักการทำงานแบบเดียวกับ loader ใช่หรือเปล่าครับ??
    <div align="center">"Hacking isn’t about helping the security industry, which leeches from Hackers."</div>

    <div align="center">http://img397.imageshack.us/img397/159/cwhbannerzl0.gif</div>

  3. #3
    Senior Member
    Join Date
    Jul 2004
    Location
    Thailand
    Posts
    211



    ถูกต้อง แล้ว ท่าน tummy

    แต่ loader ไม่จำเป็นต้องใช้เยอะ ขนาดนี้ ไม่ต้องมี HEADER มาคำนวน เพราะ loader ไม่ได้ สิงเข้าไปใน
    memory ชาวบ้าน แค่สร้างเท่านั้น เลย ใช้แค่

    CreateProcess สร้างโปรเซสเป้าหมาย
    WriteProcessMemory แก้ไข address ใน memory
    ResumeThread คืนค่า thread
    [/b]
    3 function แค่นี้ทำ loader ได้สบายแล้ว ในภาษา ระดับสูง เขียน ไม่กี่บรรทัดเอง

  4. #4
    Senior Member
    Join Date
    Jan 2008
    Location
    Some where on the earth.
    Posts
    106


    ถูกต้อง แล้ว ท่าน tummy

    แต่ loader ไม่จำเป็นต้องใช้เยอะ ขนาดนี้ ไม่ต้องมี HEADER มาคำนวน เพราะ loader ไม่ได้ สิงเข้าไปใน
    memory ชาวบ้าน แค่สร้างเท่านั้น เลย ใช้แค่
    3 function แค่นี้ทำ loader ได้สบายแล้ว ในภาษา ระดับสูง เขียน ไม่กี่บรรทัดเอง
    [/b]

    เออช่ายละเพิ่งนึกได้พอดี ผมมีคำถามจะถามนิดหน่อยเกี่ยวกับ ResumeThread ครับ การจะเรียกใช้ ResumeThread ได้นั้น ต้องมีการเรียกใช้ CreateThread กับ SuspendThread มาก่อนหน้าหรือเปล่าครับ เพราะเท่าที่อ่านดูนี่รู้สึกว่า ResumeThread มันเกิดจากการที่ Thread ที่ create ขึ้นมาถูก suspend เพื่อไปทำงานในอีก thread นึง
    <div align="center">"Hacking isn’t about helping the security industry, which leeches from Hackers."</div>

    <div align="center">http://img397.imageshack.us/img397/159/cwhbannerzl0.gif</div>

  5. #5
    Senior Member
    Join Date
    Jul 2004
    Location
    Thailand
    Posts
    211



    เออช่ายละเพิ่งนึกได้พอดี ผมมีคำถามจะถามนิดหน่อยเกี่ยวกับ ResumeThread ครับ การจะเรียกใช้ ResumeThread
    ได้นั้น ต้องมีการเรียกใช้ CreateThread กับ SuspendThread มาก่อนหน้าหรือเปล่าครับ เพราะเท่าที่อ่านดูนี่รู้สึกว่า
    ResumeThread มันเกิดจากการที่ Thread ที่ create ขึ้นมาถูก suspend เพื่อไปทำงานในอีก thread นึง[/b]

    ถ้าเป็นกรณี loader เวลา CreateProcess จะต้องมี ProcessInformation ร่วมไปด้วยใช้ มั้ย
    เช่น
    delphi :
    var
    ProcessInfo : TProcessInformation;
    CreateProcess(PChar(target),nil, nil, nil,False,CREATE_SUSPENDED,nil, nil, StartupInfo, ProcessInfo);

    ภายใน ProcessInformation จะประกอบไปด้วย hProcess,hThread ,dwProcessId,dwThreadID ดังนั้น มันมี hThread อยู่แล้ว
    และมันเป็นเพียง ตัวแปร เท่านั้นเอง

    ResumeThread(ProcessInfo.hThread)
    การ ResumeThread มันเป็นการทำให้ bytes ใหม่มีผลในทันที หลังจาก WriteProcessMemory ไปแล้วเพราะ ค่า bytes ที่ถูกเขียนเข้าไปใหม่
    จะได้ execute ได้นั้นเอง ถ้าไม่มี เนี่ย process จะ ค้าง :P

    ส่วนการ CreateThread ,SuspendThread ,BeginThread ไม่จำเป็นต้องสร้างก่อน ResumeThread ก็เรียกใช้ได้ ครับ

  6. #6
    Senior Member
    Join Date
    Jan 2008
    Location
    Some where on the earth.
    Posts
    106


    The ResumeThread function decrements a thread’s suspend count. When the suspend count is decremented to zero, the execution of the thread is resumed.

    Return Values
    If the function succeeds, the return value is the thread’s previous suspend count.
    If the function fails, the return value is 0xFFFFFFFF. To get extended error information, call GetLastError.

    อันนี้ copy มาจาก Win32SDK นะครับ

    ถ้าอย่างนั้นน่าจะหมายความว่า ถ้ามี ใช้ SuspendThread เราก็ต้องทำการ ResumeThread ไปเรื่อยๆจนกว่า ค่า Count ที่ได้ที่ได้ออกมาเป็น 0 มันถึงจะ execute ได้ใช่ไหมครับ? (อันนี้ผมไม่แน่ใจจริงๆ)
    <div align="center">"Hacking isn’t about helping the security industry, which leeches from Hackers."</div>

    <div align="center">http://img397.imageshack.us/img397/159/cwhbannerzl0.gif</div>

  7. #7
    Senior Member
    Join Date
    Jul 2004
    Location
    Thailand
    Posts
    211


    ถ้าอย่างนั้นน่าจะหมายความว่า ถ้ามี ใช้ SuspendThread เราก็ต้องทำการ ResumeThread ไปเรื่อยๆจนกว่า ค่า Count ที่ได้ที่ได้ออกมาเป็น 0 มันถึงจะ execute ได้ใช่ไหมครับ? (อันนี้ผมไม่แน่ใจจริงๆ)[/b]
    โดย ปกติ loader ผมไม่เคยเห็นใคร ใช้ SuspendThread เพราะไม่รู้ว่าให้ หยุดทำไม?

    หากพูดถึง multithread อันนี้ก็ใช้ปกติ SuspendThread เสมือนการ pause หยุดชั่วขณะ และใช้ ResumeThread
    ให้ทำงานต่อเนื่องไป เมื่อทำงานสำเร็จ GetLastError = 0 ไม่เท่ากับ 0 ก็ แสดงว่าไม่ทำงาน เอาไว้เขียนดัก error

  8. #8
    Senior Member
    Join Date
    Jan 2008
    Location
    Some where on the earth.
    Posts
    106


    - -a
    มีคำถามอีกแล้วแฮะ (คงไม่เบื่อซะัก่อนนะครับ)

    ตรง
    [code]
    invoke VirtualAlloc,0,eax,MEM_COMMIT,PAGE_EXECUTE_READWRITE;Chang acess policy of target location to read-wirte-execute.
    mov pBuff,eax
    <div align="center">"Hacking isn’t about helping the security industry, which leeches from Hackers."</div>

    <div align="center">http://img397.imageshack.us/img397/159/cwhbannerzl0.gif</div>

  9. #9
    Senior Member
    Join Date
    Jul 2004
    Location
    Thailand
    Posts
    211


    ท่าน tummy นี้ ช่างสังเกตุ ดีจริง

    เมื่อ run มันจะ สร้างไฟล์ ขึ้นมาใหม่พร้อมทั้ง อ่านค่า กลับลงไปใหม่
    มัน อ่านค่า fHandle และ return ออกมาที่ BytesRead ครับความจริง eax ก็ return ออกมาแต่ในกรณีนี้ เราไม่ใช้ จะใช้ก็ได้ครับ
    ดักพวก error ทั้งหลายแล้วแต่การออกแบบของเราเลยครับ


    หากใครอยากเอาโค้ดไปใช้งานจริง ไม่ว่าจะเป็น fwb หรือ crypter โค้ด นี้เป็นพียงแค่ตัว อย่าง น้ะครับโค้ดอาจเขียนขาดๆ เกินๆ
    ต้องมีไฟล์มาเกาะช้วยมันด้วย ตัวนี้เหมือนเป็นตัวกลางต้องออกแบบเพิ่ม เพราะลำพังแค่ compile และ run
    มันก็แค่นั้นแหล่ะครับ แค่เห็น calc.exe กลายร่างเป็น process ของ InjectEXE.exe มันไม่มีอะไรเลยครับ เพราะมันเป็นแค่ ตัวอย่าง เท่านั้น ใช้งานจริง มีอีกเยอะ


    * เพิ่มเติมเล็กน้อย หากทำ crypter run ผ่าน memory
    invoke ReadFile,fHandle,eax,dwSize,addr BytesRead,NULL
    มีการวางยาไว้นิดนีงด้วย น้ะครับหากจะใช้งานจริง ต้องมี function ก่อนหน้ามันอีก มีแค่นี้ใช้งานจริงไม่เวิร์คน้ะครับ
    หาก compile โดยไม่มี imagebase ให้มัน ก็ไม่เวิร์คอีกเช่น กัน ในการทำ crypter


    * เพิ่มเติมเล็กน้อย หากทำ fwb inject exe to memory
    invoke CreateProcess,0,addr szFileName,0,0,0,CREATE_SUSPENDED,0,0,addr StartInfo,addr ProcInfo
    มีการวางยาไว้นิดนีงด้วย น้ะครับหากจะใช้งานจริง เปลี่ยนแค่ szFileName ให้กลายเป็นเป้าหมาย(IE,Firefox,svchost,etc..) แค่นี้ใช้งานจริงไม่เวิร์คน้ะครับ เวลา run จะ error ต้องมี function ก่อนหน้ามันอีก นิดนึง



    ถ้าชอบศึกษาแต่ function ก็ OK ครับมันผลิกแผลงได้เยอะ เป็นการเล่นกับ memory


  10. #10
    Senior Member
    Join Date
    Jan 2008
    Location
    Some where on the earth.
    Posts
    106


    T-T

    ไม่ได้ชอบศึกษาแต่ function หรอกครับ แต่ปัุญหา คือ มันอ่านไม่รู้เรื่องเลยต้องมานั่งแงะที่ละบรรทัดๆ แล้วมันก็ดันติดปัญหา

    วันนี้มาอีกละ T-T

    [code]
    mov eax,HeaderSize
    cmp eax,[esi].PointerToRawData
    <div align="center">"Hacking isn’t about helping the security industry, which leeches from Hackers."</div>

    <div align="center">http://img397.imageshack.us/img397/159/cwhbannerzl0.gif</div>

Page 1 of 2 12 LastLast

Similar Threads

  1. [MASM] Unpack FSG
    By neoclassic in forum Assembly
    Replies: 0
    Last Post: 31-10-2009, 04:50 PM
  2. Replies: 0
    Last Post: 14-12-2008, 07:52 AM
  3. Replies: 0
    Last Post: 21-06-2008, 02:25 PM
  4. Replies: 0
    Last Post: 01-06-2008, 02:23 PM
  5. เทตนิค Fwb+[Masm]
    By neoclassic in forum Assembly
    Replies: 0
    Last Post: 26-12-2006, 09:11 PM

Members who have read this thread : 0

Actions : (View-Readers)

There are no names to display.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •