for kv_rules you have several values to play with, important ones are:
missile_range_lethality_modifier - constant used to determine ranged lethality of projectile fired within effective range
missile_saving_bonus_base - basic saving bonus to which shields and armour bonuses are added
missile_saving_bonus_coefficient - the sum of the armour and shield bonuses are multiplied by this value.
missile_shield_piercing_coefficient - multiplied by shield value during missile damage resolution
projectile_calibration_target_area - area of calibration target in square metres
projectile_damage_accuracy_multiplier - Multiplier to attacker accuracy (core marksmanship) before adding to kill chance
projectile_damage_armour_divisor - divisor for armour stat subtraction from kill chance
projectile_damage_base_multiplier - base multiplier to projectile damage (kill chance) before applying other modifiers
projectile_damage_defense_divisor - divisor for defence stat subtraction from kill chance
projectile_damage_distance_multiplier - multiplier applied to distance/range for subtraction from kill chance
projectile_damage_shield_divisor - divisor for shield stat subtraction from kill chance
and few more. anyway, these values are a bit tricky. usually divisor values divide the subtraction, therefore smaller values increase the resistance, while multipliers might either increase damage or reduce it based on what they multiply.. so some testing is required to find optimum values.