diff --git a/go.mod b/go.mod index 02b81d1e..2800111c 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/ddkwork/hyperdbgui go 1.22.4 require ( - github.com/ddkwork/app v0.0.0-20240628082811-22a7326e81d0 + github.com/ddkwork/app v0.0.0-20240628084736-48b15c010f0e github.com/ddkwork/golibrary v0.0.85 github.com/richardwilkes/unison v0.71.0 github.com/saferwall/pe v1.5.3 diff --git a/go.sum b/go.sum index ae8f393c..2d5c573b 100644 --- a/go.sum +++ b/go.sum @@ -1,31 +1,41 @@ github.com/PuerkitoBio/goquery v1.6.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= +github.com/alecthomas/assert/v2 v2.7.0 h1:QtqSACNS3tF7oasA8CU6A6sXZSBDqnm7RfpLl9bZqbE= +github.com/alecthomas/assert/v2 v2.7.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= +github.com/alecthomas/chroma/v2 v2.14.0 h1:R3+wzpnUArGcQz7fCETQBzO5n9IMNi13iIs46aU4V9E= github.com/alecthomas/chroma/v2 v2.14.0/go.mod h1:QolEbTfmUHIMVpBqxeDnNBj2uoeI4EbYP4i6n68SG4I= +github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc= +github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= +github.com/aquasecurity/table v1.8.0 h1:9ntpSwrUfjrM6/YviArlx/ZBGd6ix8W+MtojQcM7tv0= github.com/aquasecurity/table v1.8.0/go.mod h1:eqOmvjjB7AhXFgFqpJUEE/ietg7RrMSJZXyTN8E/wZw= +github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 h1:OYA+5W64v3OgClL+IrOD63t4i/RW7RqrAVl9LTZ9UqQ= github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394/go.mod h1:Q8n74mJTIgjX4RBBcHnJ05h//6/k6foqmgE45jTQtxg= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/dave/dst v0.27.3 h1:P1HPoMza3cMEquVf9kKy8yXsFirry4zEnWOdYPOoIzY= github.com/dave/dst v0.27.3/go.mod h1:jHh6EOibnHgcUW3WjKHisiooEkYwqpHLBSX1iOBhEyc= +github.com/dave/jennifer v1.5.0 h1:HmgPN93bVDpkQyYbqhCHj5QlgvUkvEOzMyEvKLgCRrg= +github.com/dave/jennifer v1.5.0/go.mod h1:4MnyiFIlZS3l5tSDn8VnzE6ffAhYBMB2SZntBsZGUok= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/daviddengcn/go-colortext v1.0.0/go.mod h1:zDqEI5NVUop5QPpVJUxE9UO10hRnmkD5G4Pmri9+m4c= github.com/dc0d/caseconv v0.5.0 h1:z3Ki2zszD03beetWyNAGa3NOAbnDJk+bX0tvcx9BKjQ= github.com/dc0d/caseconv v0.5.0/go.mod h1:/CrBBNtMoPTPf0INHrwyyhDrDjAJ9PFE+WuxSJHU0ZE= -github.com/ddkwork/app v0.0.0-20240627181536-d70aa73bd6d0 h1:1tkkVE+xo4uqSl/aDqgzhl745PGtRLTr9bpLlca+PhY= -github.com/ddkwork/app v0.0.0-20240627181536-d70aa73bd6d0/go.mod h1:Mi0a78DdcE5Yi/7yfSNLJPB3Ip1AEzXbXJIYf3n7BZU= -github.com/ddkwork/app v0.0.0-20240627183451-6caa28a8a1fd h1:RICeMupxAZtRPGr41L+KIjy1mDMc018U3mDAjXjIcVA= -github.com/ddkwork/app v0.0.0-20240627183451-6caa28a8a1fd/go.mod h1:LQKOizN6zWjwp+vvQNVGoVZ/2ad2bAwkB88UVY/drGc= -github.com/ddkwork/app v0.0.0-20240628082811-22a7326e81d0 h1:hspLM1yMJklc3LNimI71yiTV0xNRcJ+vdIAtLAXnMZY= -github.com/ddkwork/app v0.0.0-20240628082811-22a7326e81d0/go.mod h1:LQKOizN6zWjwp+vvQNVGoVZ/2ad2bAwkB88UVY/drGc= -github.com/ddkwork/golibrary v0.0.84-0.20240627173943-eddb080cb496 h1:dQMoale9N6LVy20B0ACxeqruZHXjPwdldgisdCjyK34= -github.com/ddkwork/golibrary v0.0.84-0.20240627173943-eddb080cb496/go.mod h1:GlLX0w5HQ9dhHS5hhwcOJNSoLUO8ud4WnrbKa41MmcE= +github.com/ddkwork/app v0.0.0-20240628084736-48b15c010f0e h1:2vD2vlK2c3jdX1xmAVAWf7hYxFyMJ+sWMKr95m6tJLw= +github.com/ddkwork/app v0.0.0-20240628084736-48b15c010f0e/go.mod h1:LQKOizN6zWjwp+vvQNVGoVZ/2ad2bAwkB88UVY/drGc= github.com/ddkwork/golibrary v0.0.85 h1:JyR3G/8Om6B7LpCyBjSryFxhspNjCsZyBc+AJbS4hww= github.com/ddkwork/golibrary v0.0.85/go.mod h1:GlLX0w5HQ9dhHS5hhwcOJNSoLUO8ud4WnrbKa41MmcE= +github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI= github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/ebitengine/purego v0.7.1 h1:6/55d26lG3o9VCZX8lping+bZcmShseiqlh2bnUDiPA= github.com/ebitengine/purego v0.7.1/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ= +github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71 h1:5BVwOaUSBTlVZowGO6VZGw2H/zl9nrd3eCZfYV+NfQA= github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71/go.mod h1:9YTyiznxEY1fVinfM7RvRcjRHbw2xLBJ3AAGIT0I4Nw= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20240506104042-037f3cc74f2a h1:vxnBhFDDT+xzxf1jTJKMKZw3H0swfWk9RpWbBbDK5+0= @@ -38,16 +48,24 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= +github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/hillu/go-archive-zip-crypto v0.0.0-20200712202847-bd5cf365dd44/go.mod h1:xUc/S/HgVuP6lhDvD0Wqtu/Npwx93VSXzbdyEDbqBb8= github.com/hillu/go-ntdll v0.0.0-20211011155505-c466bba4706f/go.mod h1:jsDwCq+VLI6qnVqFRAlfOC14FULjT1lt99vnszAZ6/Q= github.com/hillu/go-yara/v4 v4.1.0/go.mod h1:rkb/gSAoO8qcmj+pv6fDZN4tOa3N7R+qqGlEkzT4iys= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -55,6 +73,7 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ github.com/pkg/term v1.2.0-beta.2 h1:L3y/h2jkuBVFdWiJvNfYfKmzcCnILw7mJWm2JQuMppw= github.com/pkg/term v1.2.0-beta.2/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/richardwilkes/json v0.2.0 h1:ddwSjl9tc89Nv1mI3P7UnCJow8c6hq/l6TLoPlwdyLQ= github.com/richardwilkes/json v0.2.0/go.mod h1:QgGoe60liiLHPD/FkIApP5LMuReHWMN6TaMJf2GT6n8= @@ -65,23 +84,36 @@ github.com/richardwilkes/unison v0.71.0/go.mod h1:eoFd38C5I7QrXwFCslJtDLrVSuwmDM github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/saferwall/pe v1.5.3 h1:tZ2KJWeJK6N2jjJx+B9hm+wq6qe0o56pql2PXUaQ9eI= github.com/saferwall/pe v1.5.3/go.mod h1:mJx+PuptmNpoPFBNhWs/uDMFL/kTHVZIkg0d4OUJFbQ= +github.com/secDre4mer/pkcs7 v0.0.0-20240322103146-665324a4461d h1:RQqyEogx5J6wPdoxqL132b100j8KjcVHO1c0KLRoIhc= github.com/secDre4mer/pkcs7 v0.0.0-20240322103146-665324a4461d/go.mod h1:PegD7EVqlN88z7TpCqH92hHP+GBpfomGCCnw1PFtNOA= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/spf13/afero v1.5.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spyre-project/spyre v1.2.5 h1:ewUk91QoTFZZqRcVsB0IwLHBf6uJ02N9ZhwtjRKvQOs= github.com/spyre-project/spyre v1.2.5/go.mod h1:aVhqhnDe/4yzlxN905LRaAVIPRUI19FtwQOq2kbG2EE= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ= github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= +github.com/winlabs/gowin32 v0.0.0-20221003142512-0d265587d3c9 h1:U8aCPFEMnxAEyj9IonhMVV1gSL4nzelh8uvoXp0hrq0= github.com/winlabs/gowin32 v0.0.0-20221003142512-0d265587d3c9/go.mod h1:N51TYkG9JGR5sytj0EoPl31Xg2kuB507lxEmrwSNvfQ= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yuin/goldmark v1.7.2 h1:NjGd7lO7zrUn/A7eKwn5PEOt4ONYGqpxSEeZuduvgxc= github.com/yuin/goldmark v1.7.2/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E= github.com/zzl/go-win32api/v2 v2.2.0 h1:vLVc9ATxK1wY4qcT4XhahieFfgI1AngkCzsQXuDVlew= github.com/zzl/go-win32api/v2 v2.2.0/go.mod h1:doi6ewHPdh9tDmqe837Ro7IwqtB9yE+1fC8suK/Ssj0= +golang.org/x/arch v0.8.0 h1:3wRIsP3pM4yUptoR96otTUOXI367OS0+c9eeRi9doIc= golang.org/x/arch v0.8.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -102,6 +134,7 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -119,6 +152,7 @@ golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -134,6 +168,8 @@ golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/handle_test.go b/handle_test.go index 79b313e0..bbd0a03b 100644 --- a/handle_test.go +++ b/handle_test.go @@ -15,6 +15,9 @@ import ( func TestName(t *testing.T) { path := "D:\\workspace\\workspace\\gui\\BITMAP\\MODULES.bmp" + if !stream.IsFilePath(path) { + return + } // path="bmp/WINDOWS.bmp" decode, s := mylog.Check3(image.Decode(stream.NewBuffer(path))) println(s) diff --git a/hyperdbg-cli.exe b/hyperdbg-cli.exe index 85a0129d..fab90e1f 100644 Binary files a/hyperdbg-cli.exe and b/hyperdbg-cli.exe differ diff --git a/hyperhv.dll b/hyperhv.dll index fc24bc06..03e3273b 100644 Binary files a/hyperhv.dll and b/hyperhv.dll differ diff --git a/hyperkd.sys b/hyperkd.sys index 7f1c6d4a..18f01265 100644 Binary files a/hyperkd.sys and b/hyperkd.sys differ diff --git a/hyperlog.dll b/hyperlog.dll index 59ab6f69..748604e0 100644 Binary files a/hyperlog.dll and b/hyperlog.dll differ diff --git a/kdserial.dll b/kdserial.dll index c1f85a24..117da774 100644 Binary files a/kdserial.dll and b/kdserial.dll differ diff --git a/libhyperdbg.go b/libhyperdbg.go index 516fcfbd..63d884ec 100644 --- a/libhyperdbg.go +++ b/libhyperdbg.go @@ -648,12 +648,12 @@ type ScriptEngineVariablesList struct { LocalVariablesList *Uint64 } type Cr3Type struct { - Anon268_5 + Anon196_5 } -type Anon268_5 struct { +type Anon196_5 struct { Raw [1]int64 } -type Anon272_9 struct { +type Anon200_9 struct { Pcid Uint64 PageFrameNumber Uint64 Reserved1 Uint64 @@ -745,10 +745,10 @@ type EptSingleHookUnhookingDetails struct { PhysicalAddress SizeT OriginalEntry Uint64 } -type Anon1569_9 struct { +type Anon1497_9 struct { Raw [1]int32 } -type Anon1571_5 struct { +type Anon1499_5 struct { // [Bits 3:0] Segment type. Type Uint32 // [Bit 4] S - Descriptor type (0 = system; 1 = code or data). @@ -1538,13 +1538,14 @@ func init() { __imp_hyperdbg_u_script_read_file_and_execute_commandline = GengoLibrary.ImportNow("hyperdbg_u_script_read_file_and_execute_commandline") __imp_hyperdbg_u_continue_previous_command = GengoLibrary.ImportNow("hyperdbg_u_continue_previous_command") __imp_hyperdbg_u_check_multiline_command = GengoLibrary.ImportNow("hyperdbg_u_check_multiline_command") + __imp_hyperdbg_u_set_custom_driver_path = GengoLibrary.ImportNow("hyperdbg_u_set_custom_driver_path") + __imp_hyperdbg_u_use_default_driver_path = GengoLibrary.ImportNow("hyperdbg_u_use_default_driver_path") __imp_hyperdbg_u_connect_local_debugger = GengoLibrary.ImportNow("hyperdbg_u_connect_local_debugger") __imp_hyperdbg_u_connect_remote_debugger = GengoLibrary.ImportNow("hyperdbg_u_connect_remote_debugger") - return __imp_hyperdbg_u_continue_debuggee = GengoLibrary.ImportNow("hyperdbg_u_continue_debuggee") __imp_hyperdbg_u_pause_debuggee = GengoLibrary.ImportNow("hyperdbg_u_pause_debuggee") __imp_hyperdbg_u_set_breakpoint = GengoLibrary.ImportNow("hyperdbg_u_set_breakpoint") - + return __imp_ScriptEngineParse = GengoLibrary.ImportNow("ScriptEngineParse") __imp_PrintSymbolBuffer = GengoLibrary.ImportNow("PrintSymbolBuffer") __imp_PrintSymbol = GengoLibrary.ImportNow("PrintSymbol") @@ -1586,8 +1587,8 @@ func init() { bindlib.Validate((*GuestExtraRegisters)(nil), 0x20, 0x8, "Cs", 0x0, "Ds", 0x2, "Fs", 0x4, "Gs", 0x6, "Es", 0x8, "Ss", 0xa, "Rflags", 0x10, "Rip", 0x18) bindlib.Validate((*ScriptEngineVariablesList)(nil), 0x18, 0x8, "TempList", 0x0, "GlobalVariablesList", 0x8, "LocalVariablesList", 0x10) bindlib.Validate((*Cr3Type)(nil), 0x8, 0x8) - bindlib.Validate((*Anon268_5)(nil), 0x8, 0x8) - bindlib.Validate((*Anon272_9)(nil), 0x8, 0x8, "Pcid", 0xc, "PageFrameNumber", 0x30, "Reserved1", 0x3c, "Reserved_2", 0x3f, "PcidInvalidate", 0x40) + bindlib.Validate((*Anon196_5)(nil), 0x8, 0x8) + bindlib.Validate((*Anon200_9)(nil), 0x8, 0x8, "Pcid", 0xc, "PageFrameNumber", 0x30, "Reserved1", 0x3c, "Reserved_2", 0x3f, "PcidInvalidate", 0x40) bindlib.Validate((*DebuggerRemotePacket)(nil), 0x18, 0x8, "Checksum", 0x0, "Indicator", 0x8, "TypeOfThePacket", 0x10, "RequestedActionOfThePacket", 0x14) bindlib.Validate((*DebuggeeUserInputPacket)(nil), 0xc, 0x4, "CommandLen", 0x0, "IgnoreFinishedSignal", 0x4, "Result", 0x8) bindlib.Validate((*DebuggeeEventAndActionHeaderForRemotePacket)(nil), 0x4, 0x4, "Length", 0x0) @@ -1602,8 +1603,8 @@ func init() { bindlib.Validate((*EptHooksAddressDetailsForMemoryMonitor)(nil), 0x20, 0x8, "StartAddress", 0x0, "EndAddress", 0x8, "SetHookForRead", 0x10, "SetHookForWrite", 0x11, "SetHookForExec", 0x12, "MemoryType", 0x14, "Tag", 0x18) bindlib.Validate((*EptHooksAddressDetailsForEpthook2)(nil), 0x10, 0x8, "TargetAddress", 0x0, "HookFunction", 0x8) bindlib.Validate((*EptSingleHookUnhookingDetails)(nil), 0x18, 0x8, "CallerNeedsToRestoreEntryAndInvalidateEpt", 0x0, "RemoveBreakpointInterception", 0x1, "PhysicalAddress", 0x8, "OriginalEntry", 0x10) - bindlib.Validate((*Anon1569_9)(nil), 0x4, 0x4) - bindlib.Validate((*Anon1571_5)(nil), 0x4, 0x4, "Type", 0x4, "DescriptorType", 0x5, "DescriptorPrivilegeLevel", 0x7, "Present", 0x8, "Reserved1", 0xc, "AvailableBit", 0xd, "LongMode", 0xe, "DefaultBig", 0xf, "Granularity", 0x10, "Unusable", 0x11, "Reserved2", 0x20) + bindlib.Validate((*Anon1497_9)(nil), 0x4, 0x4) + bindlib.Validate((*Anon1499_5)(nil), 0x4, 0x4, "Type", 0x4, "DescriptorType", 0x5, "DescriptorPrivilegeLevel", 0x7, "Present", 0x8, "Reserved1", 0xc, "AvailableBit", 0xd, "LongMode", 0xe, "DefaultBig", 0xf, "Granularity", 0x10, "Unusable", 0x11, "Reserved2", 0x20) bindlib.Validate((*VmxSegmentSelector)(nil), 0x18, 0x8, "Selector", 0x0, "Attributes", 0x4, "Limit", 0x8, "Base", 0x10) bindlib.Validate((*DebuggerModifyEvents)(nil), 0x18, 0x8, "Tag", 0x0, "KernelStatus", 0x8, "TypeOfAction", 0x10, "IsEnabled", 0x14) bindlib.Validate((*DebuggerShortCircuitingEvent)(nil), 0x10, 0x8, "KernelStatus", 0x0, "IsShortCircuiting", 0x8) @@ -1750,6 +1751,17 @@ func CheckMultilineCommand(current_command *Char, reset Boolean) Boolean { return bindlib.UnmarshallSyscall[Boolean](__res) } +var __imp_hyperdbg_u_set_custom_driver_path bindlib.PreloadProc + +func SetCustomDriverPath(DriverPath *Char) Boolean { + __res := bindlib.CCall1(__imp_hyperdbg_u_set_custom_driver_path.Addr(), bindlib.MarshallSyscall(DriverPath)) + return bindlib.UnmarshallSyscall[Boolean](__res) +} + +var __imp_hyperdbg_u_use_default_driver_path bindlib.PreloadProc + +func UseDefaultDriverPath() { bindlib.CCall0(__imp_hyperdbg_u_use_default_driver_path.Addr()) } + var __imp_hyperdbg_u_connect_local_debugger bindlib.PreloadProc func ConnectLocalDebugger() { bindlib.CCall0(__imp_hyperdbg_u_connect_local_debugger.Addr()) } @@ -2016,34 +2028,34 @@ func SymCastingQueryForFiledsAndTypes(StructName *byte, FiledOfStructName *byte, return bindlib.UnmarshallSyscall[Boolean](__res) } -func (s Anon268_5) Flags() Uint64 { +func (s Anon196_5) Flags() Uint64 { return bindlib.ReadBitcast[Uint64](unsafe.Add(unsafe.Pointer(unsafe.SliceData(s.Raw[:])), 0)) } -func (s *Anon268_5) SetFlags(v Uint64) { +func (s *Anon196_5) SetFlags(v Uint64) { bindlib.WriteBitcast(unsafe.Add(unsafe.Pointer(unsafe.SliceData(s.Raw[:])), 0), v) } -func (s Anon268_5) Fields() Anon272_9 { - return bindlib.ReadBitcast[Anon272_9](unsafe.Add(unsafe.Pointer(unsafe.SliceData(s.Raw[:])), 0)) +func (s Anon196_5) Fields() Anon200_9 { + return bindlib.ReadBitcast[Anon200_9](unsafe.Add(unsafe.Pointer(unsafe.SliceData(s.Raw[:])), 0)) } -func (s *Anon268_5) SetFields(v Anon272_9) { +func (s *Anon196_5) SetFields(v Anon200_9) { bindlib.WriteBitcast(unsafe.Add(unsafe.Pointer(unsafe.SliceData(s.Raw[:])), 0), v) } -func (s Anon1569_9) Fields() Anon1571_5 { - return bindlib.ReadBitcast[Anon1571_5](unsafe.Add(unsafe.Pointer(unsafe.SliceData(s.Raw[:])), 0)) +func (s Anon1497_9) Fields() Anon1499_5 { + return bindlib.ReadBitcast[Anon1499_5](unsafe.Add(unsafe.Pointer(unsafe.SliceData(s.Raw[:])), 0)) } -func (s *Anon1569_9) SetFields(v Anon1571_5) { +func (s *Anon1497_9) SetFields(v Anon1499_5) { bindlib.WriteBitcast(unsafe.Add(unsafe.Pointer(unsafe.SliceData(s.Raw[:])), 0), v) } -func (s Anon1569_9) AsUInt() Uint32 { +func (s Anon1497_9) AsUInt() Uint32 { return bindlib.ReadBitcast[Uint32](unsafe.Add(unsafe.Pointer(unsafe.SliceData(s.Raw[:])), 0)) } -func (s *Anon1569_9) SetAsUInt(v Uint32) { +func (s *Anon1497_9) SetAsUInt(v Uint32) { bindlib.WriteBitcast(unsafe.Add(unsafe.Pointer(unsafe.SliceData(s.Raw[:])), 0), v) } diff --git a/libhyperdbg_test.go b/libhyperdbg_test.go index c1cd49e2..176f8327 100644 --- a/libhyperdbg_test.go +++ b/libhyperdbg_test.go @@ -14,15 +14,25 @@ func isGithubCI() bool { return strings.Contains(GOPATH, "runneradmin") } +func stringToBytePointer(s string) *byte { + bytes := []byte(s) + ptr := &bytes[0] + return ptr +} + // go test -run ^\QTestSdk\E$ func TestSdk(t *testing.T) { - SetDllDirectory(".") + // SetDllDirectory(".") + SetCustomDriverPath(stringToBytePointer(".")) if isGithubCI() { mylog.Info("github ci windows not support vt-x nested virtualization,skip test") return } mylog.Call(func() { assert.True(t, VmxSupportDetection()) + + mylog.Check(os.Chdir("D:\\workspace\\workspace\\branch\\gui")) + mylog.Trace("InstallVmmDriver", InstallVmmDriver()) ConnectLocalDebugger() mylog.Trace("LoadVmm", LoadVmm()) @@ -43,6 +53,31 @@ func TestSdk(t *testing.T) { }) } +/* +2024-06-28 20:11:28 Trace -> --------- title --------- │ ------------------ info ------------------ //runtime.doInit1+0xec C:/Program Files/Go/src/runtime/proc.go:7176 +panic: Failed to find hyperdbg_u_set_custom_driver_path procedure in libhyperdbg: The specified procedure could not be found. + +goroutine 1 [running, locked to thread]: +github.com/ddkwork/golibrary/mylog.check[...](0x2?) + D:/workspace/workspace/branch/golibrary/mylog/check.go:216 +0x186 +github.com/ddkwork/golibrary/mylog.Check2[...](0x0, {0x7ff7424de2c0, 0xc0002bd230?}) + D:/workspace/workspace/branch/golibrary/mylog/check.go:27 +0x45 +github.com/ddkwork/app/bindgen/bindlib.windll.Lookup({0xc0005e1dc8?}, {0x7ff741eafc6c?, 0xc0003ba918?}) + D:/workspace/workspace/app/bindgen/bindlib/lib_win32.go:19 +0x2d +github.com/ddkwork/app/bindgen/bindlib.(*Proc).addrSlow(0xc000353bc0) + D:/workspace/workspace/app/bindgen/bindlib/proc.go:23 +0x5f +github.com/ddkwork/app/bindgen/bindlib.(*Proc).Addr(...) + D:/workspace/workspace/app/bindgen/bindlib/proc.go:36 +github.com/ddkwork/app/bindgen/bindlib.(*Library).ImportNow(0x7ff741d2db80, {0x7ff741eafc6c, 0x21}) + D:/workspace/workspace/app/bindgen/bindlib/lib.go:80 +0x7f +github.com/ddkwork/hyperdbgui.init.0() + D:/workspace/workspace/branch/gui/libhyperdbg.go:1541 +0x1d0 + +Process finished with the exit code 1 + + +*/ + /* .connect local load vmm diff --git a/release.cmd b/release.cmd index e580b864..b61b48dd 100644 --- a/release.cmd +++ b/release.cmd @@ -4,7 +4,7 @@ chcp 65001 >nul :: 定义版本变量 -set "VERSION=v0.0.2" +set "VERSION=v0.0.3" :: 定义脚本操作 setlocal diff --git a/sdk.gen/SDK/Imports/User/HyperDbgLibImports.h b/sdk.gen/SDK/Imports/User/HyperDbgLibImports.h index 8d45f4c2..c23a1d4c 100644 --- a/sdk.gen/SDK/Imports/User/HyperDbgLibImports.h +++ b/sdk.gen/SDK/Imports/User/HyperDbgLibImports.h @@ -72,6 +72,12 @@ hyperdbg_u_continue_previous_command(); IMPORT_EXPORT_LIBHYPERDBG BOOLEAN hyperdbg_u_check_multiline_command(CHAR * current_command, BOOLEAN reset); +IMPORT_EXPORT_LIBHYPERDBG BOOLEAN +hyperdbg_u_set_custom_driver_path(CHAR * DriverPath); + +IMPORT_EXPORT_LIBHYPERDBG VOID +hyperdbg_u_use_default_driver_path(); + // // Connect to local or remote debugger // Exported functionality of the '.connect' command diff --git a/sdk.gen/SDK/Libraries/hyperhv.dll b/sdk.gen/SDK/Libraries/hyperhv.dll index cbca93eb..205d9174 100644 Binary files a/sdk.gen/SDK/Libraries/hyperhv.dll and b/sdk.gen/SDK/Libraries/hyperhv.dll differ diff --git a/sdk.gen/SDK/Libraries/hyperlog.dll b/sdk.gen/SDK/Libraries/hyperlog.dll index 93d098de..9450b18c 100644 Binary files a/sdk.gen/SDK/Libraries/hyperlog.dll and b/sdk.gen/SDK/Libraries/hyperlog.dll differ diff --git a/sdk.gen/SDK/Libraries/libhyperdbg.dll b/sdk.gen/SDK/Libraries/libhyperdbg.dll index 271f77dd..02c38f70 100644 Binary files a/sdk.gen/SDK/Libraries/libhyperdbg.dll and b/sdk.gen/SDK/Libraries/libhyperdbg.dll differ diff --git a/sdk.gen/SDK/Libraries/script-engine.dll b/sdk.gen/SDK/Libraries/script-engine.dll index 818db407..e46e777f 100644 Binary files a/sdk.gen/SDK/Libraries/script-engine.dll and b/sdk.gen/SDK/Libraries/script-engine.dll differ diff --git a/sdk.gen/SDK/Libraries/symbol-parser.dll b/sdk.gen/SDK/Libraries/symbol-parser.dll index 1b013aab..8c4a9fa6 100644 Binary files a/sdk.gen/SDK/Libraries/symbol-parser.dll and b/sdk.gen/SDK/Libraries/symbol-parser.dll differ diff --git a/sdk.gen/merged_headers.h b/sdk.gen/merged_headers.h index 74418e96..f147c509 100644 --- a/sdk.gen/merged_headers.h +++ b/sdk.gen/merged_headers.h @@ -18,8 +18,6 @@ typedef int rune; #define WCHAR_MIN 0 #define WCHAR_MAX 65535 -//typedef unsigned short wchar_t; - typedef int bool ; typedef long LONG ; #define PVOID void* @@ -63,76 +61,6 @@ typedef struct _LIST_ENTRY { #define _In_reads_bytes_(x) #endif -/* -typedef struct _IRP { - CSHORT Type; - USHORT Size; - PMDL MdlAddress; - ULONG Flags; - union { - struct _IRP *MasterIrp; - __volatile LONG IrpCount; - PVOID SystemBuffer; - } AssociatedIrp; - LIST_ENTRY ThreadListEntry; - IO_STATUS_BLOCK IoStatus; - KPROCESSOR_MODE RequestorMode; - BOOLEAN PendingReturned; - CHAR StackCount; - CHAR CurrentLocation; - BOOLEAN Cancel; - KIRQL CancelIrql; - CCHAR ApcEnvironment; - UCHAR AllocationFlags; - union { - PIO_STATUS_BLOCK UserIosb; - PVOID IoRingContext; - }; - PKEVENT UserEvent; - union { - struct { - union { - PIO_APC_ROUTINE UserApcRoutine; - PVOID IssuingProcess; - }; - union { - PVOID UserApcContext; -#if ... - _IORING_OBJECT *IoRing; -#else - struct _IORING_OBJECT *IoRing; -#endif - }; - } AsynchronousParameters; - LARGE_INTEGER AllocationSize; - } Overlay; - __volatile PDRIVER_CANCEL CancelRoutine; - PVOID UserBuffer; - union { - struct { - union { - KDEVICE_QUEUE_ENTRY DeviceQueueEntry; - struct { - PVOID DriverContext[4]; - }; - }; - PETHREAD Thread; - PCHAR AuxiliaryBuffer; - struct { - LIST_ENTRY ListEntry; - union { - struct _IO_STACK_LOCATION *CurrentStackLocation; - ULONG PacketType; - }; - }; - PFILE_OBJECT OriginalFileObject; - } Overlay; - KAPC Apc; - PVOID CompletionKey; - } Tail; -} IRP; -*/ - //SDK\Headers\BasicTypes.h /** @@ -4422,6 +4350,12 @@ hyperdbg_u_continue_previous_command(); IMPORT_EXPORT_LIBHYPERDBG BOOLEAN hyperdbg_u_check_multiline_command(CHAR * current_command, BOOLEAN reset); +IMPORT_EXPORT_LIBHYPERDBG BOOLEAN +hyperdbg_u_set_custom_driver_path(CHAR * DriverPath); + +IMPORT_EXPORT_LIBHYPERDBG VOID +hyperdbg_u_use_default_driver_path(); + // // Connect to local or remote debugger // Exported functionality of the '.connect' command