5.7 C
New York
Friday, April 11, 2025
Home Blog Page 3894

Excessive Effectivity, Excessive Prices: Is There House for Stable Oxide Electrolyzers within the Hydrogen Business?


Stable oxide electrolyzers (SOECs) are rising to be a sizzling subject on the earth of vitality. They use a strong ceramic materials to separate water into hydrogen and oxygen at extraordinarily excessive temperatures (600°C to 850°C). As a result of excessive working temperature, they’re additionally extremely environment friendly, hitting vitality effectivity ranges between 80-100%. These ranges are considerably increased than different dominant electrolyzers available in the market comparable to Alkaline (AEL), Proton Trade Membrane (PEM), and Anion Trade Membrane (AEM), which often have effectivity ranges of 58-75%. 

Nonetheless, while SOEC effectivity is unparalleled, the excessive prices and technical challenges related to SOECs make them appropriate just for particular, high-value use instances.   

Word: LHV 33.3 refers back to the decrease heating worth of hydrogen (33.3 kWh/kg), used to calculate SOEC effectivity by measuring the vitality content material of the hydrogen produced. It represents the usable vitality with out accounting for water vaporization. 

The Promise of SOECs  

SOECs are distinguished by their excessive effectivity, usually attaining Increased Warmth Worth (HHV) effectivity above 100%. Which means that the vitality output of the method can exceed the vitality enter, a uncommon and worthwhile trait in vitality manufacturing applied sciences. This excessive effectivity leads to the manufacturing of high-purity hydrogen, which is essential for industries that require stringent high quality requirements, such because the artificial fuels sector.  

Moreover, SOECs can use waste warmth and steam from industrial processes, making them much more environment friendly and cheaper to run. It is a win for each price financial savings and sustainability in numerous industries. 

The place SOECs Actually Shine 

  • Artificial Fuels: SOECs are significantly appropriate for producing syngas (a mixture of hydrogen and carbon monoxide) for artificial fuels. The excessive purity of hydrogen means much less refining is required, making the entire course of cheaper and extra environment friendly. That is promising for the Sustainable Aviation Gasoline (SAF) business, which additionally has rising regulatory and manufacturing help. Offtake agreements comparable to Norsk e-fuels with Sunfire, and Airbus with Genvia, are already in place. 
     
  • Steelmaking: The metal business can minimize CO2 emissions by 80-90% utilizing SOECs, as hydrogen can exchange carbon within the iron ore discount course of. The high-temperature surroundings and the provision of waste warmth in metal vegetation align effectively with the operational wants of SOECs, additional rising effectivity. Initiatives like GrinHy with Sunfire and Salzgitter, and Ceres’ SteelCell improvement with Doosan, are key in demonstrating the viability of this use case.  
     
  • Nuclear Energy Crops: SOECs may be built-in into nuclear vegetation to supply hydrogen extra effectively utilizing the surplus warmth from the vegetation. This not solely boosts plant effectivity but in addition enhances security by decreasing the necessity for exterior hydrogen provides. The combination of hydrogen manufacturing inside nuclear vegetation may assist in balancing the vitality grid, offering a versatile and dependable vitality supply. Corporations like FuelCell Power and Bloom Power are exploring this potential. 
     

Company engagement by means of pilot demonstration vegetation and offtake agreements is essential for scaling up manufacturing from kilowatts (kW) to megawatts (MW). Such initiatives are already underway, indicating a rising curiosity and funding on this know-how.  

The Roadblocks 

Regardless of their advantages, the promise of SOECs comes at a excessive price—two to 3 instances costlier than different electrolyzers. In addition they face technical challenges as a result of their excessive working temperatures, which may result in sooner wear-and-tear and better upfront prices. Whereas excessive working temperatures will help mitigate efficiency loss, in addition they induce thermal stress, rising the chance of stack failure by means of electrolyte cracking or seal breakage. SOECs can run at full load for about 2.5 years, whereas different electrolyzers can final 4-8 instances longer. 

Moreover, SOEC know-how depends closely on electrical energy prices as a result of it wants numerous vitality to run the high-temperature electrolysis course of. It’s less expensive in locations the place electrical energy is affordable or there may be loads of inexpensive renewable vitality. Alternatively, it struggles in areas with excessive electrical energy prices, unstable energy, or small-scale setups. SOECs want regular excessive temperatures and secure energy to work effectively, so areas with unreliable renewable vitality sources like photo voltaic or wind can have points until they use vitality storage options or good grid administration to clean out the ability provide. 

Scaling manufacturing from kW to MW would drastically scale back manufacturing and materials prices and financial savings in complete stack price may be 67% to 77% when evaluating kW to MW scaled applied sciences. Nonetheless, just a few innovators comparable to Bloom Power and Topsoe have stacks at giant scales, that are important to exhibit technical maturity and long-term viability to buyers. 

   

Innovating for the Future 

Wanting forward, the main target for SOEC know-how is on technical innovation and value discount. ‘Subsequent-generation’ SOEC know-how goals to handle the present limitations by enhancing the sturdiness of supplies, optimizing design, and enhancing manufacturing processes. Some examples are:  

Manufacturing Innovation: 

  • Mitsubishi Heavy Industries: Makes use of tubes as a substitute of sheets for stack manufacturing – simplifies gasoline sealing and circulation administration, resulting in improved efficiency reliability
  • FuelCell Power: Makes use of disc-shaped stacks to chop prices by repurposing DVD manufacturing equipment; stacks are 95% recyclable
  • Elcogen: Automating stack meeting to hurry up manufacturing and decrease prices 

Materials and Design Innovation: 

  • Ceres: Makes use of a Gadolinium-doped ceria electrolyte, which permits for decrease temperature operation, and stack makes use of much less nickel – improves sturdiness and reduces prices
  • Elcogen: Operates at a decrease temperature, permitting using cheaper parts comparable to stainless-steel as a substitute of specialised alloys
  • Bloom Power: Chopping out deoxygenation models to simplify system design – reduces prices and upkeep wants 

Integration Innovation: 

  • Topsoe: Integration of electrolyzer know-how with ammonia and methanol manufacturing, leveraging experience by means of their catalyst enterprise
  • Sunfire: Crops operating on a mixture of alkaline and SOEC electrolyzers, offering a robust benefit for the power-to-liquid and e-fuels markets

These developments are paving the way in which for SOECs to scale up and turn into extra inexpensive. Because the vitality panorama shifts, SOECs may play an important function in a sustainable and environment friendly hydrogen financial system. Nonetheless, realizing this potential will depend upon continued innovation and company partnerships.  

A unique technique to develop SwiftPM Packages inside Xcode tasks — Erica Sadun


WWDC gave us many causes to each migrate libraries to SwiftPM and to develop new ones to help our work. The mixing between Xcode growth and SwiftPM dependencies retains rising stronger and extra essential.

Apple’s Modifying a Package deal Dependency as a Native Package deal assumes you’ll drag in your bundle to an Xcode undertaking as a neighborhood bundle overrides one which’s imported by way of a standard bundle dependency.

In Growing a Swift Package deal in Tandem with an App, Apple writes, “To develop a Swift bundle in tandem with an app, you possibly can leverage the habits whereby a neighborhood bundle overrides a bundle dependency with the identical identify…when you launch a brand new model of your Swift bundle or wish to cease utilizing the native bundle, take away it from the undertaking to make use of the bundle dependency once more.”

I don’t use this strategy. It’s not dangerous or incorrect, it simply doesn’t match my type.

However, opening the Package deal.swift file on to develop has drawbacks in that it doesn’t totally provide Xcode’s suite of IDE help options but.

So I’ve been engaged on a private answer that greatest works for me. I need my bundle growth and its assessments to reside individually from any particular shopper app exterior a testbed. I want to make sure that my code will swift construct and swift take a look at correctly however I additionally wish to use Xcode’s built-in compilation and unit testing with my glad inexperienced checks.

I set out to determine how greatest, no less than for me, to develop Swift packages underneath the xcodeproj umbrella.

I first explored  swift bundle generate-xcodeproj. This builds an Xcode library undertaking full with assessments and a bundle goal. You should use the --type flag to set the bundle to executable, system-module, or manifest as a substitute of the default (library) throughout swift bundle init:

Generate% swift bundle init
Creating library bundle: Generate
Creating Package deal.swift
Creating README.md
Creating .gitignore
Creating Sources/
Creating Sources/Generate/Generate.swift
Creating Assessments/
Creating Assessments/LinuxMain.swift
Creating Assessments/GenerateTests/
Creating Assessments/GenerateTests/GenerateTests.swift
Creating Assessments/GenerateTests/XCTestManifests.swift
Generate% swift bundle generate-xcodeproj
generated: ./Generate.xcodeproj

Though SwiftPM creates a .gitignore file for you as you see, it doesn’t initialize a git repository. Additionally, I all the time find yourself deleting the .gitignore as I take advantage of a personalized world ignore file. That is what the ensuing undertaking seems like:

As you see, the generated Xcode undertaking has the whole lot however a testbed for you. I actually like having an on-hand testbed, whether or not a easy SwiftUI app or a command line utility to play with concepts. I regarded into utilizing a playground however let’s face it: too sluggish, too glitchy, too unreliable.

It’s a ache so as to add a testbed to this set-up, so I got here up with a distinct technique to construct my base bundle surroundings. It’s hacky however I a lot desire the end result. As a substitute of producing the undertaking, I begin with a testbed undertaking after which create my bundle. This strategy naturally packs a pattern with the bundle however none of that pattern leaks into the bundle itself:

I find yourself with three targets: the pattern app, a library constructed from my Sources, and my assessments. The library folder you see right here accommodates solely an Data.plist and a bridging header. It in any other case builds from no matter Sources I’ve added.

I a lot desire this set-up to the generate-xcodeproj strategy, though it takes barely longer to set-up. The explanation for that is that SwiftPM and Xcode use completely different philosophies for the way a undertaking folder is structured. SwiftPM has its Sources and Assessments. Xcode makes use of a supply folder named after the undertaking.

So I take away that folder, add a Sources group to the undertaking, and be sure that my construct phases sees and compiles these recordsdata. The Assessments want related tweaks, plus I’ve so as to add a symbolic hyperlink from Xcode’s assessments identify (e.g. “ProjectNameAssessments”) to my SwiftPM Assessments folder on the prime degree of my undertaking to get it to all dangle collectively. As soon as I’ve achieved so my inexperienced checks are prepared and ready simply as if I had opened the Package deal.swift file instantly. However this time, I’ve all the precise instruments at hand.

Since I’m speaking about set-up, let me add that my duties additionally embrace organising the README, including a license and creating the preliminary change log. These are SwiftPM setup duties that swift bundle init doesn’t cowl the way in which I like. I trash .gitignore however since I’ve Xcode set-up to routinely initialize model management, I don’t should git init by hand.

I believe it is a short-term workaround as I count on the combination of SwiftPM and Xcode to proceed rising over the following couple of years. Since WWDC, I’ve been notably enthusiastic about creating, deploying, and integrating SwiftPM packages. I assumed I’d share this in case it would assist others. Let me know.

Dump Lsass Utilizing Solely Native APIs By Hand-Crafting Minidump Recordsdata (With out MinidumpWriteDump!)

0




Dump Lsass Utilizing Solely Native APIs By Hand-Crafting Minidump Recordsdata (With out MinidumpWriteDump!)

NativeDump permits to dump the lsass course of utilizing solely NTAPIs producing a Minidump file with solely the streams wanted to be parsed by instruments like Mimikatz or Pypykatz (SystemInfo, ModuleList and Memory64List Streams).

  • NTOpenProcessToken and NtAdjustPrivilegeToken to get the “SeDebugPrivilege” privilege
  • RtlGetVersion to get the Working System model particulars (Main model, minor model and construct quantity). That is needed for the SystemInfo Stream
  • NtQueryInformationProcess and NtReadVirtualMemory to get the lsasrv.dll tackle. That is the one module needed for the ModuleList Stream
  • NtOpenProcess to get a deal with for the lsass course of
  • NtQueryVirtualMemory and NtReadVirtualMemory to loop by the reminiscence areas and dump all potential ones. On the identical time it populates the Memory64List Stream

Utilization:

NativeDump.exe [DUMP_FILE]

The default file identify is “proc_.dmp”:

Dump Lsass Utilizing Solely Native APIs By Hand-Crafting Minidump Recordsdata (With out MinidumpWriteDump!)

The software has been examined towards Home windows 10 and 11 units with the most typical safety options (Microsoft Defender for Endpoints, Crowdstrike…) and is for now undetected. Nonetheless, it doesn’t work if PPL is enabled within the system.

Some advantages of this system are: – It doesn’t use the well-known dbghelp!MinidumpWriteDump operate – It solely makes use of capabilities from Ntdll.dll, so it’s potential to bypass API hooking by remapping the library – The Minidump file doesn’t must be written to disk, you may switch its bytes (encoded or encrypted) to a distant machine

The challenge has three branches in the intervening time (other than the primary department with the fundamental method):

  • ntdlloverwrite – Overwrite ntdll.dll’s “.textual content” part utilizing a clear model from the DLL file already on disk

  • delegates – Overwrite ntdll.dll + Dynamic operate decision + String encryption with AES + XOR-encoding

  • distant – Overwrite ntdll.dll + Dynamic operate decision + String encryption with AES + Ship file to distant machine + XOR-encoding

Method intimately: Making a minimal Minidump file

After studying Minidump undocumented constructions, its construction will be summed as much as:

  • Header: Info just like the Signature (“MDMP”), the placement of the Stream Listing and the variety of streams
  • Stream Listing: One entry for every stream, containing the kind, complete measurement and placement within the file of every one
  • Streams: Each stream comprises totally different data associated to the method and has its personal format
  • Areas: The precise bytes from the method from every reminiscence area which will be learn

I created a parsing software which will be useful: MinidumpParser.

We are going to concentrate on creating a sound file with solely the required values for the header, stream listing and the one 3 streams wanted for a Minidump file to be parsed by Mimikatz/Pypykatz: SystemInfo, ModuleList and Memory64List Streams.


A. Header

The header is a 32-bytes construction which will be outlined in C# as:

public struct MinidumpHeader
{
public uint Signature;
public ushort Model;
public ushort ImplementationVersion;
public ushort NumberOfStreams;
public uint StreamDirectoryRva;
public uint CheckSum;
public IntPtr TimeDateStamp;
}

The required values are: – Signature: Fastened worth 0x504d44d (“MDMP” string) – Model: Fastened worth 0xa793 (Microsoft fixed MINIDUMP_VERSION) – NumberOfStreams: Fastened worth 3, the three Streams required for the file – StreamDirectoryRVA: Fastened worth 0x20 or 32 bytes, the dimensions of the header


B. Stream Listing

Every entry within the Stream Listing is a 12-bytes construction so having 3 entries the dimensions is 36 bytes. The C# struct definition for an entry is:

public struct MinidumpStreamDirectoryEntry
{
public uint StreamType;
public uint Measurement;
public uint Location;
}

The sector “StreamType” represents the kind of stream as an integer or ID, a few of the most related are:

ID Stream Sort
0x00 UnusedStream
0x01 ReservedStream0
0x02 ReservedStream1
0x03 ThreadListStream
0x04 ModuleListStream
0x05 MemoryListStream
0x06 ExceptionStream
0x07 SystemInfoStream
0x08 ThreadExListStream
0x09 Memory64ListStream
0x0A CommentStreamA
0x0B CommentStreamW
0x0C HandleDataStream
0x0D FunctionTableStream
0x0E UnloadedModuleListStream
0x0F MiscInfoStream
0x10 MemoryInfoListStream
0x11 ThreadInfoListStream
0x12 HandleOperationListStream
0x13 TokenStream
0x16 HandleOperationListStream

C. SystemInformation Stream

First stream is a SystemInformation Stream, with ID 7. The scale is 56 bytes and might be positioned at offset 68 (0x44), after the Stream Listing. Its C# definition is:

public struct SystemInformationStream
{
public ushort ProcessorArchitecture;
public ushort ProcessorLevel;
public ushort ProcessorRevision;
public byte NumberOfProcessors;
public byte ProductType;
public uint MajorVersion;
public uint MinorVersion;
public uint BuildNumber;
public uint PlatformId;
public uint UnknownField1;
public uint UnknownField2;
public IntPtr ProcessorFeatures;
public IntPtr ProcessorFeatures2;
public uint UnknownField3;
public ushort UnknownField14;
public byte UnknownField15;
}

The required values are: – ProcessorArchitecture: 9 for 64-bit and 0 for 32-bit Home windows programs – Main model, Minor model and the BuildNumber: Hardcoded or obtained by kernel32!GetVersionEx or ntdll!RtlGetVersion (we’ll use the latter)


D. ModuleList Stream

Second stream is a ModuleList stream, with ID 4. It’s positioned at offset 124 (0x7C) after the SystemInformation stream and it’ll even have a set measurement, of 112 bytes, since it can have the entry of a single module, the one one wanted for the parse to be appropriate: “lsasrv.dll”.

The standard construction for this stream is a 4-byte worth containing the variety of entries adopted by 108-byte entries for every module:

public struct ModuleListStream
{
public uint NumberOfModules;
public ModuleInfo[] Modules;
}

As there is just one, it will get simplified to:

public struct ModuleListStream
{
public uint NumberOfModules;
public IntPtr BaseAddress;
public uint Measurement;
public uint UnknownField1;
public uint Timestamp;
public uint PointerName;
public IntPtr UnknownField2;
public IntPtr UnknownField3;
public IntPtr UnknownField4;
public IntPtr UnknownField5;
public IntPtr UnknownField6;
public IntPtr UnknownField7;
public IntPtr UnknownField8;
public IntPtr UnknownField9;
public IntPtr UnknownField10;
public IntPtr UnknownField11;
}

The required values are: – NumberOfStreams: Fastened worth 1 – BaseAddress: Utilizing psapi!GetModuleBaseName or a mixture of ntdll!NtQueryInformationProcess and ntdll!NtReadVirtualMemory (we’ll use the latter) – Measurement: Obtained including all reminiscence area sizes since BaseAddress till one with a measurement of 4096 bytes (0x1000), the .textual content part of different library – PointerToName: Unicode string construction for the “C:WindowsSystem32lsasrv.dll” string, positioned after the stream itself at offset 236 (0xEC)


E. Memory64List Stream

Third stream is a Memory64List stream, with ID 9. It’s positioned at offset 298 (0x12A), after the ModuleList stream and the Unicode string, and its measurement is dependent upon the variety of modules.

public struct Memory64ListStream
{
public ulong NumberOfEntries;
public uint MemoryRegionsBaseAddress;
public Memory64Info[] MemoryInfoEntries;
}

Every module entry is a 16-bytes construction:

public struct Memory64Info
{
public IntPtr Handle;
public IntPtr Measurement;
}

The required values are: – NumberOfEntries: Variety of reminiscence areas, obtained after looping reminiscence areas – MemoryRegionsBaseAddress: Location of the beginning of reminiscence areas bytes, calculated after including the dimensions of all 16-bytes reminiscence entries – Handle and Measurement: Obtained for every legitimate area whereas looping them


F. Looping reminiscence areas

There are pre-requisites to loop the reminiscence areas of the lsass.exe course of which will be solved utilizing solely NTAPIs:

  1. Receive the “SeDebugPrivilege” permission. As an alternative of the standard Advapi!OpenProcessToken, Advapi!LookupPrivilegeValue and Advapi!AdjustTokenPrivilege, we’ll use ntdll!NtOpenProcessToken, ntdll!NtAdjustPrivilegesToken and the hardcoded worth of 20 for the Luid (which is fixed in all newest Home windows variations)
  2. Receive the method ID. For instance, loop all processes utilizing ntdll!NtGetNextProcess, acquire the PEB tackle with ntdll!NtQueryInformationProcess and use ntdll!NtReadVirtualMemory to learn the ImagePathName discipline inside ProcessParameters. To keep away from overcomplicating the PoC, we’ll use .NET’s Course of.GetProcessesByName()
  3. Open a course of deal with. Use ntdll!OpenProcess with permissions PROCESS_QUERY_INFORMATION (0x0400) to retrieve course of data and PROCESS_VM_READ (0x0010) to learn the reminiscence bytes

With this it’s potential to traverse course of reminiscence by calling: – ntdll!NtQueryVirtualMemory: Return a MEMORY_BASIC_INFORMATION construction with the safety sort, state, base tackle and measurement of every reminiscence area – If the reminiscence safety shouldn’t be PAGE_NOACCESS (0x01) and the reminiscence state is MEM_COMMIT (0x1000), that means it’s accessible and dedicated, the bottom tackle and measurement populates one entry of the Memory64List stream and bytes will be added to the file – If the bottom tackle equals lsasrv.dll base tackle, it’s used to calculate the dimensions of lsasrv.dll in reminiscence – ntdll!NtReadVirtualMemory: Add bytes of that area to the Minidump file after the Memory64List Stream


G. Creating Minidump file

After earlier steps we’ve all that’s essential to create the Minidump file. We will create a file regionally or ship the bytes to a distant machine, with the potential for encoding or encrypting the bytes earlier than. A few of these potentialities are coded within the delegates department, the place the file created regionally will be encoded with XOR, and within the distant department, the place the file will be encoded with XOR earlier than being despatched to a distant machine.



Valve bans keyboard automation in Counter-Strike 2

0


Backside line: Valve has weighed in on a set of controversial keyboard options that some imagine enabled an unfair benefit, and one of many corporations impacted by the choice has chimed in on the matter.

For these lower than velocity, Razer prompted a little bit of a stir within the aggressive gaming neighborhood when it added assist for a function known as Snap Faucet to its Huntsman V3 Professional keyboards. The tech roughly eradicated enter lag when switching between reverse instructions in video games like Counter-Strike 2, resulting in motion that’s in any other case inconceivable.

Wooting, a rival keyboard maker, did not like the thought from the beginning however finally rolled out an analogous function with the intention to acquire suggestions from customers. Now, Valve has issued its official stance on the problem.

The developer and writer stated it’s drawing a transparent line on what’s and is not acceptable in Counter-Strike. Transferring ahead, automation (both by way of scripting or {hardware}) that skirts “core abilities” like coordination and response time is now not allowed.

Anybody suspected of “automating a number of participant actions from a single recreation enter” on official Valve servers will now be faraway from their match, we’re advised. The Verge’s Tom Warren tried utilizing simultaneous opposing cardinal instructions (SOCD) after the replace on a Valve server, and was certainly booted from the session. Notably, there would not appear to be an account ban related to an infraction (at the least, proper now) – you simply get kicked from the match.

Valve added that in-game binds that embody multiple motion /assault actions will now not work with the intention to stop unintended infractions.

Over on X, Wooting stated they’re glad Valve has taken a stance in opposition to Snap Faucet, and inspired avid gamers to not use Snappy Tappy or Rappy Snappy in Counter-Strike 2.

With Counter-Strike 2 now off the desk, it might solely be a matter of time earlier than different video games additionally ban use of the function. Now, if we may simply do one thing about bots and extra conventional cheat software program.

Picture credit score: John Petalcurin



Civ VII coming to Mac in 2025

0


Civ VII coming to macOS in 2025


Civ VII coming to Mac in 2025

The following entry into Sid Meier’s Civilization franchise will make its method to macOS in February 2025, bringing one other turn-based technique title to the Mac.

Civilization VII, or Civ VII for brief, is a turn-based technique recreation developed by Firaxis Video games and revealed by 2K. It is set to land on Mac, Home windows, and SteamOS/Linux on February 11, 2025.

Civ VII permits gamers to assemble cities and architectural components, broaden their territory, enhance their civilization with technological breakthroughs, and conquer or cooperate with rival civilizations.

Along with asserting the discharge date, the builders have shared a gameplay reveal trailer on YouTube.

The sport provides an immersive solo expertise in addition to on-line cross-platform multiplayer. As much as 5 gamers are supported within the Antiquity & Exploration Ages, whereas as much as eight gamers are supported within the Trendy Age.

At present, there is no such thing as a phrase on what the system necessities shall be. Gamers can preorder the fundamental version now on Steam for $69.99, the Deluxe version for $99.99, or the Founders Version for $129.99.

The Deluxe Version provides superior entry on February 6, 2025. It additionally contains the Tecumseh and Shawnee Pack, the Crossroads of the World Assortment, with post-launch content material that includes two new leaders, 4 new civilizations, 4 new wonders, a particular beauty bonus. It additionally supplies further content material together with two chief personas, 4 profile customizations, and one alternate scout pores and skin.

The Founder Version supplies all the pieces that the Deluxe Version does, in addition to the Proper to Rule Assortment, with post-launch content material that includes two new leaders, 4 new civilizations, 4 new wonders, and a beauty bonus. It additionally contains an extra two chief personas, 4 profile customizations, one fog of struggle tile set, and one Founders palace pores and skin.