Advertisement
aveyo

DmpChk

Jun 21st, 2017
1,157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 6.43 KB | None | 0 0
  1. goto="init" /* " DmpChk by AveYo v1.1b "                                                          
  2. ::  Ultra-fast, tiny .dmp .mdmp file checker - great to quickly preview game crash dumps without symbols that are slow with WinDBG
  3. ::  Simplifies usage after first run: right-click a dump file -> Send to -> DmpChk -> result saved to file and opened with notepad
  4. :"init"  
  5. @echo off &setlocal &mode 80,8 &color 70 &title DmpChk by AveYo v1.1b  
  6. if not exist "%APPDATA%\AveYo\DmpChk.dll" call :install &if not exist "%APPDATA%\Microsoft\Windows\SendTo\%~nx0" call :install
  7. if exist "%~1" (if "%~x1"==".dmp" (set "dmp=%~1") else if "%~x1"==".mdmp" (set "dmp=%~1"))
  8. :: powershell openfiledialog snippet                                                             changes: ps dialog instead of mshta
  9. set "o=$directory='%USERPROFILE%\Desktop'; $filter='(*.dmp, *.mdmp)|*.dmp;*.mdmp';"
  10. set "f=[void][System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms"); $ofd=New-Object System.Windows.Forms"  
  11. set "d=.OpenFileDialog; $ofd.filter=$filter; $ofd.initialDirectory=$directory; [void]$ofd.ShowDialog(); $ofd.filename"
  12. set "ps_openfiledialog=%o:"=\"%%f:"=\"%%d:"=\"%"
  13. if not defined dmp for /f %%a in ('powershell -c "%ps_openfiledialog%"') do set "dmp=%%a"                                                                                                                                                                                                                              
  14. if not exist "%dmp%" goto :eof
  15. :: load dump file                                                                            changes: notepad fixed size font toggle
  16. if /i "%processor_architecture%%processor_architew6432%"=="x86" (set "W=") else set "W=%%windir%%\SysWoW64\"
  17. call "%W%cmd.exe" /c rundll32.exe "%APPDATA%\AveYo\DmpChk.dll",GetFile %dmp%|more>"%dmp%.txt"
  18. call :reg_query HKCU\Software\Microsoft\Notepad lfFaceName notepadfont
  19. if exist "%dmp%.txt" ( reg add HKCU\Software\Microsoft\Notepad /v lfFaceName /t REG_SZ /d "FixedSys" /f 1>nul 2>nul
  20. start "" notepad "%dmp%.txt" & timeout /t 3 >nul 2>nul
  21. reg add HKCU\Software\Microsoft\Notepad /v lfFaceName /t REG_SZ /d "%notepadfont%" /f 1>nul 2>nul )
  22. endlocal & goto :eof
  23. :reg_query %1:KeyName %2:ValueName %3:OutputVariable
  24. setlocal &for /f "skip=2 delims=" %%s in ('reg query "%~1" /v "%~2" /z 2^>nul') do set "rq=%%s" &call set "rv=%%rq:*)    =%%"
  25. endlocal &call set "%~3=%rv%" & goto :eof
  26. :install
  27. set "res=DmpChk.dl_" &set "DmpChk=%APPDATA%\AveYo\DmpChk.dll" &md "%APPDATA%\AveYo\" >nul 2>nul &pushd "%APPDATA%\AveYo\"
  28. copy /y "%~f0" "%APPDATA%\AveYo\" >nul 2>nul &copy /y "%~f0" "%APPDATA%\Microsoft\Windows\SendTo\" >nul 2>nul
  29. if not exist "%DmpChk%" cscript.exe //nologo //e:JScript "%~f0" &expand -R "%res%" >nul 2>nul &del /f /q "%res%"
  30. if not exist "%DmpChk%" color cf &echo ERROR! DmpChk not installed &timeout /t 10 &color &endlocal &exit
  31. goto :eof
  32. :: batch binary resource attached with RES2BATCH v2.0b - compact, highlight friendly, optimized ascii encoder
  33. :res85_decoder */
  34. var fn="DmpChk.dl_", res="\
  35. ::O}bZg000008wdaZ00000EC2ui000000!5a50RR9100000M=si{0RRC201^NI00000006#D+xIDAL~U)GXlpKHY{!7+|`=^)2LKX7OYIk1P.f3vth9izCA*ABb#ITJS\
  36. ::PCvN3evLJ}75g.FeG3D?ooN;AkbQm2uTquid#l=[V]g.jP113rZbsLJg_bjGHuCBK8TZGnKX4gV$uV%N-V5z%.^SigPX^]*ncHap1ZrUNpK_jX?`v,opaCo|}h=~,8\
  37. ::PJMW1s~98bOi_ra*^]%`A)|LP6(20_c!}qIsHXxoGYThK5Y(L*bc{4Vngg_P-IC%4B4gGHMD;O!G3D_%qZc|YE|f7Bxm$tnklI795z.?i?Y{OgG`v{YYY^W?d=[yof\
  38. ::u7Z%9kgaAszYj2C8lW-D`S-nY{G5F~N3Ikve0S!`PAr(E}~{Wv0ADjz*x3SfJ6C3XygNoE[D+-S;JB!#E^5(P4Diie2WnIkid}{X=,IadLY0Zl~?n~AUr}1YF*B4VL\
  39. ::Oi5i%s#=9X7X]uOhpQvpDKO?LhX$Y-pPJPLX8cwy_]JyFcq`OZJx.OHcza|+9EisfB0Cf-ks,IbnJEtwdM$8o-I-?LZ;o4k8%cPT8)LXHFah[{5YxFk]zeD-C}S|(g\
  40. ::MT{7V_LI++x!hhSU5hY!duJSX?ZM$mz3;RvW$G.G%B-[HvaMr`Rd~1?8*5=LIxw]fW#b[jRX,xq+meGLMm}^8zwg}V9{`SI5BP=4?)HeoDdivB8(`(MjOEllwz1.Wz\
  41. ::%J.Hqd3MsVmDDao4Dfg,9(hC%ZM%oR.fz`.j?d!.U!GV%R-gVMVW0wzt2*$}e!0$Z#AW!Q9V`9Qx;VleXnBMw$[3^vaSOo]JjRmR[)XS==n-=P`CnvSoiw=#,yY}9J\
  42. ::y=gQupGirej61Pd^U4|7$U(Tzd`%t^f54me0p-;jsJ0LV4by)K*Nc-sH9tI#dzEX.Zd]E(xPT0o(zXJ[[8Gvt#bH?K?1!y)*NsDy^W.=9w8TiJ-n8qeoy-?1N_(cw8\
  43. ::ROFW-CG*smr[+2E}Pt!R+AlWZ~9V7wvtlr8S(R!BzW]d2zskS0pICL*|32d`|(*+I}hVc_l*,Gu_RGo.%JBqNQd=JNutQ}C5HeiL8R;sdLcgtMYlChCyrBE+XgA4_*\
  44. ::p)2SgkE)$u.HQp]?p1s_U$70%*)|NE}X,Y%Dp4m{eKXc=wsePx!8!{]U)9alvy=H+9-,XeV;4N7vfAIDR3^4lXr29e`3HJ-P6Kp!khMXVW^3WNi]6[A3.w?XI.|,+!\
  45. ::8qU?c=!Ju+l.DuLQnw^w=#%-nt~aBVB-lbXQLE5mq1p6CO315sj*Lr|HfESDk9e-}TL!-PFig7V|oYr`a~`N__IFZ2MCG1}KAqI2{j~k5t9YJOu=;izB=8|9x}E|f6\
  46. ::ee$*QgM1AogF1LYN0%$z1ZmIX?LwqpdINs;*lPv9k2LhYD*]0zSyWEhV8o47;j83?iu*=wno-20i=nols#Kt|Jj[^nCq3]bUj`S]MAo3iDl~6,OGnwDe}5Mk8yIuZ%\
  47. ::{P51WQoeCauKj6+G`aM^K{YsSX3An_t[VhBe`sazeq+Xcwk16CI^w62yyvQ8T}aZ6_7E_%_H!g9XrsDX_}lI4D_GoGz|,7-`=[YYPT2,N*fCkR|^BkrG4{0!pS52Dr\
  48. ::K,2U0)HTJ+_hAj)JH6#fq{)8Zdd^z~l~50e?#Bu?aK{n7OE[8uX~;c7sq,Rp?o(FvpGA|nq3ESaUqJTfzXlca8xsfL(jWPc^KvjA7!h|DM64qh!io?NDgF.!JU_39S\
  49. ::;BmEkh^c}!W;RGATJ7QdCCdg1Cqcyi]Va#J[Wc*{,mDdoxbTr3gCJU3EY^76Y])Q`c=^#fWJC#R%3kp9-P,f3cpDaOE|5FOkp{#FUhe!.T(FpC|3Xz}`-?5mKI1G`J\
  50. ::eAEO{utJh)H6e{R.5[SgvA+JahP|$TgQ?(C43gD^|~`h7##^H$274FD9IKYz*ArGRXuw4d}D?Y66L!3V2l?~f]8r*Grl#)%}1T(yzNkOK[GDrn.??T(7lcHpKPm7{^\
  51. ::.Dh}U5Svu6FEGt)c*$Kp_sXbOT{5Fp-*$x.H;5hNbpf1D!`MBD}kue$rRV~d!U##q8LEn696)*4])}f^;L;n9qty^p]7xDJ#{mQQtG$_Ac;Y;VPuu^eR]R_06.,bD5\
  52. ::+7=s;Jcj[BCLDeW56=+BEq}!3O)2JFYn2di~+ut%NR3!L]#GxAJQIocpF|#p)(N,3p~~km^IFaF72Rfx)d)*PY)]v3ElUQq8avb!Bx3eIwGOy|eP.po~K}8u4zU*zH\
  53. ::?E%D8av2Lwn?2;{)cXd.FIkCCIW4$QgFl5MJ(8lhIk|vMMubr%GjWA8}szz`jV^d?v]HUxmJuzZo73t[Qb[niJ{)p]Eq45Fj~g76f2$q5fB9IE8M.`*PpfDdI2]n}q\
  54. ::ga+ba#lYg#-7+E$?oUcpH=Ne7^d-~yFBLBp7qSlAfA]LZ6mPbB4Mc(ye.`^_a]YTz8kJ![Nh[_-PYyZf8+n4Ujb%5=99WOin[hbRSX8=v(u*6}StKY8vpt%9P.x{.`\
  55. ::xK3^l=T+68D3!0,xfFMpJI]kro.I~OPIG6tbKFJl5%g;K[G,c{aCtQaH6]CVA5=XX4)k;C$`TJ\
  56. ".replace(/[\\:\s]/gm,""); r85='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz?.,;-_+=|{}[]()*^%$#!`~'.split('');
  57. d85={}; for(var i=85;i--;) d85[r85[i]]=i; p85=[]; for(var i=5;i--;) p85[i]=Math.pow(85,i);
  58. z='00000000'; pad=(res.length%5)||5; res+='~~~~~'.slice(pad); pad=10-2*pad; a=res.match(/.{1,5}/g);
  59. for(var l=a.length;l--;){n=0;for(j=5;j--;)n+=d85[a[l].charAt(j)]*p85[4-j];a[l]=z.slice(n.toString(16).length)+n.toString(16)};
  60. res85dec=(pad>0)?a.join('').slice(0,-pad):a.join('');WScript.echo(' RES2BATCH: extracting '+fn);
  61. xe=new ActiveXObject('Microsoft.XMLDOM').createElement('bh');as=new ActiveXObject('ADODB.Stream');as.Mode=3;as.Type=1;as.Open();
  62. xe.dataType='bin.hex';xe.text=res85dec;as.Write(xe.nodeTypedValue);as.SaveToFile(fn,2);as.Close();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement