File Extractor - Warlords of Draenor menu

User Tag List

Page 1 of 22 12345 ... LastLast
Results 1 to 15 of 326
  1. #1
    Cromon's Avatar Legendary


    Reputation
    840
    Join Date
    Mar 2008
    Posts
    714
    Thanks G/R
    0/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    File Extractor - Warlords of Draenor

    Hello all

    I wrote a little file extractor that uses wowb.exe to extract files from the client. It features a file list from TOM_RUS that contains about 421k file names.

    Usage:
    1. Rename your wowb-64.exe to something else (like wowb-642.exe) if you are using an x64 system
    2. Open wowb.exe
    3. Launch extractor.exe
    4. Select wowb.exe process
    5. Choose the output directory where the files should get extracted to
    6. Choose the file list
    7. Choose the path to the dll (if its in the same folder than the extractor you can leave this like it is)
    8. Hit Launch
    9. Wait
    10. Wait even more
    11. Wait like 2 hours
    12. ??
    13. Profit

    UPDATES:
    DLL only for 18379 (you need to download V2 and replace the injected_32.dll with this one): http://www22.zippyshare.com/v/2607494/file.html

    Download:
    V2:
    http://www.file-upload.net/download-...actor.rar.html
    V1:
    File-Upload.net - WoD_Extractor.rar

    Image:


    VS:
    Extractor: https://www.virustotal.com/de/file/e...is/1396982391/
    DLL: https://www.virustotal.com/de/file/c...is/1396982478/

    The virus scan once more shows how useless they are. The Extractor opens a process and tries to inject a dll and call various functions from that dll in the remote process but still only one scanner triggers something suspicious as im calling native functions from .NET...

    Source code for the DLL (for updates):
    Code:
    #include "stdafx.h"
    #include <filesystem>
    #include <fstream>
    #include <string>
    #include <iostream>
    #include <vector>
    #include <sstream>
    #include <WinSock2.h>
    
    #pragma comment(lib, "ws2_32.lib")
    
    #define BUILD_18379
    
    static unsigned int baseAddress = (unsigned int) GetModuleHandle(nullptr);
    static std::string outDir;
    static SOCKET connSocket;
    static bool hasProgress = false;
    static SOCKADDR_IN destAddr;
    
    unsigned int GetWowBase() {
    	return baseAddress;
    }
    
    void extractFiles(const std::string& fileName) {
    	typedef DWORD CASFILE;
    	typedef BOOL(*pCASOpenFile)(char *srcfile, int srcline, const char *name, CASFILE *pFile, int flags);
    	typedef BOOL(*pCASReadFile)(CASFILE pFile, uint8_t *buffer, int size);
    	typedef void(*pCASCloseFile)(CASFILE pFile);
    	typedef DWORD(*pCASGetFileSize)(CASFILE pFile);
    
    #ifdef BUILD_18322
    	pCASOpenFile CASOpenFile = pCASOpenFile(GetWowBase() + 0x12875);
    	pCASReadFile CASReadFile = pCASReadFile(GetWowBase() + 0x10FEF);
    	pCASCloseFile CASCloseFile = pCASCloseFile(GetWowBase() + 0x127BB);
    	pCASGetFileSize CASGetFileSize = pCASGetFileSize(GetWowBase() + 0x1125B);
    #endif
    #ifdef BUILD_18322
    	pCASOpenFile CASOpenFile = pCASOpenFile(GetWowBase() + 0x12CB5);
    	pCASReadFile CASReadFile = pCASReadFile(GetWowBase() + 0x11445);
    	pCASCloseFile CASCloseFile = pCASCloseFile(GetWowBase() + 0x12BFB);
    	pCASGetFileSize CASGetFileSize = pCASGetFileSize(GetWowBase() + 0x11747);
    #endif
    #ifdef BUILD_18379
    	pCASOpenFile CASOpenFile = pCASOpenFile(GetWowBase() + 0x12AA6);
    	pCASReadFile CASReadFile = pCASReadFile(GetWowBase() + 0x114E6);
    	pCASCloseFile CASCloseFile = pCASCloseFile(GetWowBase() + 0x129EC);
    	pCASGetFileSize CASGetFileSize = pCASGetFileSize(GetWowBase() + 0x117E8);
    #endif
    
    	if (hasProgress) {
    		std::vector<uint8_t> data(3 + fileName.length() + 1);
    		data[0] = 1;
    		uint16_t lenName = fileName.length() + 1;
    		*(uint16_t*) &data[1] = lenName;
    		memcpy(&data[3], fileName.c_str(), fileName.length());
    
    		send(connSocket, (char*) data.data(), data.size(), 0);
    	}
    
    	CASFILE file = 0;
    	if (CASOpenFile(__FILE__, __LINE__, fileName.c_str(), &file, 0)) {
    		DWORD size = CASGetFileSize(file);
    		if (size > 0) {
    			std::vector<uint8_t> content(size);
    			if (CASReadFile(file, content.data(), size)) {
    				std::stringstream strm;
    				strm << outDir << fileName.c_str();
    				auto path = std::tr2::sys::path(strm.str());
    				std::tr2::sys::create_directories(path.branch_path());
    				std::ofstream os(path.string(), std::ios::binary);
    				os.write((const char*)content.data(), content.size());
    				os.close();
    			} else {
    				std::cout << "Reading failed" << std::endl;
    			}
    		} else {
    			std::cout << "File empty" << std::endl;
    		}
    
    		CASCloseFile(file);
    	}
    	else {
    		std::cout << "Extracting: " << fileName << "... ";
    		std::cout << " failed!" << std::endl;
    	}
    }
    
    static std::ifstream inFile;
    static std::string line;
    
    struct InitParams
    {
    	char outDir[1024];
    	char fileList[1024];
    	bool hasProgress;
    };
    
    void loadParams(InitParams* ip) {
    	outDir = std::tr2::sys::path(ip->outDir).string();
    	if (outDir[outDir.length() - 1] != '/') {
    		outDir += "/";
    	}
    }
    
    extern "C" {
    	__declspec(dllexport) LRESULT WINAPI ExtractThread(LPVOID params) {
    		InitParams* ip = (InitParams*) params;
    		loadParams(ip);
    
    		if (ip->hasProgress) {
    			connSocket = socket(AF_INET, SOCK_STREAM, 0);
    			if (connSocket != INVALID_SOCKET) {
    				hasProgress = true;
    				memset(&destAddr, 0, sizeof(SOCKADDR_IN));
    				destAddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
    				destAddr.sin_port = htons(56789);
    				destAddr.sin_family = AF_INET;
    				int rc = connect(connSocket, (const sockaddr*) &destAddr, sizeof(destAddr));
    				if (rc < 0) {
    					hasProgress = false;
    				}
    			}
    		}
    
    		inFile.open(ip->fileList);
    		while (std::getline(inFile, line)) {
    			__try {
    				extractFiles(line);
    			}
    			__except (EXCEPTION_EXECUTE_HANDLER) {
    
    			}
    		}
    
    		if (hasProgress) {
    			char fin = 0;
    			send(connSocket, &fin, 1, 0);
    			closesocket(connSocket);
    		}
    
    		ExitThread(0);
    	}
    }
    
    BOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
    					 )
    {
    	switch (ul_reason_for_call)
    	{
    	case DLL_PROCESS_ATTACH:
    	case DLL_THREAD_ATTACH:
    	case DLL_THREAD_DETACH:
    	case DLL_PROCESS_DETACH:
    		break;
    	}
    	return TRUE;
    }
    Greetings
    Cromon
    Last edited by Cromon; 06-18-2014 at 07:08 AM.

    File Extractor - Warlords of Draenor
  2. #2
    Blackplayer27's Avatar Active Member
    Reputation
    32
    Join Date
    Sep 2010
    Posts
    27
    Thanks G/R
    3/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Very nice thx

  3. #3
    Cromon's Avatar Legendary


    Reputation
    840
    Join Date
    Mar 2008
    Posts
    714
    Thanks G/R
    0/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    On a sidenote: If you dont have the alpha client downloaded the files get downloaded when requested. It just takes even longer to extract.

  4. #4
    Xel's Avatar ★ Elder ★
    Authenticator enabled
    Reputation
    1179
    Join Date
    Jul 2008
    Posts
    2,906
    Thanks G/R
    94/51
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Nice work, is this project open source by any chance? I've seen similar implementations by some people and it'd be interesting to take a look at yours ^^
    "You must spread some Reputation around before giving it to Cromon again." Damnit

  5. #5
    akriso's Avatar Member
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    26
    Thanks G/R
    2/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    how to make file list? i would update it self for all next patches...

  6. #6
    DavidTwo2009's Avatar Active Member
    Reputation
    32
    Join Date
    Aug 2009
    Posts
    436
    Thanks G/R
    2/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    "6. Choose the file list "

    huh

  7. #7
    Lofinko's Avatar Member CoreCoins Purchaser
    Reputation
    8
    Join Date
    Mar 2010
    Posts
    22
    Thanks G/R
    12/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by DavidTwo2009 View Post
    "6. Choose the file list "

    huh
    file_list.txt in rar with extractor

  8. #8
    ulminia's Avatar Member
    Reputation
    1
    Join Date
    Jun 2013
    Posts
    7
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    excelent tool +rep

  9. #9
    DavidTwo2009's Avatar Active Member
    Reputation
    32
    Join Date
    Aug 2009
    Posts
    436
    Thanks G/R
    2/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Well now it's not giving me the option to load from WoWB.exe, just other .exe's that aren't related to WoW at all.

  10. #10
    Cromon's Avatar Legendary


    Reputation
    840
    Join Date
    Mar 2008
    Posts
    714
    Thanks G/R
    0/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Go to your task manager and have a look if the correct process is open. Im pretty sure you didnt do step 1.

  11. #11
    Android32's Avatar Banned
    Reputation
    66
    Join Date
    Sep 2013
    Posts
    281
    Thanks G/R
    8/17
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    m8, this is great. maybe i can get some model swaps up and working now. +rep.

  12. #12
    cecilb's Avatar Member
    Reputation
    1
    Join Date
    Sep 2008
    Posts
    3
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by DavidTwo2009 View Post
    Well now it's not giving me the option to load from WoWB.exe, just other .exe's that aren't related to WoW at all.
    Likewise

  13. #13
    DavidTwo2009's Avatar Active Member
    Reputation
    32
    Join Date
    Aug 2009
    Posts
    436
    Thanks G/R
    2/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Cromon View Post
    Go to your task manager and have a look if the correct process is open. Im pretty sure you didnt do step 1.
    I did Step One when it worked the first time. I don't know why it refuses to show it now. /shrug

  14. #14
    Cromon's Avatar Legendary


    Reputation
    840
    Join Date
    Mar 2008
    Posts
    714
    Thanks G/R
    0/7
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    It shows all 32 bit processes but it doesnt refresh the list, you have to first start wow, then the extractor.

  15. #15
    cecilb's Avatar Member
    Reputation
    1
    Join Date
    Sep 2008
    Posts
    3
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Okay if your running in windows 8 - make sure to run it in compatibility mode... will show your processes then.

Page 1 of 22 12345 ... LastLast

Similar Threads

  1. [Selling] ★★[EU/US]60 Days GTC(Scan) | 30Days GTC | BC | MOP | Warlords of Draenor | D3 Keys ★★
    By power8gold in forum World of Warcraft Buy Sell Trade
    Replies: 446
    Last Post: 02-02-2016, 07:34 AM
  2. [Selling] EU&US 60 Days GC|BC| Warlords of Draenor| New D3:ROS |GW2 |SC2| wow gold,powerlvling!
    By lisa1030 in forum World of Warcraft Buy Sell Trade
    Replies: 384
    Last Post: 03-06-2015, 01:55 PM
  3. [Selling] US/EU Warlords of Draenor CD Keys◢█◣GameTime Card◢█◣ trade for gold◢█◣Real Card 100%!
    By UNmergedwowacc in forum World of Warcraft Buy Sell Trade
    Replies: 1107
    Last Post: 02-28-2015, 07:00 AM
  4. Blizzard Trademarks "Warlords of Draenor" - WoW Expansion
    By Toris in forum World of Warcraft General
    Replies: 3
    Last Post: 11-01-2013, 09:17 PM
  5. Rift .PAK file extractor
    By Xyborg in forum Rift
    Replies: 10
    Last Post: 03-20-2011, 10:12 AM
All times are GMT -5. The time now is 07:05 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search