OSX Leopard - throttle a shared internet connection - macos

I'm running a Core Duo Macbook pro and I'm trying to emulate a 3G connection for connected devices via wifi internet connection sharing. I've tried a few options (e.g. speedlimit) but they only impact the macbook's browser and not the connected devices. Are there any other options out there? I'm running leopard as anything more modern overheats the system.
I have a T60 as an alternative, but the intel 3935abg chipset isn't supported by any windows 7 VirtualMiFi tools, and I need to connect Android devices to this network.

I found this very useful tool for testing various types of connection.
Slowy app: http://slowyapp.com/
It has some preset (56K, EDGE, 3G, LTE and DSL) but allows you to set various parameters to limit the network traffic to a specified destination port or interface.
I recommend everyone to try it.

You are in luck - your version of OSX should still support IPFW; so one can do
sudo ipfw pipe 1 config bw 15KByte/s
sudo ipfw add 1 pipe 1 src-port 80
to cut down anything, in above example for port 80. Be sure to make the rule cover the traffic going through your mac. See http://intrarts.com/throttled.html
or http://www.hanynet.com/waterroof/ for friendlier tools.
Beyond Leopard - you want to look at pfctl. http://blog.segment7.net/2009/07/27/bandwidth-limiting-with-pf-and-altq and http://www.openbsd.org/faq/pf/queueing.html are good starts. Note though that by default you cannot use ALTQ (it is not in the default OSX kernel).

Related

Kernel debug two physical MacBook pro devices

I'm trying to kernel debug a physical Macbook pro device.
When my setup contains a VM, between a host MacOS and guest MacOS, its working with no problem using lldb -o "kdp-remote <guest_machine_ip>"
my boot-args on my remote (to debug) Macbook are:
user$ nvram boot-args
boot-args debug=0x44 kext-dev-mode=1 pmuflags=1 -v kcsuffix=debug
When i'm triggering kernel debug using either
sudo dtrace -w -n "BEGIN { breakpoint(); }"
or LEFT CMD + RIGHT CMD + PowerButton, the system is in halt mode, not responsive to anything (Mouse not moving, etc)
But when I'm trying to connect to the machine from the host using the lldb command provided earlier, it's not working.
I've made sure the machines can ping each other and I can set up a SSH connection.
To the best of my understanding, I had to user special Apple adapters (Realâ„¢ Ethernet adapter), so I'm using the following adapters to debug the remote machine:
https://www.apple.com/shop/product/MMEL2AM/A/thunderbolt-3-usb-c-to-thunderbolt-2-adapter
https://www.apple.com/shop/product/MD463LL/A/thunderbolt-to-gigabit-ethernet-adapter
The physical connections setup looks like that:
MacOS-Debugger --(USBC to Ethernet adapter)--> Ethernet cable <-- (ThunderBolt to Ethernet adapter) <-- (ThunderBolt3 to ThunderBolt2 adapter) <-- MacOS-debuggee
Generally for the debugging I used the following tutorial, which worked for VM debugging:
https://knight.sc/debugging/2018/08/15/macos-kernel-debugging.html, I didn't find the exact KDK version, but I don't think it should be the problem here
My debugger is BigSur, and my debugee is Catalina
Any ideas to what the problem may be will be helpful
Your hardware setup sounds fine. Note that you don't necessarily need a direct ethernet cable connection, you can use your normal office-/home-wide wired network, it's fine to have a switch (or even more than one) between debugger and target. The debugger machine can even be using wifi as long as it can reach the target's wired network connection that way, though it's not recommended. The Thunderbolt Ethernet interface need not be Apple branded, but its driver does need to include kernel debugging support. In practice, for example, I've successfully used the Ethernet port in a OWC brand Thunderbolt Dock as well. Using one of Apple's own adapters of course guarantees it will work.
If the boot-args on your target machine are the same as what you used in the VM, that's probably where your problem is coming from. You should specify the device to be used for kernel debugging, using the kdp_match_name= option. Use the ifconfig command in the Terminal to work out which of the listed devices is your Thunderbolt ethernet adapter (enX), possibly based on the IP address. en0 is typically wifi in Mac laptops, so you're usually looking for X > 0.
So you'll end up with something like kdp_match_name=en1 added to your boot-args. Make sure to reboot the machine cleanly before attempting a debugging session after updating the boot-args setting.
A few more comments:
kext-dev-mode=1
This option no longer has any effect. It only existed in OS X 10.10. You can remove it.
I didn't find the exact KDK version, but I don't think it should be the problem here
Having a KDK version that doesn't match the target's exact kernel binary UUID will not prevent a connection, but it will prevent you from doing any meaningful debugging as the memory layout of threads etc. will not be available.
My debugger is Big Sur, and my debuggee is Catalina
If you ever run Big Sur on your target, make sure to add wdt=-1 to your boot-args or the hung/crashed machine will reboot before you get a chance to connect with the debugger.

Ethernet network on VMware not working

I have a problem with connection network for internet.
The host is Windows 10 x64 and the guest in VMware is MacPro Yosemite for AMD
My config
Windows 10
Processor AMD
Network card Realtek GBE Family Controller
VMworkstation PRO and Player 12
OS X Niresh Yosemite for AMD
The mac operating properly. No problem during normal use. Unfortunately unable to connect to a network.
I try several solutions found on google.
I think of two possibilities.
The first is a bad network connection at my Windows with VMware Network Adapter. I do not know if it's VMnet 1 or VMnet 8 should be used. Then when I share or I make a bridge with these connections, VMware Network Adapter detects no internet connection. (See , and )
The second would be that I do not have good drivers, I try to install with MultiBeast - Yosemit Edition, nothing happens, I just got this device in existing connection (see )
I also tried installing the driver with KextBeast http://www.insanelymac.com/forum/topic/287161-new-driver-for-realtek-rtl8111/
I also discovered that the mac does not detect network card, is this correct? (see )
I try on my two VM, the result is the same. I think I'm doing something wrong
Ok for me the solution after multiple test on terminal with kext file etc...
From niresh, again
http://www.hackintosh.zone/file/118-all-in-one-network-solution-wireless-ethernet/

OSX USB Monitoring

How can I monitor all USB traffic on OSX? I downloaded the USB monitoring extensions from the Apple Dev website and ran USB Prober. Nothing shows up when I start the monitoring, and there is data being sent to and from the USB device while monitoring.
I found 2 similar topics on this site, but neither gave an answer aside from using libusb. I was hoping I wouldn't have to write my own monitor from scratch using libusb. Seeing as the questions were asked in 2010, I'm hoping tools have been developed since then to accomplish this on OSX.
It's possible in high sierra (and maybe older versions), you'll need Wireshark's nightly build (I am using V2.5.0rc0). After you install it, you'll need to bring up the USB "interface":
sudo ifconfig XHC20 up
And after that you can use wireshark to sniff all the traffic in the XHC20 interface. When you finish, remember to turn the interface down:
sudo ifconfig XHC20 down
Source: aud-ios.
USB Prober doesn't log all USB traffic. It only logs USB/HID driver messages (diagnostic/info messages posted by USB/HID drivers).
I've never tried libusb for this but I suspect that it can't capture all USB traffic ether (but I could be wrong).
If you're at all serious about monitoring USB traffic you should consider a hardware USB Protocol Analyzer like the Beagle 12 from Total Phase: http://www.totalphase.com/products/beagle_usb12/
Or the USB Explorer 200 from Ellisys: http://www.ellisys.com/products/usbex200/index.php
You might be interested in contributing to this kickstarted project:
http://www.kickstarter.com/projects/bushing/openvizsla-open-source-usb-protocol-analyzer?ref=card
usbtracer is included in USB Prober.app:
https://developer.apple.com/library/mac/qa/qa1370/_index.html
no HTML anchors there, so search for
"Where do I find the usbtracer tool and how can I use it?"
i don't know if it shows all traffic or not, but at least in my case it shows something, and USB Prober shows nothing

How to spoof an ethernet MAC address of the wired ethernet interface coming with MacBookPro and Leopard 10.5.6?

With OSX 10.5. it's no longer possible to spoof MAC addresses of your wired interface (e.g. en0) with "ifconfig en0 laddr/ether XX:YY:...."
a/ why is that?
b/ how is it notwithstanding done by e.g. VMware "vmnet-xxx" deamons?
c/ does anyone know wether the Apple Developer package contains detailed and useful information regarding the mach kernel device interfaces? e.g. device driver example code, and the like?
Thank you very much
Grusz
A: This may be a change for security reasons in the work place (this is just pure speculation, and may or may not be true), as it seems to be a driver issue (this was possible in Tiger, I know from experience). It is still possible to this on the wireless interface en1. Even if the physical interface did not support it, the device could be put into "monitor" mode and have the MAC address matching take place higher up in the IP chain. We shall have to wait and see what Apple does about this.
B: Those daemons put your wired network into "monitor" mode, basically what this does is tell your network card that you want everything that is being sent to you to be handled by the OS, so it turns off filtering that is done on the network card (if it supports it) which would normally discard things that were not destined for itself (its MAC address), and then it does it all in software, using the standard filtering hooks provided by the OS it can listen to any incoming packets and grab those off the wire that are destined to the fake MAC address that VMWare has set.
Explained in laymen terms: Lets say you are sitting at an airport and are waiting for an announcement that you can board your plane, you passively listen but ignore everything that does not contain your flight number. Now someone else comes along and asks you to also listen for their flight number, now you have to actively listen since you can't just filter on one flight number.
C: Yes, amongst other things you will find code examples and reference manuals. They are also all available online and you may find the code for most device drivers online as well if they were developed by Apple. The documentation is fairly good however I have noticed that in certain areas it has been lacking and made it fairly difficult for me to figure out what I needed to do to get something done. Developer.apple.com's Conceptual Network Device Driver. The source code for Darwin is also available at http://www.opensource.apple.com/darwinsource/, there you can find most device drivers for Mac OS X as long as Apple is allowed to release them as Open Source (Yukon2 driver is not included)
what worked for me was this, boot into a linux distro, change mac address there so that you have a working internet connection, reboot into mac os x(tried with 10.5.5), the mac stays spoofed from linux - with my pc, it worked even over system restarts/shutdowns
to be more specific, i tried this with ubuntu 8.04(i believe), to change mac address there:
sudo ifconfig eth0 down
sudo ifconfig eth0 hw ether 000102020405
sudo ifconfig eth0 up
of course you need to replace the 000102020405 with the real MAC you want to use, beware, with other distros, even different versions of ubuntu, the MAC spoofing procedure might differ slightly(you need to restart the connection etc..) - the magic of this trick is in the fact it actually might work off a live distro, so you don't need to install anything, but i never tried this
good luck
I have the MacBookPro Retina late 2013 running OSX 10.9 and I can do it!
The first thing I tried is what has previously worked for me on linux:
sudo -s
ifconfig en0 down
ifconfig en0 lladdr aa:bb:cc:dd:ee:ff
ifconfig en0 up
However, this on my machine results in an ioctl error (power is off)
So after much experimentation I figured that you must change the mac address while the interface is up, but while it is not being used by the Airport utility. This is easier said than done!
I put these commands together and fiddled the delays until my mac changed successfully - this is what worked for me:
ifconfig en0 down; sleep 0.5; ifconfig en0 up; sleep 2;\
ifconfig en0 lladdr aa:bb:cc:dd:ee:ff; ifconfig en0
You may have to change your delays so you catch it before Airport kicks in. Hope this helps!
Edit: You may have success by booting linux as "nofu" said, but it's a hassle to set up dual boot on the MacBookPro, so let me know if this "sleep method" works for you, the delay and for what version of OSX.

What is the best way to connect remotely to a Mac?

I'm trying to remotely control a Macintosh computer. I know that in the Windows world, you can use Remote Desktop to connect from one Windows computer to another Windows computer. This works relatively well.
I know that you can use a VNC server but this isn't always the most secure or give the best performance. Are there other options available for remotely connecting to a Mac?
In some situations Copilot is a good solution. Not so much for day-to-day admin, but great for remote tech support.
If you need the solution to be cross-platform (ie, controlling an OS X box from Windows) then VNC is the obvious choice. I've had much better luck with the free Vine VNC Server than with Apple's built in one. As for viewers, Chicken of the VNC on OS X or Tight VNC on Windows are good solutions.
As others have said, for security firewall VNC and then use an SSH tunnel. There's lots of ways to do that, and the exact details depends on OS, firewall, network, etc. One method of creating an SSH tunnel for VNC is described here.
If you're trying to connect from one (Leopard) Mac to another, you can use the built-in Screen Sharing functionality; turn the server on from the Sharing System Preferences pane, and either use the network browser (on a LAN) or just open a vnc:// URL.
If you're trying to manage a bunch of Macs, try Apple's Remote Desktop (ARD) software; it's sold in 10- and unlimited-client versions, so if you've got fewer than 5 or so Macs it's probably not worth the money. The client bits for ARD are part of OS X. Screen Sharing and ARD use the same protocol, which includes some Apple-proprietary extensions to VNC which do encryption (either of all data, or of just keystroke/password info) and support adaptive JPEG compression, which gives you decent-enough performance (usable, but nothing like RDP or NX unfortunately).
If you need something cross-platform, check out TeamViewer (which will punch through firewalls and so forth).
Apple's Remote Desktop has AES encryption. Another good way is to just enable SSH in sharing and use shell access to perform tasks without interrupting the user.
http://www.apple.com/remotedesktop/
^That's your best solution.
If you go into the Settings panel, you can find a variety of other remote access options including SSH.
You can use VNC which is built into Tiger.
Yeah, VNC is good, but what about Apple's Remote Desktop?
If you are looking for a free, secure solution: I would recommend using any of a number of VNC servers that are available, blocking the ports that VNC uses to communicate, and then using SSH tunneling to connect. This way, ssh is encrypting everything, and you can still rely on free, open source (?), and cross platform standards for controlling the Desktop remotely.
Citrix, the people behind pc anywhere and the windows remote desktop have a hosted app called "Go to my pc" https://www.gotomypc.com/
I've heard people says it good.
I personally like RHUB's service for remote access and collaboration. It's an appliance that's easy to use and very secure. The device works from behind your firewall (instead of outside of it).
if you need low bandwidth or cross platform there's RDP server for mac that also offers there own iRapp protocol
from their site:
http://www.coderebel.com/2013/11/08/irapp-mac-client-available-download
Lowest supported speed: 512 kbit/s (64 KB/s) for iRAPP protocol
By adjusting the image quality you are able to make iRAPP work on
lower bandwidth connections as recommended above.
iRapp TS (Mac Terminal Server) allows multiple users to connect one
Mac simultaneously

Resources