[Update 1.1a]
die dll wurde per array in das script includiert.
[Initial 1.0.a]
So, nach anfänglichen Schwierigkeiten hier meine c++ dll als udf für Autoit.
Mit Beispiel (Alles auch im rar - Archiv):
Wozu das Ganze?:
Wenn man eine Datei hat in der man einen/mehrere Bytestring/s sucht, der im String
unbekannte oder sich ändernde Bytes enthält, dann kann dieser hiermit gesucht und ganz oder teilweise (auch mit einer Patternmaske) ersetzt werden. Das Ganze funktioniert auf Dateiebene mit jeglicher Art von Binärendateien;
sowohl die Dateien, als auch die Suchstrings können dabei so groß sein, wie es der Buffer hergibt.
Es funktioniert auch mit mehreren/verschiedenen Bytestrings beliebig oft hintereinander.
Wir suchen z.B. "3BC3EB9529000000A1" wobei hier in hex umgewandelt wird.
Die Maske ist z.B. "xxx?????x" d.h. die ersten 3 bytes und das letzte Byte des Strings müssen gefunden werden!
... tun sie das, wird nach gleichem Prinzip ersetzt ... alles was "x" beim Ersetzen ist, wird vom "replacestring" an die Stelle geschrieben, wo "searchstring" gefunden wurde!
Vorteile: Wahnsinnige Geschwindigkeit... selbst bei großen Dateien... ...dank Dll (= neuer Thread) arbeitet es parallel zum autoit script. wer möchte, darf gerne mal Speedtests machen (würde mich freuen / z.B. im vergleich zu Autoit)
Beispiel:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <search_and_replace.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Suchen & ersetzen...", 250, 100, -1, -1)
$Button1 = GUICtrlCreateButton("Search and Replace", 25, 50, 200, 25, $WS_GROUP)
GUICtrlCreateLabel("Beispiel!", 100, 20)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; Example how so search and replace bytes unknown bytes
; in searchbytes and in replacebytes
; Note: This does not increase the filesize! It will replace
; the bytes at where the searchmask was found!
; pls give credit if you use my dll!
; Greetings - WhiteLion
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_Patch()
EndSwitch
WEnd
Func _Patch()
MsgBox (0, "!!!", "Before continue, test -> PatchMe.exe")
MsgBox (0,"_Fileread", "Filesize in bytes: "&_FileRead("PatchMe.exe"))
MsgBox (0,"_FilePatch", "Count of replacements: "&_FilePatch("3BC30F8494000000a1", "xx??????x", "3BC3E99500000090a1", "??xxx??x?"))
MsgBox (0, "_FileWrite", "Writing file went well: "&_FileWrite("Done.exe"))
MsgBox (0, "Finished", "Now test -> Done.exe")
EndFunc
udf:
Spoiler anzeigen
#include-once
#region Search_And_Replace
Global $sPath = @TempDir & "\", $bData[3] = [1]
; String mit den Binärdaten von: sar.dll
$bData[1] &= "0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000000100000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A240000000000000095C01DD1D1A17382D1A17382D1A1738242EFEB82D0A17382CA3CED82D2A17382CA3CD982DFA17382CA3CEF82D4A17382CA3CD882D7A17382D8D9E082D3A17382D1A172825BA17382CA3CDC82D2A17382CA3CE882D0A17382CA3CEE82D0A1738252696368D1A17382000000000000000000000000000000000000000000000000504500004C01030097C87A4F0000000000000000E00002210B010A00004000000010000000B00000D0EE000000C00000000001000000001000100000000200000500010000000000050001000000000000100100001000000000000002004001000010000010000000001000001000000000000010000000BC02010080000000B80101000401000000000100B8010000000000000000000000000000000000003C0301001800000000000000000000000000000000000000000000000000000000000000000000009CF000004800000000000000000000000000000000000000000000000000000000000000000000000000000000000000555058300000000000B00000001000000000000000040000000000000000000000000000800000E055505831000000000040000000C000000032000000040000000000000000000000000000400000E02E7273726300000000100000000001000004000000360000000000000000000000000000400000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000332E303800555058210D090209D23FA2B0251D2E4F56C30000CE2E0000007A00002604001AFB776FFFC701000053F4FF25055188CC00558BEC568BF1C70615FFB1FF1915F6450801740A560C0483C4048BC65E5DFFE56DF6C20400CC002CF057B9520083FE0472168BBBD6B6FFFF8B023B01751283EE29C102261573ECF9B7DFFE85F674440FB60202392BC77531120176350FB6420134CD4B77790110200276240202FF4BF3D20F0376130349032BC1C1F81F5F83FD0BDBFEC8015EC35F33C004CC008B0885C97414B36FDFFE9C50BC85C0A78B108BC8836A01FFD0296DFFBF75CF8BC08B481481E1FFF9FFFF81C900082A89F6ED6FB60E5D1E1F6AFF6812417B64A105FE77BBBB4581ECD40653560D801833C5508D45F464A3FBEEEDF61908085086FF33DBEE85A8C745FC14DDDD7EE1E80818EC8D8D3859FF510B0B4CC6EEB7DFBE1701837D1C854D0873038D046A218DB5501DFEDF6F771C1A4C6A38C0751A8B952E8B4A046A028D8C0D2C633FF60BBE9CEB188B85194800B7FBDB816473395DA40F858D708B0D1085DDDD6FB48B16F051B75204525A1FCC9815C68E6DE4C82D988B8E8BACAFDDDEBFB1A88945F0C784150F195444A88AC63EDB75A202330D8C0E885DFC377882FB1BDBADA808A0BF720D8BEFF47F179A4BF8D108890DF4595E5BB1D9EDC68BE5031C00C05353FC38DB809D85800820127CCC086BEFC3DF030836862C412132C6BB0C533C27FBAEA30728881C02A1D1F45034EC26193336DA385008221CEFC28EECEC5381A15BE181DD0E2359535088848D75B0D8EC17510D0C719477094732424A4890527285F04E8B35345803564269144D57830C19935B9F2C51DBF153C656579A8B018D7170368975947BCB187B443190914EA2910E6CF6EC100C928BCE917CE42135075F5EC30F4203B52E9899DC72F5537FEE840C2113C475D40718BED3F60AAC8BF8090814157C12BE7D773B41F9BF1028397DE8720981D451FFD6780F131E0915958F52589F8491FC025451F98D5508522C3C7EE68D85181A0C0CD6A718F1DE2C9CF69B24060F8494BDC821239361F05C9CCB42B20053F588D07221933418303083D9261788E61CF42CE376D2D649E92D05F97ECB0E5976AA5152288CD5B60C331AAACB211B18926EB74DF788468955890DCC100099043789B709A1404DFD5B0DF03393B18CA7CDA2E4857F3F18607C906083EC2C5382F8C2D61A645DADD6F223E0895DEC6FB71EEB0B01163C3BC6B9E7020B3BC374AE7D9BE50885DBDB8B1DD556246EDB1C2ED606801690593CDC0D3658DBB63CFE8B3C100C30C84533F0DFE32CBE30F74DCC3975405A123C67A55BC83C520E2E45506B765B9B3A19DC4E5152D41F8C754B06204E1049C8E624CBB32410207DECB6ADC1B05792DD2CE09656B2DBC59659D01E1B"
$bData[1] &= "833DBB2C006CA6DDDFE4F70F86BBE7F7DE7A78DC7360FE1BB4110FB6032BC2740CB3EDDB9A78737F01753C33D2042808CC5FFF17FE7FD48BCBF7D903F18BC303F98D49453C303F75058A08880C38139BDCED42403BD172EE2D138BD3500B1942E215904F47902339923827162D482F969ABF74CB77934BA652187FE0510B538C51090C3248090C9415A5132F1CFFBE817DE0FC6618180A87979E3B0FA5E10B85C27D643156EC2BFB2B1AFAFFD67855D88D6CE80778756E8A0E88080FBE16A123E98B45E4716AA474B183C1616AFCEE55F03147C9EFEC5103D63451A0A85046FB6D86FBFF4DD87583DD6FAFF003D840890E6099FE703B05C20F824AFE518F7361F274241E10E0240F522B9D05E7205B21C848DA26CF402C08E83FBF8544533540A0A752B872CC1A9252988FA77EF0FDCE9253CD0C56052888534061A96C4A50105BDB4CC420CF0063E08363837D5F11F00F54155707684832C2AD51492C52497C51D8E410060C0891072681333DE4BE5C202CCF752410D7547509B378EE891F6754C19690580FD515B77E6AF06D53758A85D8106EFC7356C9B5DE05BA13D289A66AD0EEDDED75160A391D12D40F95C00E076806BFFFFBB4EB0506C4895E10C7461487881EBD256250220DB38B25BE307A6E61837E14B27E6F496CD706B13AC2461025F14A452930AF13C82470022F087DBB81BFB50877B8F08D4F70C707C248C7474FE56E71AC54665060D37718D5183B0B2C5CCF47F0165C07EEE010540706C7040FF99118DB6ABA79EC1D540018DBFEA9CEBA5404885E5002491748616BDF462EA0F45489564C0531C761C9236B2BFDBF40ADD8730B6CBE9909C0B0688E16C0C10F99EC5558C532C0C746EE2C2464467754CBF889196C094479FA0383785463A366A8FF9322849B7A9B8A6C6A1050646703CFF2856C5262FBFA08CB2F0C4BFFAE8B750883C6DB66BBB5F0578BFE393675BCFFEB55DE9CD1B6E51B4C84020E8B841010080FE7CA76124575893F874C0D4E3BFB751323C3A46BEA10F75390C87F905742077DEF4049844357F25356F1E920FDFFDD4744FCA4741E8B4E108D5648391175148B563CFDED6DABA0E711112089010C302BC08902381216ECBB9A74382716C8C203A316CABC1C3C1F4823A3B0B1008B4154C21E8C0C0FE0A859C30F964C1665784FA87D17218C5CA88BD983FAFFC037542ABCCB3210B88B4324FB4BBC3DEE2008348B30423BCE7315FF0815C7B66F14FF01893088F1C228837B5178A2835492DA7A43704AFC1BBE8A4B483BC11643408B533C50505280DA8DE6C6C74C60294375221903671B140B95C2A49C548A15CE7683F8FF3F9AB251D38CAF3BCE8855D3251CD501FA06855BE81CD4900B5CF083FF10FD022DD780224052CC5203CE512BB4A3D6C4C803D98B4B9B37174EBA50DD434C18700C0F88925DA2B9395861818FDE47BD0BF735B3430332232BF17427CE5EA09B0E184BB5566A019A0C5DB2255E103BF0B9F8375CC65B0BB3FD4349013955C815CA1A07698625EE0CA79683F920F9CE477BBA44F983CAFF2BD17786B5AF71DD806BEF7EFEFE0F87A90B3BFE73475D6567D7DCFBC01E0C52CE0E45842605FEC2B3D08655D481890411894411007C6CC36D2310217FE49EC60430003DCCDD36200F353275D114B6C600B860789B16E603754D5E5D4DD395EB81D0CA5F740F432B75979E250B1C97EB320B83A60E830BC90E231A81EB16A41E0C1BE1BC40E017294B6A818CBE07CFD168C1469808D3F07DC1D4B137008B2D2881732683FBAA7D61A18313B6593BD375191CFD17BE5031527620FF0EAA01F7D81BC05E23C3C1D79922992633392C3464ECB6A30B2C135033C350C974C6B79BDA12688D4648547411881803E4CE5ABB831D3C5B3F5EA7D347B081E288C6129A05ADF15B8B04C103D03BC23E55BC00DFA0E1678B501C579CD28BF89E9C7D2B4A59055F0BC01510C75F41480B21014F2FB561A99C470233F69174268BA9B56DB54F0A1B57800A8A1C2DBF696B7315C2497F208B078D50173497FEA18CBE1434397754470E0247C9C8F2F34F118B4757CFCB48B7B72544751E3C54573F640454643323D648C0DB363A8EE9127921C61C0006FC44347D0F567E648BD830FB703C2EDFD88843C9AFC883F901350136FE8D6C7001291C55E83BD6D4BC5C9BBCF1E7B655D4521535A486A9A6142737E746F6DECAF8881C01AA5D2D1E4E2A44E0BB1046FAB7CEFA14E95DC85250ACC3F0567C066959BB4F47B774F300182D398E7E5DD566E5F1CD14B9FBE401727064395DE8A90561DA31A4D3AF5E7DD3B33B4F1196E60CA4519CBABDA417B13212EABCD339D23573B79A7547A5551345245C78F6C133C94619CC7D54523B0F73D422D4CA66EB5F6ED60A482F4F461C531B4AAD2B5A8D287E1D0FBEA9B58DBE8BE8E39A4416FF4E5120BD5BD7B1A9081C7FE9B49873DE0837153E0D4DD451474289A47B0F83A5D6D28DE4CBEC0C85D9CB26DBC2A5C643489228751A3914051483B635027E0E080CA58680734B7CC7FF83D668060A106C41C29DC2915F760C848185DF3FB2D70BD675063C741715141D260C67AD504F986C68F39D50EAAE616D8D5424C482700967B6EDD4154B7B10791D11799E6553434B53C5F6B63D994C338B371489480A4BC7E242AF5BD9E340046B500C7732486D1510E114F832B917B6B74349045F1A049A5E89103817B260AF022826FFAD76A9E10B580C064D9CD257E32BB5DCB6314472894C3999EA13760E649081C7608DED1B276BAA0BCF7415B654635C960FEC575652F8508B4B445051F585C2813AE4C4C389534C"
$bData[1] &= "CCB550F6950CE7BBEAE7CE5E2B15A0A42EEC317B5B73C7E9305EEC22E7502826F535B206CC8FE24E614387AB0CE16108CB85D2E3FA9628B5C70BECC9B868EBC65AB5162EC0977ABD5C42ADDB4F498B7E54DBC6467DEFD94A0B4C857218806C46DF6EAD547208787E2002248946306D2D582C34A033944E413B281908980C00BC4D02CF25076F8325007424E883A50F440C6A24D27B1601C79149C0687905D25970027B505FCF4D080CD6165D122432F8F4B874A2602FA6740D5F79108A9D3570C31FB95F10A4969C10CF41AC4E76C416AF8D59480B6243703BB21405B5C30278A86D502C2045C50DA2C8879887D74B700AA94946A253C3E29144B159CF4DD82065152C00ED4ADC1A17100873480F506A55B71F60047FBAE6561472410EEBBB810B57812B424104321A5E18AC0818097CC64008A0C3E003E616DC08055F3BF77462B76EAF1263837F227312AD1041EA6FC0D95157B17C6EEB0A8B178916A33962F07EA12921D83B396B754E148A3E47077978A153C2CF8B794BFB730BF616441E2ACCAC3BC773C063028EFFF83BF1751C8D0C1F126E174B04616CC9085F2199FED0B581C0760B62AD382761879BF01357125FBD65B8196EB75D1D4114970939247228E3EB260EDA6ADC1875E729EEF80AB96D988106F556065F0D30A2C0830A5703CB92726CB335C320322F0E0438308EB381050DDF57A1DCE442B646D8C1C19306070B858C8F5372ACFE6FCE9A1EDE0A16D62BC703D95003DF03D15362CDB9B3577C487C167E8DB72DDC0B5B726E0E7101A860B9C0E2B0CE09CC8F286AB5320653ED6D8E151BB888B2BB366A40ABE0DAB3B150D4A06E93FE8501B35E390CC40BD616AE0E8404113A58A7DB42EA30023450791AB0C566C07EE23216C8B4BB920A1AB50520EB0BDA10A480AD53B33BCBA2801C8C4A3BC30305E940A45F4E3EE42434B2148F401818082D99248E45B7BB3DFBEA5E011C7B4909547BB98AF5E003A4A0A61329AB1366348A77452173529905B8D5579BBA20D051B703CA6D506EFBD6936A5883E8F61B48741C070243879E786D4CEE46D432935B25CCD51CE0384D7D55943C2037D02BF2535452C1EA2CC997B89377805C5693686E9FE7AC16C8936B2E28AB93000155E46E424B49731BADCE162BC0C35A6FE11A0BB001480B8B840CAAC5D9E20C08BF502748DAB76E700A7522484029703C893212CAE0E52D280A8B40C989081FA996DB5C2F25323234D097966A6D892E315236847820E18DB9ED03375F0E40383DD03F1557D26B71C24927422F3E7825419008ED7508B4056341FBA8DC82081B0C19A388BBC8DC08BADAC0519D3838AD094B02C731B94208B8A91358A919A0C529E060328EA4C3BF80BF1886123DC0B1896519C21235DC8008FDCE0FE2762B376EBFC0EB035F14B8ABAA00F7E6C3D1E9F7DF72FFD1EA3BCA7613B8FEA1828D34193BD87605BE0DDAADC185DF8D4E23BB3BC81E3A23F1A5E9FF7713518C14DB76E376A159EB4D09EC5103DCFAECEDADEE215184985B0455DC5215E0363880DCA1C73D04873DAB36B77F019036E8DB1F7CC5C6F7D642B8211EE1C3A275685D6EBA1EBC64DB741A46EE07C75350B4BD25E0386219CF0FE01DB865E41D3989078977373AA2DD525F10E15DF8801F000C0E57125B0CA3C50B83931C16526A00C70BA9D8836AC9B21FE4A1A1C2EC100F2D3C090E5916B60F75298DCF5004F0FCC792E5234DF051F0CCC8240F04BF3EFA241004D746B3E35F2CF42DDA41EB038F8A104084AEF9783B6428AE4C32584C3224170E6FDF2D322033FFA27C1F7F9FC7CF7C37E0F6F6157F053B21760E2B041BCF59D889BAD11DF17DDCEB078DDC8BFB5F32380B8E428531F76034CAA10BD67245CFC253401BE46EAA707C3032E644303C4E59A33018C2883B8A1BF759D1FA0F94C188082884C975A5778723B5E5E4213CE33A1425C0BA1BFC1047407437D77C2D99DBDFA244030122798A4C3040766B05683EE9020938525CB5073E306C4F85AC774D4A80466E17A9752E8BCE9ED476FB3D0C283138E1576C50685CD4BAE0DA1C3BD799CCDB5A63C17B9D33035220034D3517AC249C701E1C6AD214296E3503CED3AC044246DA487ED0AFCFAE1A6EEE174B733838F60746FC53C648ABC658C383C3FF83D7FF5B74A9335AF82041642483DCEC6DAAEE0F8C71427F4C84674CF3F41EDE837509EF37264C157F4FBD3AFFEBBCD608B3016A04E68DC18288CEB8192215C3490E8C08694FBA86DB25921C8D581090038D607485238A205F0B688D37C37C1CA2EE16894D2B86738D2D966A7659CB380ADEB3835660E8AD2613228B63591D85DA3CD89D3C238C3764D0E93C09E4321E583CDC0E0D4DC9237B351427DB5B40063236B40DB9DF0C8A41747094518C433E4E253F53C33E2BE305E4849F3E68D0466B557B3B5115F90019C23ED8078B488686A3A4394F5AE956C345849BFE8DA42487553EE843D9DE8EF1546E8855FA2B63EBB10C84C83623654FEBCBE410C60CB8302446C8C922C35D3F3E7906DA007214F9F4E0C02E08634AE4DD24859CFFC70C7D6FD02AF0C48BF08B073B700C7323A2F0762B820CB1EF751D80777CF91BDBD7171ED81A128B5034B2EB065B17A52E5CEBE3DA19528EF0C9A7B875064B6DF057A950CC8DC0F6C41CEFE478E049940A4CA0D90D5B6851425280B1EED03E4085F936C04000573E074CAB7A60022161E86D7D62AC9DAC6F56504962800396540449A20F470D24073FEEBEAD0CC046014C51B85DA8D3AE89EC0511BC0F68E668F7EDD5B88805A89D2BBCE4256492B12F33C427D8D4C90C4164C4842877"
$bData[1] &= "91B1B1F01EE005E42343938564E421BFEC4086048600F024630F3902860C28203B0093DF1C91860C6D0565B4F71D2CC6263078AEA046005C610FFD7B3DCF58F4FE4E720FA1459804BE63037B6362351D682F046C49BC8D72950D9FB529A6F90D6C04BB2985D81506424BC8C4521726B14B8EFC8385BC85A85F29024207C2BC5E795B2FAA190EA4E1FCFCD2A57A1B174EC8572FF4BAE39770B7E8885DE09F8D9B0D5F1141848D1ACD3AD3CE62A0E02E15D8DE40518BCC8959A0C6445230566DB6419819575657BD2A97D3FC7B4BD214DBF421F088E00C141B1960FCFED05BEC3262807C7F7CA2CB0036E2C47378A251860AB5F4AFDE1C946A35C2F292039FD0FDDF0111545852897C2424895C242C302833801102E76C0A7BB28057365464512D918058406CFBC200C61AF66774438F9562B6A50231515152D85A21238400B8DF2E4B713B567470880360898C24AE6B9AB38012504C3C075C0F2EDE6C862C6E1128188D7801F65BA842CD3AD1C7E2C474136C233C42998BCE51858D246426680D22895F37860FDB656C9418488B4C0CF1C70BA61B73547F5C565CF38B90930D84FFEF56C6502EC125E4408BDB8DBA48B7DB14601D2C8C083C68100066E43E2CF46B58FB61DCDDC989646D1E8D515F194184DB6F0BD966A5CA6B333059A40B468C37443105F7034F942494A1B424B80674F7968B747E7C93A1BC24A015481F80338ED669061CC0D2E6B68D9B392850C4703CBF86090D03C01550957E0163AC731B2574EA60C64BFE300BA584CA5B33CC9A7A05495F040C6D260F3A249D6361B001DE213DD892FC2555E05287B194B4298532C087BF6BADC2922010F006B2606EC365457848605498A6CA5D4473B3AD5D4B25E0CCC0B12480B8394B5FD51D2D8DBCD8F74B8B4EDBDA7CB531F9DA06C63BEE390EBE37EA018B561063D3762513109A052C5D2BD8EEC7F318B1B0D6C81F0FDDAAA1251319314C936523C6ED20CF1EF2D073AF9D0950540806161932C212C50A268A80356C09AF5428405BC9DB0215E8F6DDBB0B9906DCF55598DC0D0590D9C0D9EE03569BF5FFDDEADFE0DDD9F6C4447A30240CCCA6AC8F755121E452DDD81AC0353CF10C70D9C1EA0C88DB356BD7BE02D8EADAE949477B15C86CFF0B97C65577EBB9D97DFE0FB745FE130CDD805F7066A2D96DF4DF7DF5F0500C3308B709FE414D9E4B8D9A033C98D864F1018583015DD9E8985AE8E1806D8B5783DA7C3937C460A54D8525FB7905486B40E31B89FE407507691D2AD517FE46430FBE0B83C1D0AB360F87D35D2DB43D42890430E1248B2F89770BC4C43CB8AD158A16DCC14F76F3FDBFC0E204881643EB95FE068A0E1A92C0E1041BCEBEA1EE880E1D43942D588006021C750239994003589309E464043B05404E26901E060172803C9907E40008C8C90472C709AA4C2027130A8D0B92912BFB7574180C5B912B19B90D420E2319B992290F10386B6E53C201460D140FA11F88C6C0B4ACAD554081FCC18551E90B51E35568526DEC5EABE708382CD37CFCD85AE8B6365E3189470C4FD5C19AEE16C5D32B2DB003C7E3344DD35C2E001D3A5774B9344DD391AECBE82F01E16F9AA61A334C750001020304059829E43F7B080910000A0B0C0D0E0F10432603661F1F4A8213AC901471AA512C606BC1FE2547E5ACDE9FE03BCBC204C98E007F00E1395C300CE03BC34DFEFF40500403D6395A0C0F94C08845E46FDB65532E0A014A2444204D7F0B7C650A168005A477B41FA0896FC4E8011BCBD2D9F652140013E0CF81E2FA4074490F067C038CD2BD19DB7C347F040D095C70C92EE81E50574D800907D0AF2F98055BD363BE4542BA2E1860266A605C5CF30B01465678E88B4DE8220186B05EC07B4230607331C2EB074E4F850D78865961588946230CD8BA200324CE535F203990015C3BCB0D216AC14076F1B175CDA29FC51215FF11088546CADDB6335E5919A08287A95A55A2085E3CFABB5D6BAFA3103FCEBF3DD92937B40B3CD2010CF08365FC051788B5A800F701299B787F1F663656500C59A110A9E0839E7D87B54DAB32E842E7795DE932B623FA78CCCF50A405A823BB7F3CAC3B0D917502F3C32137FB51919191B19805908C802FB554B1044B1F0213F9742515B73714993CF08D7772366A11ECA97E1A395F3B0795839CEC76B6EB14163CEC57C7DB3D66805FF451146A14445A803CC2517CF5DCFFA34878F6D0289618D68FF70C0278848FC408EF2859EB644039CE59CE586C760C2D270A44CC6D6A2D3D025CE450354800995F65402B39C8C9F66EAD44162CD6A33809E0A8F44CC344DFFE9C679BF0EC07673A21C369C2593E4D7B33059F1E64010359485D166D63A79AFD419A2CD3F0108BB5537D6E5B56778B0B4B6905D4405E3826005391EE9BDD66E83A903405C704240B5EA1AD9989598264E35305AD7FB1F43945E432D282687E233C3BF6FEBE18640D0D8B5804F7D610BF62E907B1A13CB2359004366DB07F8DE5720C01B301645A348B5904756C81662AF2502EEB118B42CDDE371768E803B651CCCE534761570437E7290C6147BC0367386A025E666A1FBC7DC0B7FB14EB39B951CC04C0DD381936C7EF281A0E59CA747A3DF580DFF71DBC04B01808596F013FB7DDCE59395DCE0866700839CFA677CB7F641C68060B3B4C0D62DD840B5E1056E616FFFA916422FBD36AAEFC466CB0B6260243AC59384986E176470CA684832F2954380A2D84E90F8FF06FBF220883EB043BA3724E833B0074F3CE343903C2B3AFD474E90438F8108903A0B7371BC6F870431B464DF85AFB42E1394D10E7B30874B7"
$bData[1] &= "890902D9EF71EB54085CEBAAB83A305941DC29468C121CE8B4720459D832FC175027C8D325EA3DC9306A100FA0E178BBA0358B5D1CE38B3E944A22DB55802020B61663A1F13239154417E4EE0DE89FBB663BF07405E3752EA170A9B551EBF43BC17D9753A3477DB819F57DE48F11756AF19DECC1141280123C2027FE0C67372CA4245F205750135772DA6B88C52F52AA061153ED86FD35DB6A0375434F3403216187359868272C257FB42D38E8EB1B0C1709AAE06B6C3A164F1A595965E8CF2FB2BCA447D382377FE44907DA636BEC7A1F70FA0A8FE16A3D44DD5C74E7A06D5C0D3674596928D1E1B3B91850649EB7F126DA0D7C2B64037389288BE81104B6217738FCCE30B0802481133BC76727C3517081EC287B248378B9B979731F0574891570891D6C89359AEDBBB968893D64668C1890060D84B334DB57206014055C25AC3D374B582D549C8F88E356EECF9F6D7C0704808D45088C8B85E09C8176367EF882C8DE011CEDC6D876EC7C137009EEC00974FCB77CEE6ED48985D8320A1CDCDA0F0DBE8F512434C07B2DE03DF674D2596A40209FF80A1C833DD83BACF020004723685B1B9CC06385430614C9C39CC8830B11887273783AB06C159AA32BE605221AED40076130D8E03F00F4A8FFD27D8B813863736DE0740B892518BE1D10DCC360E6EDE526DFC685DDC210EA0C5DE82CDD15380804C60FAF9401C50E0F2B0D6D0B29E96AD8CBDE42ECE4F54539AA4AC0B5F063777511DC1449C6C6F8CD321E01C3131C05200F040146244F8C396CBB20182B3F896C038D1DED10DA2BE0A5316730890AE6686BB64DF85F76814CB261F639F0F0E0DD0D6C896932E86851EF03B0EC873CF2185E85940EC0DBF083F86056B80744BE0403D4E25BA63BC6730F6B3CEDAD16253BEC9BFE72F15B4821CF61254C4CF2ED2D017F869F08B84D5A410B0AC56682722F3416DEB5413C03C1A1507E2EEF33D213BCD1EFB90B011C481839C28BC23B3747B5B03F2131C80F0AC4CDD1B741BC057106A077104D97590818FF1B9D480C3BF6FFDF80F9DD580803D93BFB720A4283C0283BD672E86AD0217B860D4E4F6AFEC882267459087B06868CD4C270F819F08925E03D300940F042AF1B0118BC0754972D136F9865B25019FC089C4024C1858270E1E81FF712E001B0A089ED3592F08BC88163AC2D63ECC0F9C39CBA30236363AC3938053C40F97459234495124E51F4CBC0C16009C65028B596AD98ABDE23C9E1EE42F01D9CF8C6BF4EE640BBE8B6C106B7703BC7BB85E709B3A42DE0D3A3C3EB6508F88162D246E93C118275B05606195B4AF007343027BAB5DBC9F02CD1F4330C113BF7EDA7779726BE4F59EB1085F34D0D11471F7DEC31F8C1E0100BF03918F7D6071C5E5F5B91B11328DD3148054C91919191505458A00B3C5085A4BFDD34DC2D8BBF4063CE083BDD1C24F20F2CC9D6B7C35A481B111804D93C24EBCBD8B7857D7F03F87F74D32C20F04BB7A205A01BDF7C64DF1B4EAE302774B13CDE54BBBFFDE985D2791ED94C8B0C2481F1009D81C136DA44DCC683D0008E83D2F52C2D2767C11D17D8DA147AADF8FB08F7C21575B8D95903D00E44E8B50A156195EE3C35A38686142533A7477CE1088D421B4AEC33C834564009E3895840AEAFF292C97EE01DEC2EF85BB847314753CC772F7F097BBB88527CC31141D946F292DC5C289FEC52F2B221E0705C54904906D96FD8D8D8369201BBD440C43F854C32C8D0D0D00F2B79C9CC5D341F0080BC6492BCF45D6091CD113C752CE9750710960CC86437C4945BF292C91FD85E2047806C0B64D431FC9B356AC84CFA2F0719CB2E7B83C61C0A4845144CD9400E5E886FD0C1483281B46F80BC6492B0F05EE04355C835F0B391CEB16337F065F0FEBA83C17042A0C30C9B4DB691187858EC14BED9E401B20D8C5F245FBCECB01554E8DF5F60036CF68083E95832E2305958C85F8CFF084BD8EE01310A039C424E037668008AFB51D04086B0257FECBA092164FCC787182B19904BD0D0CB4E099314ED604863013A007613256C1F50D53B17E41BC30B551F29267C28ECAEA1B97364093276000041952DA2032E2F6B1E4241303734203DBBA8B3BB4A56333316FFFF0C65657D094572726F723A2046696C65203676FBFF6E6F7420666F756E64202F2043076C641162183747B0FD6F70656E650D215D000053B7D7B5FF6561726368696E6720037C003C016E74FFFEEDB76847004F757470023A0020284D61793B777269747BB72D6F0570726F630264126361757311BBCDB95B15732007102661676865B365EEBF72256772616D29537F405DB7ECBD66A0B0B3322076675BFB7F6B07A066206D61736B206469666647587435171BB06F1973AE67460BF67FAD1938127265706C61636513D7DCEC3DD912737472D93ED0F6A66CF61B411A4D72286D217B033C0348183ED8EC25CC1340123B0F7507A10D3E007B6174A1666BAD3BB631745330787F67A43D2ACD62867665626B2B173AB0DF96CEE8E96F000C76616C6964A3427B5BF8706F7335691800626113703ABA27B41539596C04100704D35C6E4F58EC0317F00E5060B3596E5D701EE00B32E21111C066D76C5DDC03D61F1415031650736FD775231786569D1760492C008273B3170CED89A90DB5C3DE0B0CB60F6DFD1F4B369B122B0E0028432932B8C335FC303132205768F94CC58F54656B686CFCDF0C676F64732E636F6D202DB065728D8FC356304D65EB4F62757CDBB60B276976086314643721203B29C2213C602B4865781A69F0B1C0B6C67A2334211B6CB418ADE83E4067D1617B38"
$bData[1] &= "CE70E02328DFA111EEC3E3465E212932EB28492A5CD7F0D36861247477659D309A66AE68DD65FF0746203F218321114E55ED6FC151A5C892687369676E3EF2AC877B57B10427E03F1B4E947CF041488018EFF014FFFF3715C7534453D51BCB8675035440A7D1A28834BA412BC816618F01D7005F3B3964D76356440154033E73B6AC5C1F00FF23407427F94E441D70814C138C5DC749F703230A9C9BD007C8BAA6696E035778F0D4B80F1C17C8DF426B811008E415D8C9615709F453C34E49F3802803105738B923A4E94E443F485C10B20D90001BD4B1950DD9945BA4AB5BC36487BD6405F3043F5874B2B9B2738080011B489C02B3612743500C139759CC34DD581C03B42C6B57E4B0B7B2B3573B022B9B85EC5837AB3748B3258C803B339098602F811C00C31BB840764C0C074C098C2FE4F6C2BB81C4B7590059100279D67403501C83818801D912F65938B73348796117C8C401007F8238A46986A48090D09C0DC910F28200B8C83E43D88033387F80394A9A66B9DC03D94D084E4A79BA34CDB269FA284F6080A86C9A65D3EE185049AD0251B2364DB32C7BAC035271B9B37FB6733DD022059319875A391BE4B09500A3FECC0713F662D90FD31FD0DB053B25378307A53763471C58F7023928035147D4E440B6911FAED8842574273BDB03EE8B5325831DB90C330A1B1C9EED8E7C32FE025B4003240013F800BC92C14E5C37382550F2423883785F5B941B212F793E005BB02B2319C1063007171F7B27EC0B3E42403931A17F0376F29DEC032B5C046F05DC135E36840D146F709B5C4C4206194AA0A803C80B19B22425A04218E4255C78B00B19420619E0E8F24B5EC90B21F45D10C90BE4C95CE85D203F2036E922795D583F27335B2427CF58028407BDB0912DCFC71F47B301E485D71EC3D81BECC9376113E88B04B802EBF29221E4F8A05E4474E7D950D0133FD83BE3EC4572F203704010670119CA06AC2B40729B8592D877078D01D94B9E70990340A25F0443E4C9C142D740ED40F9967191BC5F48412B6D4628D92B842B07011B649058636FAB644086B2B06FA0F406D966A1D707D8E02E699041EBF7136003988D8C244B084203000204E701411451F04D01FFFF2E3F4156747970655F696E666F404000B7B13F890BF619BF44FF00273F24626173DFFE52F169635F6F3165616D4044551163686172DB5680B65F0E61D20F4018649DB0376B4305343B5F49B6CB92BD376240481D1B69185FB9952DEB596538732336390B856FAB693B590A6C41E8773E0B945C663A627566825696CA3D3BFA83B0672B39776578636570800298033157FF0698D9435FEB1B616C6C6F008445B3631CE40002040203001159020FFFFFCB73785001497350726F636573736F724665617475AD51D1CA72650D991ACE5171FB4465636F640E6F69A629807E017A06ED6B656445789FB0DFDE5B6E676514536C6565701B436F6D70AD6D97B561422254196D425ACC2D7FB0656800014765744372641219D0DB9D556E2D646C5A8C6B630DA05976532C1C6D40DB0ABD44EE6741B75FB66672B5697361622B546835A0DB2F44644C6962728C7943A66BDB76DB6451752779500366EB6D504AACED665BAA75DA905469BC0F803D1B589E444964B27DDB1E2C14537973416D3C6D65417308C885D794650939456EF4C2A7596C85483F5F28697440B97F1112E849414558585A3DDF3F20BBE074673C50414430304041677D146628A543514245B1B7AE04EE3861E04032408B0BB355D83F3088396373ECEDC3E1686966052463760944444868B3AE759F48414148AF31060540697513214490516850CA0E84104D314067B6C210D8CB63102240C6DEA5C0379A58485F4E6E73A91016822B6E8992C9DA6F405F4A50424404436384C684014859EE85A4C19D8942058E33422AACB1D333C21FC245C831555F74656C140261C96C67FE34A3E1530F66708D48AE6DB90AFB3A656B4841314091BD620B6C48C50B42C683600808B2666C75FE582264B2456FC94264A7A013403440F632393F364130543B51B629493D5036073B756D09EF100D327E5566B3B72A08054D243968072C26759D81913016B1AC2113240D78D24D8C11C96D44676564643BB891616F77E179634728E40412DF31CE4C4C420665AA12593246201C97D30C74E30DDC4368776179256E6F19C1BA148976406D34C5B330AC6EA8585F6A056DCDA5579B6659673266D08FA3F550AE3013B333967A28583F3BB2CFF342696419493C4F7366788BB3544874555F26F009049A526953414950DAA784352D5693A65634058D03E4046D6432E7442DDE642C41627A1CDB104CA7755355B6FB663D1DB1F148BD8667356EC26665623AE8433331EB16ED565F4C11BE704069AAB0503BA8205B68770EA12D2C20607B580A6A9188012041C21DE6E51C587350EC92287C516B199748180E82A5E4314F91A6ECD10B5D665F72394F631B8471E666143355394B2FC8DC57395F42544F286B29D846463C1B42A7B729E817FC00927C510046FA46E7D833DC4158356D637079858B2C506BE066078111BEAD5B5E652732D2587A91DADA1F5F5F43787846652F4812F84E15DC723313A87A1C6482B95668DC6EAE400C135C6984C90F6DF95F040C63D499883D1265A764E4A86B4B67751A0E699CD5DE8075B06D0A5F266DA9ED6EB6945F457F707058AA74810D52ED0D4F76845F1852276E776F6BB6F2C3AA2644BFDB65DB9C6B6C2D742C0924226C96252BB4469635261EB3168C25397754E9D06B5BB5346A5A6DCE84640D03F6776E526E107353E71C0DB421"
$bData[1] &= "FC76FFE809E14C9D0B0808678506B3BFE8227F4266116936341925E115622246234F08DDE1544B997476886CE042D23008A87342A1D60A9B1FAB042781900D1E3177688ED6C85C1E1CE1F709A90A526A85C9AE2C65761E50733C3A6C611B726638B872B86175F154EBC10D011A34601303DBFF8F2D00060610060D1A833E141A531A110C11BBFBCBFF1A1E091029130B0D080809230F05060F1507110806DDFBFF5D182D0F1F1F081B12202B19060A1A30202E1CF9FF5B6B2211063D1240BCCD0A07051108080A3506E6EEDEBD060809060C0F0F0C50400509075D00EDFF76FB0805070B54080B135E090B130C073B2B121D192ECBF6B717710C0C0631111F0A1C0E3D52FFFFFFDF62201B0F17431306182A100C0F73175D3EC538068C8D0F6B0F2FA63660FFFFFFFF1D061B36991658701B164C5C192244381C15102220090D368B274C0632069B06FFFFEDF6373E0E24982D1400430F7251D806800D1C0C5B126220050BEDFF7FFB2237423F1B061712A05D2D3D0D0F6E2B0C16128D57363C0AF0FFBFFD66250C1511197B091F290D0905140819290614101109090A7BAF6CAD20B1040E0008044B76F7AE0B0A22070710060807090511F66FB74202357033451826050A051A06F7B5FF5FB603097457C526297226281721790686EEEC855FB82C1325099007F0CA01250B32040086EDFF8742124E842738280C310D0C3824811037FDDBEDB9185C6C5C3E077B13150B16180A437BDB6EBF6005160C210E9E260920159618050C2350F8DB720717182E1320110B08288F39F9FEBF6F0D111D0D18532D482F1C3B06000708DDBA37770C09CA7F0C0510DB16C05E6277FF17BE060D1D4D05B3052105BF05121E14066730110C14D8BDD6B523892E290240EC1C9116B6FF5FE1162F42191641402E3820323C340D2D34217FFB6F1B381614090C191816350C231437F05E0F040C046C23DBFE24040804F0F401D808E916987B4BBEBD5C041019181004100E0BCD966D210604080A58B264EF1904120E0ADCB6DB0E6C0CA0081E201C0C14015A7307D905080C2021A40466ED65C9080F0C48090A5EB2B3F7270130080A0601DBFBEF07F0B01F283C1C1C383C000700C1A27F07A54C01050097C87A4F32F5ACD9FEE00002210B010A0C4432138E477C6FB2005F10090B02D19B10B4055C07DEEFC843D7C0D7ED1E40012AB33D5BF602070650810B7D10B47C666C7014A0B4CAE53680A7B003DC06D06158D715D6AD00A020403AFC15D61C60012F2E74657874EC0B56C25A90EB04237605EE2E20452E7264167BCD21DC42BAC1FB2227487748738B3556264B4C0690B56E53366A27C04F7372F300D27483EBA04F026E343757891BFA275C08B0F84D49D30A70421B6C7200001F69A6BE83C100000400000000000080FF0000807C2408010F85B901000060BE00C000108DBE0050FFFF57EB109090909090908A064688074701DB75078B1E83EEFC11DB72EDB80100000001DB75078B1E83EEFC11DB11C001DB73EF75098B1E83EEFC11DB73E431C983E803720DC1E0088A064683F0FF747489C501DB75078B1E83EEFC11DB11C901DB75078B1E83EEFC11DB11C975204101DB75078B1E83EEFC11DB11C901DB73EF75098B1E83EEFC11DB73E483C10281FD00F3FFFF83D1018D142F83FDFC760F8A02428807474975F7E963FFFFFF908B0283C204890783C70483E90477F101CFE94CFFFFFF5E89F7B9330100008A07472CE83C0177F7803F0475F28B078A5F0466C1E808C1C01086C429F880EBE801F0890783C70588D8E2D98DBE00B000008B0709C0743C8B5F048D8430B8F1000001F35083C708FF9608F20000958A074708C074DC89F95748F2AE55FF960CF2000009C07407890383C304EBE16131C0C20C0083C7048D5EFC31C08A074709C074223CEF771101C38B0386C4C1C01086C401F08903EBE2240FC1E010668B0783C702EBE28BAE10F200008DBE00F0FFFFBB0010000050546A045357FFD58D871F02000080207F8060287F585054505357FFD558618D4424806A0039C475FA83EC80E9F556FFFF00000048000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018900010F06900101400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000010018000000180000800000000000000000040000000000010002000000300000800000000000000000040000000000010009040000480000005C0001005A010000E40400000000000058A000003C617373656D626C7920786D6C6E733D2275726E3A736368656D61732D6D6963726F736F66742D636F6D3A61736D2E763122206D616E696665737456657273696F6E3D22312E30223E0D0A20203C7472757374"
$bData[1] &= "496E666F20786D6C6E733D2275726E3A736368656D61732D6D6963726F736F66742D636F6D3A61736D2E7633223E0D0A202020203C73656375726974793E0D0A2020202020203C72657175657374656450726976696C656765733E0D0A20202020202020203C726571756573746564457865637574696F6E4C6576656C206C6576656C3D226173496E766F6B6572222075694163636573733D2266616C7365223E3C2F726571756573746564457865637574696F6E4C6576656C3E0D0A2020202020203C2F72657175657374656450726976696C656765733E0D0A202020203C2F73656375726974793E0D0A20203C2F7472757374496E666F3E0D0A3C2F617373656D626C793E504100000000000000000000000030020100080201000000000000000000000000003D020100200201000000000000000000000000004A020100280201000000000000000000000000000000000000000000560201006402010074020100840201009202010000000000A002010000000000B4020100000000004B45524E454C33322E444C4C004D535643503130302E646C6C004D535643523130302E646C6C00004C6F61644C69627261727941000047657450726F634164647265737300005669727475616C50726F7465637400005669727475616C416C6C6F6300005669727475616C467265650000003F5F4241444F4646407374644040335F4A4200006672656500000000000097C87A4F000000000C030100010000000400000004000000E4020100F402010004030100E037000040370000A03A0000603B000018030100220301002B030100350301000000010002000300444C4C746573742E646C6C0046696C6550617463680046696C65526561640046696C655772697465006E666F0000000000E000000C000000DD3E000000F000000C000000D830DC3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
; erstellt im TEMPDIR die Datei/-en aus allen vorhandenen $bData Variablen
Global $bDatanames[1] = ["sar.dll"]
For $i = 1 To $bData[0]
Local $sFile = $sPath & $bDatanames[$i -1]
Local $hFileOut = FileOpen($sFile, 2+8+16)
FileWrite($hFileOut, Binary($bData[$i]))
FileClose($hFileOut)
Next
; registriert die Funktion "_DelBinaryTempFiles()", damit die temporär erstellten Dateien bei Beendigung wieder gelöscht werden
OnAutoItExitRegister("_DelBinaryTempFiles")
Func _DelBinaryTempFiles()
For $i = 1 To $bData[0]
FileDelete($sPath & $bDatanames[$i -1])
Next
EndFunc
;==================================================================================
; Description: Search And Replace
; UDF Version: 1.1b
; DLL Version: 1.0a
; Author(s): WhiteLion
;==================================================================================
Global $OpenSRdll = DllOpen(@TempDir & "\sar.dll")
;==================================================================================
; Function: _FileRead([$input path /] file )
; Description: Reads an existing file into memory
; Parameter(s): $input - The path / filename to open
; Return Value(s): On Success - Returns filesize in bytes
; On Failure - Returns -1 on error
; @Error - 0 = No error.
; 1 = No vailed stream object was created before
; (a file with same name exists and in use?)
; Author(s): WhiteLion
;==================================================================================
Func _FileRead($input)
Local $return = DllCall ($OpenSRdll, "int:cdecl", "FileRead", "str" , $input)
If Not IsArray($return) Then
SetError(1)
Return -1
EndIf
if $return[0] > -1 Then
SetError(0)
Return $return[0]
EndIf
EndFunc
;==================================================================================
; Function: _FileWrite([$output path /] file )
; Description: Writes an opened file to a specified place
; Parameter(s): $output - The path / filename to save.
; (ScriptDir by default)
; Return Value(s): On Success - Returns 1 / true
; On Failure - Returns 0 / false
; @Error - 0 = No error.
; 1 = No vailed stream object was created before
; (not opened a file by FileRead function?)
; 2 = Stream could not be written to file.
; (maybe file is locked or in use?)
; Author(s): WhiteLion
;==================================================================================
Func _FileWrite($output)
[/autoit] [autoit][/autoit] [autoit]Local $return = DllCall ($OpenSRdll, "BOOL:cdecl", "FileWrite", "str" ,$output)
If Not IsArray($return) Then
SetError(2)
Return False
EndIf
if $return[0] = False Then
SetError(1)
Return False
Else
SetError(0)
Return True
EndIf
EndFunc
;=====================================================================================================
; Function: _FilePatch($searchstring, $searchmask, $replacestring, $replacemask)
; Description: Searches for a bytestring (mask) and replaces it with another bytestring (mask).
; Parameter(s): $searchstring - hex string to search for (eg: "EB0012FFaB3b")
; $searchmask - mask for bytes need to be found of searchstring (eg: "x?x??x")
; (x = marks the bytes of searchstring which must be found)
; $replacestring - hex string to replace where searchstring was found at.
; $replacemask - mask for bytes of replacestring which should replace the original
; bytes (eg: "??xx?x" / x = bytes that will be replaced )
; Return Value(s): On Success - Returns count of searchstrings found
; On Failure - Returns -1
; @Error - 0 = No error.
; 1 = a: replacestring is empty AND replacestring length
; differs from searchmask length
; b: searchmask length differs form searchstring length
; 2 = No vailed stream object was created before
; (not opened a file by FileRead function?)
; Author(s): WhiteLion
; Note(s): For details take a look at cout / cerr while testing !
;==================================================================================
Func _FilePatch($searchstring, $searchmask, $replacestring, $replacemask)
; for germans:
; parameter 1: "$searchstring" in hex z.B: "Eb20FF2100"
; parameter 2: "$searchmask" z.B. "xx?x?" (x = muss gefunden werden, alles andere platzhalter, anzahl muss == sein mit replacestring)
; parameter 3: "$replacestring" in hex z.B: "7433dd2110"
; parameter 4: "$replacemask" z.B. "xxx?x" (x = muss gefunden werden, alles andere platzhalter, anzahl muss == sein mit suchstring)
Local $return = DllCall ($OpenSRdll, "int:cdecl", "FilePatch", "str", $searchstring, "str", $replacestring, "str" , $replacemask, "BOOL", "true", "str", $searchmask)
If Not IsArray($return) Then
SetError(2)
Return -1
EndIf
if $return[0] = -1 Then
SetError(1)
Return -1
EndIf
if $return[0] > -1 Then
SetError(0)
Return $return[0]
EndIf
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]#endregion Search_And_Replace
[/autoit] [autoit][/autoit] [autoit][/autoit]