jmmcatee / cracklord Goto Github PK
View Code? Open in Web Editor NEWQueue and resource system for cracking passwords
License: MIT License
Queue and resource system for cracking passwords
License: MIT License
Need to discuss how we go forward after we push 1.0
Maybe I missed this, but I didn't see a way to view the most recent console output from the resource in the JSON API.
The Queue currently calls resource over a standard TCP connection. This needs to be over TLS and ignore certificate issues for the time being.
We should add this on the wiki, descriptions for the various settings and some high level stuff on what it does.
During running a longer job, I found the following performance data was returned:
1428158044: "9720.0"
1428158075: "0.000000"
1428158105: "0.000000"
1428158136: "0.000000"
Need to debug
It is likely in Go that most of the select fields used for generated forms will be stored internally as Go maps. Maps in Go return their internals randomly, so could we have all selects just sort by name so they are presented to the user in a constant order?
I found this out when I ran it without sudo.
queue/queue.go in the keeper function, we could probably split this up some.
If I kill an old resource, and then start a new one, when starting a new job the same tool shows up twice.
Need to do something to make it so that maybe the hostname or something is blank so it won't match.
Need to change main page readme to document
Guessing it's because you write it for every file read?
We need to make sure that we're assuming 9443 and actually do that if someone doesn't specify a port.
Right now we need to send the entire queue in order. You should add some logic to move all done/failed/quit jobs to the bottom.
This causes issues with the output of the job detail, all of the associated jobs no longer have a tool or resource output. Maybe we should keep the info in the resource stack and provide a status of deleted or something. Thoughts?
Need to add if statements and checks to determine if files still exist as the files in /etc/ are being overwritten on upgrade.
We may or may not want to do this, but I think the API structs should be updated to utilize one for all requests. How hard would this be on the backend?
:-(
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x639eaf]
goroutine 25 [running]:
net/rpc.(_Client).send(0x0, 0xc2081915e0)
/usr/local/go/src/net/rpc/client.go:72 +0x3af
net/rpc.(_Client).Go(0x0, 0x8c7e30, 0x10, 0x809260, 0xc208196200, 0x72f8a0, 0xc2081ca870, 0xc208084d20, 0xc208196200)
/usr/local/go/src/net/rpc/client.go:309 +0x13e
net/rpc.(_Client).Call(0x0, 0x8c7e30, 0x10, 0x809260, 0xc208196200, 0x72f8a0, 0xc2081ca870, 0x0, 0x0)
/usr/local/go/src/net/rpc/client.go:315 +0xa5
github.com/jmmcatee/cracklord/queue.(_Queue).updateQueue(0xc2080801a0)
/usr/local/cracklord/src/github.com/jmmcatee/cracklord/queue/queue.go:684 +0x385
github.com/jmmcatee/cracklord/queue.func·001()
/usr/local/cracklord/src/github.com/jmmcatee/cracklord/queue/queue.go:573 +0x1e7
created by github.com/jmmcatee/cracklord/queue.(*Queue).keeper
/usr/local/cracklord/src/github.com/jmmcatee/cracklord/queue/queue.go:669 +0x8c
goroutine 1 [IO wait]:
net.(_pollDesc).Wait(0xc2080d7f70, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:84 +0x47
net.(_pollDesc).WaitRead(0xc2080d7f70, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:89 +0x43
net.(_netFD).accept(0xc2080d7f10, 0x0, 0x7f18c0697d48, 0xc2082089e0)
/usr/local/go/src/net/fd_unix.go:419 +0x40b
net.(_TCPListener).AcceptTCP(0xc20802c050, 0xc2082089c0, 0x0, 0x0)
/usr/local/go/src/net/tcpsock_posix.go:234 +0x4e
net/http.tcpKeepAliveListener.Accept(0xc20802c050, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1976 +0x4c
crypto/tls.(_listener).Accept(0xc208117ee0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/tls.go:46 +0x6b
net/http.(_Server).Serve(0xc2080849c0, 0x7f18c069b918, 0xc208117ee0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1728 +0x92
net/http.(*Server).ListenAndServeTLS(0xc2080849c0, 0x8aad10, 0x8, 0x8aacf0, 0x8, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1879 +0x55b
net/http.ListenAndServeTLS(0xc20800b980, 0xb, 0x8aad10, 0x8, 0x8aacf0, 0x8, 0x7f18c0699a78, 0xc2080564e0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:1841 +0xef
main.main()
/usr/local/cracklord/src/github.com/jmmcatee/cracklord/queueserver/queueserver.go:215 +0x21e4
goroutine 33 [syscall, 887 minutes, locked to thread]:
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:2232 +0x1
goroutine 107 [IO wait]:
net.(_pollDesc).Wait(0xc2081ec300, 0x72, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:84 +0x47
net.(_pollDesc).WaitRead(0xc2081ec300, 0x0, 0x0)
/usr/local/go/src/net/fd_poll_runtime.go:89 +0x43
net.(_netFD).Read(0xc2081ec2a0, 0xc2080de800, 0x800, 0x800, 0x0, 0x7f18c0697d48, 0xc2082095a0)
/usr/local/go/src/net/fd_unix.go:242 +0x40f
net.(_conn).Read(0xc20802c068, 0xc2080de800, 0x800, 0x800, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:121 +0xdc
crypto/tls.(_block).readFromUntil(0xc2080e90b0, 0x7f18c069bad8, 0xc20802c068, 0x5, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:454 +0xe6
crypto/tls.(_Conn).readRecord(0xc20807c580, 0x17, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:539 +0x2da
crypto/tls.(_Conn).Read(0xc20807c580, 0xc20816d000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
/usr/local/go/src/crypto/tls/conn.go:904 +0x166
net/http.(_liveSwitchReader).Read(0xc2080dc0e8, 0xc20816d000, 0x1000, 0x1000, 0x8, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:214 +0xab
io.(_LimitedReader).Read(0xc2080fa6c0, 0xc20816d000, 0x1000, 0x1000, 0x800, 0x0, 0x0)
/usr/local/go/src/io/io.go:408 +0xce
bufio.(_Reader).fill(0xc2081ba180)
/usr/local/go/src/bufio/bufio.go:97 +0x1ce
bufio.(_Reader).ReadSlice(0xc2081ba180, 0xc2080e910a, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:295 +0x257
bufio.(_Reader).ReadLine(0xc2081ba180, 0x0, 0x0, 0x0, 0xc2080e9100, 0x0, 0x0)
/usr/local/go/src/bufio/bufio.go:324 +0x62
net/textproto.(_Reader).readLineSlice(0xc208201b60, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:55 +0x9e
net/textproto.(_Reader).ReadLine(0xc208201b60, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/textproto/reader.go:36 +0x4f
net/http.ReadRequest(0xc2081ba180, 0xc2081c0410, 0x0, 0x0)
/usr/local/go/src/net/http/request.go:598 +0xcb
net/http.(_conn).readRequest(0xc2080dc0a0, 0x0, 0x0, 0x0)
/usr/local/go/src/net/http/server.go:586 +0x26f
net/http.(_conn).serve(0xc2080dc0a0)
/usr/local/go/src/net/http/server.go:1162 +0x69e
created by net/http.(*Server).Serve
/usr/local/go/src/net/http/server.go:1751 +0x35e
Right now we're assuming we get unix timestamps from the API for all time based objects, but the default Go encoding of a date object to JSON uses the format 2015-03-22T23:00:26.55722-05:00.
Probably should use the following function to get everything into a date object, because Date's are fun: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse.
The div that displays returned parameters should list the first few (4 or 5) then have a more information link. This should pop-up a menu that shows all parameters returned by the job (hopefully without sensitive data) and also provide all the OutputTitle and Data fields as well.
We should wrap all calls to the Tasker interface to avoid panics that bring down the Resource because of a bug in the plugin.
Bah blah blah
When a resource is disconnected, the queue attempts to send a job to it and then doesn't try the next successful resource. Here is a log from the keeper:
2015/03/30 10:29:23 ----Queue Keeper is running....
2015/03/30 10:29:23 ----Getting Queue Lock
2015/03/30 10:29:23 ----Updating the the Queue
2015/03/30 10:29:23 ==Res(5b1baa61-9f1c-4f96-8657-0add7b19c7dc): gpu:%!b(bool=true)
2015/03/30 10:29:23 Starting a new job on:5b1baa61-9f1c-4f96-8657-0add7b19c7dc
2015/03/30 10:29:23 connection is shut down
2015/03/30 10:29:23 ==Res(8b732cd3-76ef-4130-abca-e59d66b45fc7): gpu:%!b(bool=true)
2015/03/30 10:29:23 ----Releasing the lock
GUI front-end does not display estimate completion time. Feature request?
Maybe include things like CPU, Memory usage, etc
it has permissions that are -w-r-xrwx when I think we probably want 700.
Need to implement
This is due to the fact that two table rows are used, need to convert job listing to DIVs
Right now the tests are broken and we aren't really using them, we should revisit these to get them back in and be good developers...
There is no return that includes an error.
Right now we don't have a lot of details, I'm thinking it could be nice to return some things like total guesses, track a history of guesses (yay graphs!) every job check, etc.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.