محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
شنبه, ۱۲ فروردين ۱۳۹۱، ۰۲:۳۷ ب.ظ

چند بار دکمه های کیبردتان را فشرده اید؟

چند وقت پیش مهدی مقاله ای را به من نشان داد که stephen wolfram اومده بود تعداد ایمیل هایی که زده گرفته ساعاتی که پشت سیستم بوده یا تعداد دکمه هایی که هر روز زده را روی نمودار برده است.

ایده گیکانه ای بود (اینجا صفته :D) چیزی مثل ایمیل رو به نظرم رسید بعدا می شود روی نمودار برد و همه چیزش را بیرون کشید ولی چیزی مثل دکمه زدن را چه می کنیم؟

کمی تحقیقات کردم دیدم در /dev/event/event0 تمام اتفاقات کیبرد وجود دارد یعنی با مانیتور کردنش می شود به راحتی فهمید چند بار دکمه های کیبردتان را فشرده اید.

خب یک اسکریپت کوچیک نوشتم

#!/usr/bin/python

report_file = '/opt/keycount'


def keycounter(count):
    f = open(report_file, 'w')
    f.write(str(count))
    f.close()

f = open(report_file, 'r')
try:
    count = int(f.readline())
except:
    count = 0
f.close()
#here event0 should be changed to the eventn, where eventn is the keyboard.
input = open('/dev/input/event0', 'rb')
while True:
    input.read(96)
    count += 1
    if (count):
        keycounter(count)

و بعد این فایل رو در /usr/local/bin می گذارم و در ~/.xinitrc اسم فایل را می گذارم و به راحتی هر دفعه که دکمه ای زده شود یکی به keycount اضافه می کند.

 

نکته: باید /opt/keycount با سطح دسترسی write و read باشد. اگر این فایل وجود ندارد باید بسازید.

نکته ۲: ممکن است آدرس event ها چیزی که گفتم نباشد بررسی کنید بگویید من هم کامل کنم. این اسکریپت بر روی ArchLinx و Debian sid امتحان شده است

 

البته این اسکریپت تنها کاری که می کنه فقط می شماره ولی معلوم نیست چه روزی چقدر اینکارو کردید موس چی؟ یا حتی پراکندگی دکمه های کیبرد چگونه است؟ می شود جای اینکه در فایل بنویسیم در یک دیتابیس مثلا sqlite3 بنویسیم که جالب تر می شود. اگر روزی حوصله اش را داشتم اونم می نویسم.



نوشته شده توسط محمد افاضاتی
ساخت وبلاگ در بلاگ بیان، رسانه متخصصان و اهل قلم

محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
محمد افاضاتی
محمد افاضاتی برنامه نویس python php دیتابیس های postgresql mongodb و ...

رونوشتی از علاقه مندی هایم برای ماندگار تر شدن!

تبلیغات

طبقه بندی موضوعی

Feedburner RSS

Others

توییتر

چند بار دکمه های کیبردتان را فشرده اید؟

شنبه, ۱۲ فروردين ۱۳۹۱، ۰۲:۳۷ ب.ظ

چند وقت پیش مهدی مقاله ای را به من نشان داد که stephen wolfram اومده بود تعداد ایمیل هایی که زده گرفته ساعاتی که پشت سیستم بوده یا تعداد دکمه هایی که هر روز زده را روی نمودار برده است.

ایده گیکانه ای بود (اینجا صفته :D) چیزی مثل ایمیل رو به نظرم رسید بعدا می شود روی نمودار برد و همه چیزش را بیرون کشید ولی چیزی مثل دکمه زدن را چه می کنیم؟

کمی تحقیقات کردم دیدم در /dev/event/event0 تمام اتفاقات کیبرد وجود دارد یعنی با مانیتور کردنش می شود به راحتی فهمید چند بار دکمه های کیبردتان را فشرده اید.

خب یک اسکریپت کوچیک نوشتم

#!/usr/bin/python

report_file = '/opt/keycount'


def keycounter(count):
    f = open(report_file, 'w')
    f.write(str(count))
    f.close()

f = open(report_file, 'r')
try:
    count = int(f.readline())
except:
    count = 0
f.close()
#here event0 should be changed to the eventn, where eventn is the keyboard.
input = open('/dev/input/event0', 'rb')
while True:
    input.read(96)
    count += 1
    if (count):
        keycounter(count)

و بعد این فایل رو در /usr/local/bin می گذارم و در ~/.xinitrc اسم فایل را می گذارم و به راحتی هر دفعه که دکمه ای زده شود یکی به keycount اضافه می کند.

 

نکته: باید /opt/keycount با سطح دسترسی write و read باشد. اگر این فایل وجود ندارد باید بسازید.

نکته ۲: ممکن است آدرس event ها چیزی که گفتم نباشد بررسی کنید بگویید من هم کامل کنم. این اسکریپت بر روی ArchLinx و Debian sid امتحان شده است

 

البته این اسکریپت تنها کاری که می کنه فقط می شماره ولی معلوم نیست چه روزی چقدر اینکارو کردید موس چی؟ یا حتی پراکندگی دکمه های کیبرد چگونه است؟ می شود جای اینکه در فایل بنویسیم در یک دیتابیس مثلا sqlite3 بنویسیم که جالب تر می شود. اگر روزی حوصله اش را داشتم اونم می نویسم.

موافقین ۰ مخالفین ۰ ۹۱/۰۱/۱۲
محمد افاضاتی کیبرد monitoring python keylogger

نظرات  (۲)

ایده‌ی جالب ولفرام همون موقع نظرم رو به خودش جلب کرد‌، ممنون که پیگیریش کردی و اسکریپتش رو نوشتی‌. البته خیلی جالب‌تر می‌شه اگه این رو توسعه‌اش بدی و به قول خودت روی یک دیتابیس (‌به نظرم Mysql به دلیل همه گیر بودنش توی لینوکس) اطلاعات رو ذخیره کنی‌. نمو‌دار‌های جالب و گیکانه‌ای به دست می‌آد ;-)

بعد نوشت‌: عجب کد امنیتی شاخی این زیر گذاشتی‌!
پاسخ:
خواهش ... وقت می خواد برسم درستش می کنم، اولین بخش از برنامه چغندر میشه

پس نوشت :D : امنیتیه دیگه
واو عالیه کی کاملش می کنی؟
پاسخ:
حتما در اولین فرصت

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی