#!/usr/bin/expect -f set ip [lindex $argv 0] spawn telnet "$ip" set telnet $spawn_id send_user "telnet id is $telnet" expect "#" send "/bin/busybox-mipsel tcpsvd -vE 0.0.0.0 21 ftpd / -w -A\n" expect "tcpsvd: listening on 0.0.0.0:21" spawn ftp "$ip" expect "Name" send "anonymous\n" expect "ftp>" send "cd /mnt/tmp\n" expect "ftp>" send "put gdbserver\n" expect "ftp>" send "put strace\n" expect "ftp>" send "quit\n" close proc send_sh { cmd } { expect "#" send $cmd send "\n" } set spawn_id $telnet send "\x03" send_sh "chmod +x /mnt/tmp/gdbserver" send_sh "chmod +x /mnt/tmp/strace" send_sh "watchdog /dev/watchdog" expect "#" send_user "Run: killall dvr; /mnt/tmp/gdbserver 0.0.0.0:9999 ./dvr\n" send_user "(Press enter when ready)" expect_user "\n" proc send_gdb { cmd } { expect "(gdb)" send $cmd send "\n" } spawn ./mipsel-linux-gdb "$ip" send_gdb "target remote $ip:9999" send_gdb "set sysroot ../new-squashfs-root/" send_gdb "dprintf *0x478728, \"FUN_00478728\\n\"" send_gdb "dprintf *0x478908, \"_Nets_Without_Password_Login_V20\\n\"" send_gdb "dprintf *0x4780ac, \"FUN_004780ac\\n\"" send_gdb "dprintf *0x6310f0, \"Md5_string_encrypt\\n\"" send_gdb "continue" interact