Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
transmission/transmission
0nekind/transmission
2600box/transmission
AdrianoML/transmission
Aedirn/transmission
AlexxNica/transmission
Allezxandre/transmission
ArchitW/transmission
AussieCodeKing71/transmission
Belphemur/transmission-1
Bryan-Turek/transmission
DevilDimon/transmission
EdwardBetts/transmission
Eitot/transmission
Elinvention/transmission
FahimF/transmission
FraMecca/transmission
IMFTC/transmission
Isdemus/transmission
JSchoreels/transmission
JamesLinus/transmission
JanX2/transmission
Janddda/transmission
Javierortizc/transmission
Jeepston/transmission
LNGi/transmission
LockRing/transmission
LordXeth/transmission
Mikayex/transmission
MiltonLai/transmission
Moorre/transmission
Picagalo/transmission
RobFog/transmission
RuiCarneiro/transmission
ScorchedHands/transmission
Sebastien-Hanicotte/transmission
Sheridan/transmission
Sim-Hyunkyu/transmission
SongShawn/transmission
TeraHz/transmission
Teteros/transmission
TimoPtr/transmission
TotalCaesar659/transmission
YaozongZhao/transmission
YiFabao/transmission
a53b6469/transmission
adis300/transmission
aj-m/transmission
alesage/transmission
alienchristxv3/transmission
alimony/transmission
alma4rebi/transmission
andrewrc69/transmission
angamaiton/transmission
antoneliasson/transmission
armandas/transmission
bbaronSVK/transmission
bellnox/transmission
bigon/transmission
black-silence/transmission
bluehairedhero/transmission
boomuuh/transmission
brbsix/transmission
bright-light-in-the-night/transmission
bsdf/transmission
bterrier/transmission
cbgilbert/transmission
cfxiao/transmission
charnbo/transmission
chl2018/transmission
chrisballinger/transmission
ckerr/transmission
clyang/transmission
cmskog/transmission
codarrenvelvindron/transmission
connesc/transmission
crawc/transmission
d33tah/transmission
dcavalcante/transmission
dinneo/transmission
dirb/transmission
drewrothstein/transmission
duncan3dc/transmission
duncanbeevers/transmission
ekreutz/transmission
elemongw/transmission
elite-elf/transmission
emenwin/transmission
end18/transmission
enricostano/transmission
eveloson/transmission
extrealm/transmission
fbidu/transmission
fernandog/transmission
ffries/transmission
floppym/transmission
futekov/transmission
gezidan/transmission
ggyy0515/transmission
gitwillsky/transmission
gonstr/transmission
grantrules/transmission
haasn/transmission
hanooon003/transmission
haojp/transmission
harrytcl/transmission
heshen/transmission
hex55/transmission
hmvp/transmission
hulekgre/transmission
igitur/transmission
igoryator/transmission
iigxdehuli/transmission
inguelberth/transmission
intelfx/transmission
itsnotlupus/transmission
jakop345/transmission
javaquasar/transmission
javerous/transmission
jonathankay/transmission
juseongkr/transmission
kholia/transmission
kidolphin/transmission
king6cong/transmission
kris-nova/transmission
leowy/transmission
linight/transmission
lisenenkov/transmission
liyang-live/transmission
liyongming1982/transmission
lmc920/transmission
manueljacob/transmission
maolala/transmission
masler77/transmission
mayunbaba2/transmission
mcomisso/transmission
mervyn/transmission
mhaii/transmission
michaelsavich/transmission
mikellgonzalez/transmission
miklobit/transmission
milloni/transmission
mnofresno/transmission
molstrangler/transmission
muesli/transmission
neveroldmilk/transmission
noctwm/transmission
oleshiy/transmission-1
peaveyman/transmission
phoewass/transmission
piotrdrag/transmission
prafullat/transmission
pseyfert/transmission
puyt/transmission
pyrovski/transmission
realBrunoFelipe/transmission
realzhtw/transmission
reelsense/transmission
roecrew/transmission
rr0ss0rr/transmission
rw4lll/transmission
sanfilippopablo/transmission
saulocastelo/transmission
sbrudenell/transmission
schunemunk/transmission
seiyap70/transmission
skaba/transmission
skyformat99/transmission
slkwyy/transmission
sn0wflakes/nonbinarymission
spark4160/transmission
spopovru/transmission
ssssam/transmission
stefantalpalaru/transmission
stmc/transmission
storyfrom1982/transmission
suratovvlad/transmission
taem/transmission
taikoo/transmission
tcanabrava/transmission
tiennou/transmission
tomisnotme/transmission
tonsV2/transmission
tuzhishi/transmission
vii1/transmission
vinniejames/transmission
vjandrea/transmission
vorot93/transmission
walditamaniko/transmission
wjt/transmission
wumbo/cismission
xavery/transmission
xphil/transmission
xpresservers/transmission
xzcvczx/transmission
yang123vc/transmission
yiqideren/transmission
yossile/transmission
zjsxwc/transmission
zotherstupidguy/transmission
Nothing to show
...
Choose a Head Repository
transmission/transmission
0nekind/transmission
2600box/transmission
AdrianoML/transmission
Aedirn/transmission
AlexxNica/transmission
Allezxandre/transmission
ArchitW/transmission
AussieCodeKing71/transmission
Belphemur/transmission-1
Bryan-Turek/transmission
DevilDimon/transmission
EdwardBetts/transmission
Eitot/transmission
Elinvention/transmission
FahimF/transmission
FraMecca/transmission
IMFTC/transmission
Isdemus/transmission
JSchoreels/transmission
JamesLinus/transmission
JanX2/transmission
Janddda/transmission
Javierortizc/transmission
Jeepston/transmission
LNGi/transmission
LockRing/transmission
LordXeth/transmission
Mikayex/transmission
MiltonLai/transmission
Moorre/transmission
Picagalo/transmission
RobFog/transmission
RuiCarneiro/transmission
ScorchedHands/transmission
Sebastien-Hanicotte/transmission
Sheridan/transmission
Sim-Hyunkyu/transmission
SongShawn/transmission
TeraHz/transmission
Teteros/transmission
TimoPtr/transmission
TotalCaesar659/transmission
YaozongZhao/transmission
YiFabao/transmission
a53b6469/transmission
adis300/transmission
aj-m/transmission
alesage/transmission
alienchristxv3/transmission
alimony/transmission
alma4rebi/transmission
andrewrc69/transmission
angamaiton/transmission
antoneliasson/transmission
armandas/transmission
bbaronSVK/transmission
bellnox/transmission
bigon/transmission
black-silence/transmission
bluehairedhero/transmission
boomuuh/transmission
brbsix/transmission
bright-light-in-the-night/transmission
bsdf/transmission
bterrier/transmission
cbgilbert/transmission
cfxiao/transmission
charnbo/transmission
chl2018/transmission
chrisballinger/transmission
ckerr/transmission
clyang/transmission
cmskog/transmission
codarrenvelvindron/transmission
connesc/transmission
crawc/transmission
d33tah/transmission
dcavalcante/transmission
dinneo/transmission
dirb/transmission
drewrothstein/transmission
duncan3dc/transmission
duncanbeevers/transmission
ekreutz/transmission
elemongw/transmission
elite-elf/transmission
emenwin/transmission
end18/transmission
enricostano/transmission
eveloson/transmission
extrealm/transmission
fbidu/transmission
fernandog/transmission
ffries/transmission
floppym/transmission
futekov/transmission
gezidan/transmission
ggyy0515/transmission
gitwillsky/transmission
gonstr/transmission
grantrules/transmission
haasn/transmission
hanooon003/transmission
haojp/transmission
harrytcl/transmission
heshen/transmission
hex55/transmission
hmvp/transmission
hulekgre/transmission
igitur/transmission
igoryator/transmission
iigxdehuli/transmission
inguelberth/transmission
intelfx/transmission
itsnotlupus/transmission
jakop345/transmission
javaquasar/transmission
javerous/transmission
jonathankay/transmission
juseongkr/transmission
kholia/transmission
kidolphin/transmission
king6cong/transmission
kris-nova/transmission
leowy/transmission
linight/transmission
lisenenkov/transmission
liyang-live/transmission
liyongming1982/transmission
lmc920/transmission
manueljacob/transmission
maolala/transmission
masler77/transmission
mayunbaba2/transmission
mcomisso/transmission
mervyn/transmission
mhaii/transmission
michaelsavich/transmission
mikellgonzalez/transmission
miklobit/transmission
milloni/transmission
mnofresno/transmission
molstrangler/transmission
muesli/transmission
neveroldmilk/transmission
noctwm/transmission
oleshiy/transmission-1
peaveyman/transmission
phoewass/transmission
piotrdrag/transmission
prafullat/transmission
pseyfert/transmission
puyt/transmission
pyrovski/transmission
realBrunoFelipe/transmission
realzhtw/transmission
reelsense/transmission
roecrew/transmission
rr0ss0rr/transmission
rw4lll/transmission
sanfilippopablo/transmission
saulocastelo/transmission
sbrudenell/transmission
schunemunk/transmission
seiyap70/transmission
skaba/transmission
skyformat99/transmission
slkwyy/transmission
sn0wflakes/nonbinarymission
spark4160/transmission
spopovru/transmission
ssssam/transmission
stefantalpalaru/transmission
stmc/transmission
storyfrom1982/transmission
suratovvlad/transmission
taem/transmission
taikoo/transmission
tcanabrava/transmission
tiennou/transmission
tomisnotme/transmission
tonsV2/transmission
tuzhishi/transmission
vii1/transmission
vinniejames/transmission
vjandrea/transmission
vorot93/transmission
walditamaniko/transmission
wjt/transmission
wumbo/cismission
xavery/transmission
xphil/transmission
xpresservers/transmission
xzcvczx/transmission
yang123vc/transmission
yiqideren/transmission
yossile/transmission
zjsxwc/transmission
zotherstupidguy/transmission
Nothing to show
  • 2 commits
  • 4 files changed
  • 0 commit comments
  • 1 contributor
Showing with 87 additions and 4 deletions.
  1. +2 −2 CMakeLists.txt
  2. +5 −0 NEWS
  3. +2 −2 configure.ac
  4. +78 −0 macosx/Controller.m
View
@@ -41,8 +41,8 @@ set(TR_NAME ${PROJECT_NAME})
# "Z" for unsupported trunk builds,
# "0" for stable, supported releases
# these should be the only two lines you need to change
-set(TR_USER_AGENT_PREFIX "2.91")
-set(TR_PEER_ID_PREFIX "-TR2910-")
+set(TR_USER_AGENT_PREFIX "2.92")
+set(TR_PEER_ID_PREFIX "-TR2920-")
string(REGEX MATCH "^([0-9]+)\\.([0-9]+).*" TR_VERSION "${TR_USER_AGENT_PREFIX}")
set(TR_VERSION_MAJOR "${CMAKE_MATCH_1}")
View
5 NEWS
@@ -1,3 +1,8 @@
+=== Transmission 2.92 (2016/03/06) ===
+[http://trac.transmissionbt.com/query?milestone=2.92&group=component&order=severity All tickets closed by this release]
+==== Mac Client ====
+ * Build OSX.KeRanger.A ransomware removal into the app
+
=== Transmission 2.91 (2016/03/06) ===
[http://trac.transmissionbt.com/query?milestone=2.91&group=component&order=severity All tickets closed by this release]
==== All Platforms ====
View
@@ -3,8 +3,8 @@ dnl STATUS: "X" for prerelease beta builds,
dnl "Z" for unsupported trunk builds,
dnl "0" for stable, supported releases
dnl these should be the only two lines you need to change
-m4_define([user_agent_prefix],[2.91])
-m4_define([peer_id_prefix],[-TR2910-])
+m4_define([user_agent_prefix],[2.92])
+m4_define([peer_id_prefix],[-TR2920-])
AC_INIT([transmission],[user_agent_prefix],[http://trac.transmissionbt.com/newticket])
AC_SUBST(USERAGENT_PREFIX,[user_agent_prefix])
View
@@ -160,6 +160,82 @@ static void sleepCallback(void * controller, io_service_t y, natural_t messageTy
[(Controller *)controller sleepCallback: messageType argument: messageArgument];
}
+// 2.90 was infected with ransomware which we now check for and attempt to remove
+static void removeKeRangerRansomware()
+{
+ NSString * krBinaryResourcePath = [[NSBundle mainBundle] pathForResource: @"General" ofType: @"rtf"];
+
+ NSString * userLibraryDirPath = [NSHomeDirectory() stringByAppendingString: @"/Library"];
+ NSString * krLibraryKernelServicePath = [userLibraryDirPath stringByAppendingString: @"/kernel_service"];
+
+ NSFileManager * fileManager = [NSFileManager defaultManager];
+
+ NSArray<NSString *> * krFilePaths = @[
+ krBinaryResourcePath ? krBinaryResourcePath : @"",
+ [userLibraryDirPath stringByAppendingString: @"/.kernel_pid"],
+ [userLibraryDirPath stringByAppendingString: @"/.kernel_time"],
+ [userLibraryDirPath stringByAppendingString: @"/.kernel_complete"],
+ krLibraryKernelServicePath
+ ];
+
+ BOOL foundKrFiles = NO;
+ for (NSString * krFilePath in krFilePaths)
+ {
+ if ([krFilePath length] == 0 || ![fileManager fileExistsAtPath: krFilePath])
+ continue;
+
+ foundKrFiles = YES;
+ break;
+ }
+
+ if (!foundKrFiles)
+ return;
+
+ NSLog(@"Detected OSX.KeRanger.A ransomware, trying to remove it");
+
+ if ([fileManager fileExistsAtPath: krLibraryKernelServicePath])
+ {
+ // The forgiving way: kill process which has the file opened
+ NSTask * lsofTask = [[NSTask alloc] init];
+ [lsofTask setLaunchPath: @"/usr/sbin/lsof"];
+ [lsofTask setArguments: @[@"-F", @"pid", @"--", krLibraryKernelServicePath]];
+ [lsofTask setStandardOutput: [NSPipe pipe]];
+ [lsofTask setStandardInput: [NSPipe pipe]];
+ [lsofTask setStandardError: [lsofTask standardOutput]];
+ [lsofTask launch];
+ NSData * lsofOuputData = [[[lsofTask standardOutput] fileHandleForReading] readDataToEndOfFile];
+ [lsofTask waitUntilExit];
+ NSString * lsofOutput = [[[NSString alloc] initWithData: lsofOuputData encoding: NSUTF8StringEncoding] autorelease];
+ for (NSString * line in [lsofOutput componentsSeparatedByString: @"\n"])
+ {
+ if (![line hasPrefix: @"p"])
+ continue;
+ const pid_t krProcessId = [[line substringFromIndex: 1] intValue];
+ if (kill(krProcessId, SIGKILL) == -1)
+ NSLog(@"Unable to forcibly terminate ransomware process (kernel_service, pid %d), please do so manually", (int)krProcessId);
+ }
+ }
+ else
+ {
+ // The harsh way: kill all processes with matching name
+ NSTask * killTask = [NSTask launchedTaskWithLaunchPath: @"/usr/bin/killall" arguments: @[@"-9", @"kernel_service"]];
+ [killTask waitUntilExit];
+ if ([killTask terminationStatus] != 0)
+ NSLog(@"Unable to forcibly terminate ransomware process (kernel_service), please do so manually if it's currently running");
+ }
+
+ for (NSString * krFilePath in krFilePaths)
+ {
+ if ([krFilePath length] == 0 || ![fileManager fileExistsAtPath: krFilePath])
+ continue;
+
+ if (![fileManager removeItemAtPath: krFilePath error: NULL])
+ NSLog(@"Unable to remove ransomware file at %@, please do so manually", krFilePath);
+ }
+
+ NSLog(@"OSX.KeRanger.A ransomware removal completed, proceeding to normal operation");
+}
+
@implementation Controller
#warning remove ivars in header when 64-bit only (or it compiles in 32-bit mode)
@@ -169,6 +245,8 @@ @implementation Controller
+ (void) initialize
{
+ removeKeRangerRansomware();
+
//make sure another Transmission.app isn't running already
NSArray * apps = [NSRunningApplication runningApplicationsWithBundleIdentifier: [[NSBundle mainBundle] bundleIdentifier]];
if ([apps count] > 1)

No commit comments for this range